function allocateDAPPTokens() public {
        require(msg.sender==tokenIssuer);
        uint tokens = 0;
     
        if(block.timestamp > month9Unlock && !month9Allocated)
        {
            month9Allocated = true;
            tokens = safeDiv(totalTokensDAPP, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else if(block.timestamp > month18Unlock && !month18Allocated)
        {
            month18Allocated = true;
            tokens = safeDiv(totalTokensDAPP, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month27Unlock && !month27Allocated)
        {
            month27Allocated = true;
            tokens = safeDiv(totalTokensDAPP, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
            
        }
        else if(block.timestamp > month36Unlock && !month36AllocatedDAPP)
        {
            month36AllocatedDAPP = true;
            tokens = safeDiv(totalTokensDAPP, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else if(block.timestamp > month45Unlock && !month45Allocated)
        {
            month45Allocated = true;
            tokens = safeDiv(totalTokensDAPP, 5);
            balances[tokenIssuer] = safeAdd(balances[tokenIssuer], tokens);
            totalSupply = safeAdd(totalSupply, tokens);
        }
        else revert();

        AllocateDAPPTokens(msg.sender);
    }