Contract Overview
Balance: 0.986670057127103891 Ether
Ether Value: $200.32 (@ $203.03/ETH)
Transactions: 312 txns
Token Tracker: LastHero3D (Keys)
 Latest 25 txns From a total of 312 Transactions

TxHash Age From To Value [TxFee]
0x447efec26ee2e16744e46f7890ba9fd7edc119f262d59fce8ea18bbeb81c26074 days 16 hrs ago0x23183dafd738fb876c363da7651a679fcb24b657  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000047955
0x4be5fdaaa80d0caa040ef56181a848111a6febd29bad9a9e8a7951f36c96d2da4 days 16 hrs ago0x23183dafd738fb876c363da7651a679fcb24b657  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000043504
0xdddb32c23ecafd3679b14dee01f7018af10367f62266c35181e6b5194b0bee9f16 days 10 hrs ago0x445b660236c39f5bc98bc49dddc7cf1f246a40ab  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.0003349808
0x4b45a999ccf99445d725a01baefb265af79d64033f39250cc3edf6ed814f726116 days 11 hrs ago0xbbefe89ebb2a0e15921f07f041be5691d834a287  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00032628
0xfd4d497e0672d69999e66aca783c54bb331ebd61e604786eabb1c9ec37ae6c9c16 days 11 hrs ago0x60e31b8b79bd92302fe452242ea6f7672a77a80f  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00032628
0x8ccc527d44b0bcfa340a516bdf72940090344762791187d4ab74e179a89294b516 days 11 hrs ago0xa732e7665ff54ba63ae40e67fac9f23ecd0b1223  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00032628
0x8639657772a6de618159cea2929f85ba8aa814e0a71921ad6b242d41f63f4d1316 days 11 hrs ago0xbbefe89ebb2a0e15921f07f041be5691d834a287  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00038364
0x3603a777df1ae15d7ff9f0e0f51e5247d818062ca9562b0322e6c0a7d348658e16 days 11 hrs ago0x60e31b8b79bd92302fe452242ea6f7672a77a80f  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00038364
0x28a85f59c772d274c1cacf4e1e2c92a522ac42a7f4ae0b451e60a835b9d3220416 days 11 hrs ago0x445b660236c39f5bc98bc49dddc7cf1f246a40ab  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000385176
0xeef984232e79f6e08a453e48f602f4dc7bd9bd991b0ed0e38f4fe092b9d8fc7816 days 11 hrs ago0xa732e7665ff54ba63ae40e67fac9f23ecd0b1223  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000384152
0x217851fe03728e29562235fd5be1b65e107804a4332b3b75c81e3043308a657716 days 23 hrs ago0xe92f5aab013e397c7c1fffb4f14b2f8f0cb90878  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000274128
0xbe9384ba316e1cbe849f2987975a782cf6c03ca643fa44dce853f2efd9a3580716 days 23 hrs ago0xe92f5aab013e397c7c1fffb4f14b2f8f0cb90878  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000522048
0x562c95e9f38234366f0ab154b03312a5db7f591f47f672d49858a3b65cb1f6cd16 days 23 hrs ago0x9a7488f5da6a2ab06162ba523fd69b9b47c24c90  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000522048
0x18195e0b6e0d57266ed75b5c5486625233d3aa3489d39f588a7c110f3f9975b816 days 23 hrs ago0x262f9228521a192f84551373046ddc25ee6fdb70  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000522048
0x9c84c638469199da8a284a8bf69e109221a579284e27e8897c5f424e08a86e8d16 days 23 hrs ago0xe92f5aab013e397c7c1fffb4f14b2f8f0cb90878  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000576228
0x5f0bbb38e05bbaa6990d22a1154db6ca7d9f8905c521c28ea2ed97c6145586e816 days 23 hrs ago0x262f9228521a192f84551373046ddc25ee6fdb70  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.00057546
0x02860aa9a78540d38ea792c05a669d563f144a388c6ee976cb6a90306bb0b4e216 days 23 hrs ago0x9a7488f5da6a2ab06162ba523fd69b9b47c24c90  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000576228
0x98682daae3cb37e3a5d2aedc82d3c23effcff8b26ac87f061cf61299072a46c817 days 27 mins ago0x262f9228521a192f84551373046ddc25ee6fdb70  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000478544
0x96307490fe059a982bf00ebcc9ba91e0e674070f9ced258168e7de628610e0b017 days 37 mins ago0xe92f5aab013e397c7c1fffb4f14b2f8f0cb90878  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000274128
0x8ef57aad47d5b42c59a5a5d477896728eab44152e6a966058c6d1f81807009c817 days 38 mins ago0x9a7488f5da6a2ab06162ba523fd69b9b47c24c90  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000274128
0x5ee348ad361c456acbcb3a1c8b32613caa2a8cb1bf21215b93756fb0ce13602717 days 41 mins ago0xe92f5aab013e397c7c1fffb4f14b2f8f0cb90878  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000342048
0x3dd8029fae5aa3ca8dc4550bf412665eb0660b034315ed12b3d96cae24e0082017 days 45 mins ago0x9a7488f5da6a2ab06162ba523fd69b9b47c24c90  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000522048
0xd2ab588954c8eefd8fde342dad0409ebe4a2cf620b56038171543eb521c08f7f18 days 16 hrs ago0x80b1b39e3faa3ae3ac608b8829cf191d316d347b  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.0004002368
0x50315e5cbce68f22b5942a482b83991dd1133476bcfa28701f9963897bf0d9b318 days 17 hrs ago0x95e8713a5d2bf0ddaf8d0819e73907a8cee3d111  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000159908
0x2a7c6863d1bc89d52a5028153fd387a392fe39496831fb40b1dc58c4c3d66de918 days 17 hrs ago0x95e8713a5d2bf0ddaf8d0819e73907a8cee3d111  IN   0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0 Ether0.000304528
[ Download CSV Export  ] 
 Internal Transactions as a result of Contract Execution
 Latest 25 Internal Txns, Click Here To View More View All
ParentTxHash Block Age From To Value
0x4be5fdaaa80d0caa040ef56181a848111a6febd29bad9a9e8a7951f36c96d2da65130954 days 16 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x23183dafd738fb876c363da7651a679fcb24b6570.001497985138153103 Ether
0xdddb32c23ecafd3679b14dee01f7018af10367f62266c35181e6b5194b0bee9f644057716 days 10 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x445b660236c39f5bc98bc49dddc7cf1f246a40ab1.470810269173823188 Ether
0x4b45a999ccf99445d725a01baefb265af79d64033f39250cc3edf6ed814f7261644056516 days 11 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xbbefe89ebb2a0e15921f07f041be5691d834a2870.631735818267827859 Ether
0xfd4d497e0672d69999e66aca783c54bb331ebd61e604786eabb1c9ec37ae6c9c644056416 days 11 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x60e31b8b79bd92302fe452242ea6f7672a77a80f0.767980358820271441 Ether
0x8ccc527d44b0bcfa340a516bdf72940090344762791187d4ab74e179a89294b5644054416 days 11 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xa732e7665ff54ba63ae40e67fac9f23ecd0b12234.925213788806636481 Ether
0xbe9384ba316e1cbe849f2987975a782cf6c03ca643fa44dce853f2efd9a35807643741316 days 23 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xe92f5aab013e397c7c1fffb4f14b2f8f0cb908780.581726332875007121 Ether
0x562c95e9f38234366f0ab154b03312a5db7f591f47f672d49858a3b65cb1f6cd643740316 days 23 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x9a7488f5da6a2ab06162ba523fd69b9b47c24c900.475059290187334161 Ether
0x18195e0b6e0d57266ed75b5c5486625233d3aa3489d39f588a7c110f3f9975b8643740316 days 23 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x262f9228521a192f84551373046ddc25ee6fdb700.451691244724230486 Ether
0x98682daae3cb37e3a5d2aedc82d3c23effcff8b26ac87f061cf61299072a46c8643712817 days 27 mins ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x262f9228521a192f84551373046ddc25ee6fdb700.093273559387085118 Ether
0x5ee348ad361c456acbcb3a1c8b32613caa2a8cb1bf21215b93756fb0ce136027643706217 days 41 mins ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xe92f5aab013e397c7c1fffb4f14b2f8f0cb908780.212232005971491284 Ether
0x3dd8029fae5aa3ca8dc4550bf412665eb0660b034315ed12b3d96cae24e00820643705217 days 45 mins ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x9a7488f5da6a2ab06162ba523fd69b9b47c24c900.097291261469087617 Ether
0xd2ab588954c8eefd8fde342dad0409ebe4a2cf620b56038171543eb521c08f7f642698718 days 16 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x80b1b39e3faa3ae3ac608b8829cf191d316d347b0.002929175891522163 Ether
0x2a7c6863d1bc89d52a5028153fd387a392fe39496831fb40b1dc58c4c3d66de9642674518 days 17 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x95e8713a5d2bf0ddaf8d0819e73907a8cee3d1110.950131787188450332 Ether
0x1c07e1241963c5d91a96974717c983eb5f2b4b94340d97b7e42d376dfe19d013641945519 days 21 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x22caa6670991d67bf0ea033156114f07de4aa20b1.714884325791282597 Ether
0x9476bd19b24af8a24365a1af03513bd2bc1d74273271551b22b66c4a0290ebdd641944119 days 22 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x4af87534cb13b473d8c1199093a8052b5ad6661b1.610106364842280639 Ether
0xea3fe5c1ccb6891a81cf66a82bb1fd7cd5e5d1a135da142e3be8c9cb94ab3e0d639040124 days 16 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xd7c610e3bb6a150febf66311ee9a9f6adc089b930.010748703847389423 Ether
0xf005f9a817ab84e28b33beacf20f4b5168908d0df34b7d25455f913a43a3c2f8627631943 days 14 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xf9d7f59e5d0711f5482968d69b5aee251945d1c51.18203886518204484 Ether
0x87e1db89849da6f44c8e789b7deae1fc4811b74fd2a2e30f019ba85b2234c7d6625005548 days 1 hr ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x8948e4b00deb0a5adb909f4dc5789d20d0851d710.000000190842077937 Ether
0x6dd6d6f326d096357e1077d5add9a8ab810accce1d1a4cb717d6f5bb48ea7e4f624475048 days 22 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x8948e4b00deb0a5adb909f4dc5789d20d0851d710.000183778508940553 Ether
0x3398d166b2a417f61e805c577d0150ed6aafcfc7fe047d4bb72b73e0dab5280c623366550 days 19 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xce82cf84558add0eff5ecfb3de63ff75df59ace00.000000358289031725 Ether
0xa880fdaf061d7b42142c87514268b19cd7c392ec96fff8a094247e692f84382f622253052 days 16 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xce82cf84558add0eff5ecfb3de63ff75df59ace00.014529260231709748 Ether
0xaf00bd346d6c5f75693cb5e0e1f4efe0ee5b5bfe55f660fcf6137d022fcb1e3c621150854 days 12 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x51763d18e92ade0b95256e57120cc17a9ef7d2130.040216201826450621 Ether
0x0e11c67ff18f3cf9f58578a0c2976d2f478f8ea8c4efac67816f2026f1c2216f618677258 days 17 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x255447f0e114d2264ca41d25894a9cbe1f135ce90.065039518225880623 Ether
0xcc009a762daf77217374803ab112cd6f22a77fb19f94c90a4324c31f1fe6d1d1618155859 days 14 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0x7c11132ffc196515c88d37e9dc532593df23af6b0.011055258106616268 Ether
0xe170a3b303a07b7cf4c32fff769b7944a54ae5de54ef5f434b62d31615955f16617967159 days 22 hrs ago0x812f8d75654ee5a342ecf98ddf166739eb9ed58f0xce82cf84558add0eff5ecfb3de63ff75df59ace00.000000569019788215 Ether
[ Download CSV Export  ] 
Warning: The Compiled Contract might be susceptible to ExpExponentCleanup (medium/high-severity), EventStructWrongData (very low-severity), NestedArrayFunctionCallDecoder (medium-severity) SolidityCompiler Bugs.

Contract Source Code Verified (Exact Match)
Contract Name: Hourglass
Compiler Text: v0.4.20+commit.3155dd80
Optimization Enabled: No
Runs (Optimiser):  200



  Contract Source Code   Find Similiar Contracts

pragma solidity ^0.4.20;

/*
* LastHero团队.
* -> 这是什么?
* 改进的自主金字塔资金模型:
* [x] 该合约是目前最稳定的智能合约,经受过所有的攻击测试!
* [x] 由ARC等多名安全专家审核测试。
* [X] 新功能:可部分卖出,而不必将你的所有资产全部卖出!
* [x] 新功能:可以在钱包之间传输代币。可以在智能合约中进行交易!
* [x] 新特性:世界首创POS节点以太坊职能合约,让V神疯狂的新功能。
* [x] 主节点:持有100个代币即可拥有自己的主节点,主节点是唯一的智能合约入口!
* [x] 主节点:所有通过你的主节点进入合约的玩家,你可以获得10%的分红!
*
* -> 关于项目?
* 我们的团队成员拥有超强的创建安全智能合约的能力。
* 新的开发团队由经验丰富的专业开发人员组成,并由资深合约安全专家审核。
* 另外,我们公开进行过数百次的模拟攻击,该合约从来没有被攻破过。
* 
* -> 这个项目的成员有哪些?
* - PonziBot (math/memes/main site/master)数学
* - Mantso (lead solidity dev/lead web3 dev)主程
* - swagg (concept design/feedback/management)概念设计/反馈/管理
* - Anonymous#1 (main site/web3/test cases)网站/web3/测试
* - Anonymous#2 (math formulae/whitepaper)数学推导/白皮书
*
* -> 该项目的安全审核人员:
* - Arc
* - tocisck
* - sumpunk
*/

contract Hourglass {
    /*=================================
    =            MODIFIERS  全局       =
    =================================*/
    // 只限持币用户
    modifier onlyBagholders() {
        require(myTokens() > 0);
        _;
    }
    
    // 只限收益用户
    modifier onlyStronghands() {
        require(myDividends(true) > 0);
        _;
    }
    
    // 管理员权限:
    // -> 更改合约名称
    // -> 更改代币名称
    // -> 改变POS的难度(确保维持一个主节点需要多少代币,以避免滥发)
    // 管理员没有权限做以下事宜:
    // -> 动用资金
    // -> 禁止用户取款
    // -> 自毁合约
    // -> 改变代币价格
    modifier onlyAdministrator(){ // 用来确定是管理员
        address _customerAddress = msg.sender;
        require(administrators[keccak256(_customerAddress)]); // 在管理员列表中存在
        _; // 表示在modifier的函数执行完后,开始执行其它函数
    }
    
    
    // 确保合约中第一批代币均等的分配
    // 这意味着,不公平的优势成本是不可能存在的
    // 这将为基金的健康成长打下坚实的基础。
    modifier antiEarlyWhale(uint256 _amountOfEthereum){ // 判断状态
        address _customerAddress = msg.sender;
        
        // 我们还是处于不利的投资地位吗?
        // 既然如此,我们将禁止早期的大额投资 
        if( onlyAmbassadors && ((totalEthereumBalance() - _amountOfEthereum) <= ambassadorQuota_ )){
            require(
                // 这个用户在代表名单吗?
                ambassadors_[_customerAddress] == true &&
                
                // 用户购买量是否超过代表的最大配额?
                (ambassadorAccumulatedQuota_[_customerAddress] + _amountOfEthereum) <= ambassadorMaxPurchase_
                
            );
            
            // 更新累计配额  
            ambassadorAccumulatedQuota_[_customerAddress] = SafeMath.add(ambassadorAccumulatedQuota_[_customerAddress], _amountOfEthereum);
        
            // 执行
            _;
        } else {
            // 如果基金中以太币数量下降到创世值,代表阶段也不会重新启动。
            onlyAmbassadors = false;
            _;    
        }
        
    }
    
    
    /*==============================
    =            EVENTS  事件      =
    ==============================*/
    event onTokenPurchase( // 购买代币
        address indexed customerAddress,
        uint256 incomingEthereum,
        uint256 tokensMinted,
        address indexed referredBy
    );
    
    event onTokenSell( // 出售代币
        address indexed customerAddress,
        uint256 tokensBurned,
        uint256 ethereumEarned
    );
    
    event onReinvestment( // 再投资
        address indexed customerAddress,
        uint256 ethereumReinvested,
        uint256 tokensMinted
    );
    
    event onWithdraw( // 提取资金
        address indexed customerAddress,
        uint256 ethereumWithdrawn
    );
    
    // ERC20标准
    event Transfer( // 一次交易
        address indexed from,
        address indexed to,
        uint256 tokens
    );
    
    
    /*=====================================
    =            CONFIGURABLES  配置       =
    =====================================*/
    string public name = "LastHero3D"; // 名字
    string public symbol = "Keys"; // 符号
    uint8 constant public decimals = 18; // 小数位
    uint8 constant internal dividendFee_ = 10; // 交易分红比例
    uint256 constant internal tokenPriceInitial_ = 0.0000001 ether; // 代币初始价格
    uint256 constant internal tokenPriceIncremental_ = 0.00000001 ether; // 代币递增价格
    uint256 constant internal magnitude = 2**64;
    
    // 股份证明(默认值为100代币)
    uint256 public stakingRequirement = 100e18;
    
    // 代表计划
    mapping(address => bool) internal ambassadors_; // 代表集合
    uint256 constant internal ambassadorMaxPurchase_ = 1 ether; // 最大购买
    uint256 constant internal ambassadorQuota_ = 20 ether; // 购买限额
    
    
    
   /*================================
    =            DATASETS   数据     =
    ================================*/
    // 每个地址的股份数量(按比例编号)
    mapping(address => uint256) internal tokenBalanceLedger_; // 保存地址的代币数量
    mapping(address => uint256) internal referralBalance_; // 保存地址的推荐分红
    mapping(address => int256) internal payoutsTo_;
    mapping(address => uint256) internal ambassadorAccumulatedQuota_;
    uint256 internal tokenSupply_ = 0;
    uint256 internal profitPerShare_;
    
    // 管理员列表(管理员权限见上述)
    mapping(bytes32 => bool) public administrators; // 管理者地址列表
    
    // 当代表制度成立,只有代表可以购买代币(这确保了完美的金字塔分布,以防持币比例不均)
    bool public onlyAmbassadors = true; // 限制只有代表能够购买代币
    


    /*=======================================
    =            PUBLIC FUNCTIONS 公开函数   =
    =======================================*/
    /*
    * -- 应用入口 --  
    */
    function Hourglass()
        public
    {
        // 在这里添加管理员
        administrators[0xdacb12a29ec52e618a1dbe39a3317833066e94371856cc2013565dab2ae6fa62] = true;
        
        // 在这里添加代表。
        // mantso - lead solidity dev & lead web dev. 
        ambassadors_[0x24257cF6fEBC8aAaE2dC20906d4Db1C619d40329] = true;
        
        // ponzibot - mathematics & website, and undisputed meme god.
        ambassadors_[0xEa01f6203bD55BA694594FDb5575f2936dB7f698] = true;
        
        // swagg - concept design, feedback, management.
        ambassadors_[0x22caa6670991D67bf0EA033156114F07de4aa20b] = true;
        
        // k-dawgz - shilling machine, meme maestro, bizman.
        ambassadors_[0xf9d7f59E5d0711f5482968D69B5aEe251945D1c5] = true;
        
        // elmojo - all those pretty .GIFs & memes you see? you can thank this man for that.
        ambassadors_[0x4d82B6839Fd64eF7D3Af64080167A42bF9B9E332] = true;
        
        // capex - community moderator.
        ambassadors_[0x1f50451b941d163837623E25E22033C11626491C] = true;
        
        // jörmungandr - pentests & twitter trendsetter.
        ambassadors_[0xC68538d6971D1B0AC8829f8B14e6a9B2AF614119] = true;
        
        // inventor - the source behind the non-intrusive referral model.
        ambassadors_[0x23183DaFd738FB876c363dA7651A679fcb24b657] = true;
        
        // tocsick - pentesting, contract auditing.
        ambassadors_[0x95E8713a5D2bf0DDAf8D0819e73907a8CEE3D111] = true;
        
        // arc - pentesting, contract auditing.
        ambassadors_[0x976f6397ae155239289D6cb7904E6730BeBa7c79] = true;
        
        // sumpunk - contract auditing.
        ambassadors_[0xC26BB52D97BA7e4c6DA8E7b07D1B8B78Be178FBd] = true;
        
        // randall - charts & sheets, data dissector, advisor.
        ambassadors_[0x23C654314EaDAaE05857dE5a61c1228c33282807] = true;
        
        // ambius - 3d chart visualization.
        ambassadors_[0xA732E7665fF54Ba63AE40E67Fac9f23EcD0b1223] = true;
        
        // contributors that need to remain private out of security concerns.
        ambassadors_[0x445b660236c39F5bc98bc49ddDc7CF1F246a40aB] = true; //dp
        ambassadors_[0x60e31B8b79bd92302FE452242Ea6F7672a77a80f] = true; //tc
        ambassadors_[0xbbefE89eBb2a0e15921F07F041BE5691d834a287] = true; //ja
        ambassadors_[0x5ad183E481cF0477C024A96c5d678a88249295b8] = true; //sf
        ambassadors_[0x10C5423A46a09D6c5794Cdd507ee9DA7E406F095] = true; //tb
        ambassadors_[0x9E191643D643AA5908C5B9d3b10c27Ad9fb4AcBE] = true; //sm
        ambassadors_[0x2c389a382003E9467a84932E68a35cea27A34B8D] = true; //mc
        ambassadors_[0x4af87534cb13B473D8c1199093a8052b5Ad6661B] = true; //et
        

    }
    
     
    /**
     * 将所有以太坊网络传入转换为代币调用,并向下传递(如果有下层拓扑)
     */
    function buy(address _referredBy)
        public
        payable
        returns(uint256)
    {
        purchaseTokens(msg.value, _referredBy);
    }
    
    /**
     * 回调函数来处理直接发送到合约的以太坊参数。
     * 我们不能通过这种方式来指定一个地址。
     */
    function()
        payable
        public
    {
        purchaseTokens(msg.value, 0x0);
    }
    
    /**
     * 将所有的分红请求转换为代币。
     */
    function reinvest()
        onlyStronghands()
        public
    {
        // 提取股息
        uint256 _dividends = myDividends(false); // retrieve ref. bonus later in the code
        
        // 实际支付的股息
        address _customerAddress = msg.sender;
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // 检索参考奖金
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // 发送一个购买订单通过虚拟化的“撤回股息”
        uint256 _tokens = purchaseTokens(_dividends, 0x0);
        
        // 重大事件
        onReinvestment(_customerAddress, _dividends, _tokens);
    }
    
    /**
     * 退出流程,卖掉并且提取资金
     */
    function exit()
        public
    {
        // 通过调用获取代币数量并将其全部出售
        address _customerAddress = msg.sender;
        uint256 _tokens = tokenBalanceLedger_[_customerAddress];
        if(_tokens > 0) sell(_tokens);
        
        // 取款服务
        withdraw();
    }

    /**
     * 取走请求者的所有收益。
     */
    function withdraw()
        onlyStronghands()
        public
    {
        // 设置数据
        address _customerAddress = msg.sender;
        uint256 _dividends = myDividends(false); // 从代码中获得参考奖金
        
        // 更新股息系统
        payoutsTo_[_customerAddress] +=  (int256) (_dividends * magnitude);
        
        // 添加参考奖金
        _dividends += referralBalance_[_customerAddress];
        referralBalance_[_customerAddress] = 0;
        
        // 获取服务
        _customerAddress.transfer(_dividends);
        
        // 重大事件
        onWithdraw(_customerAddress, _dividends);
    }
    
    /**
     * 以太坊代币。
     */
    function sell(uint256 _amountOfTokens)
        onlyBagholders()
        public
    {
        // 设置数据
        address _customerAddress = msg.sender;
        // 来自俄罗斯的BTFO
        require(_amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        uint256 _tokens = _amountOfTokens;
        uint256 _ethereum = tokensToEthereum_(_tokens);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        
        // 销毁已出售的代币
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokens);
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _tokens);
        
        // 更新股息系统
        int256 _updatedPayouts = (int256) (profitPerShare_ * _tokens + (_taxedEthereum * magnitude));
        payoutsTo_[_customerAddress] -= _updatedPayouts;       
        
        // 禁止除以0
        if (tokenSupply_ > 0) {
            // 更新代币的股息金额
            profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        }
        
        // 重大事件
        onTokenSell(_customerAddress, _tokens, _taxedEthereum);
    }
    
    
    /**
     * 从请求者账户转移代币新持有者账户。
     * 记住,这里还有10%的费用。
     */
    function transfer(address _toAddress, uint256 _amountOfTokens)
        onlyBagholders()
        public
        returns(bool)
    {
        // 设置
        address _customerAddress = msg.sender;
        
        // 取保拥有足够的代币
        // 代币禁止转移,直到代表阶段结束。
        // (我们不想捕鲸)
        require(!onlyAmbassadors && _amountOfTokens <= tokenBalanceLedger_[_customerAddress]);
        
        // 取走所有未付的股息
        if(myDividends(true) > 0) withdraw();
        
        // 被转移代币的十分之一
        // 这些都将平分给个股东
        uint256 _tokenFee = SafeMath.div(_amountOfTokens, dividendFee_);
        uint256 _taxedTokens = SafeMath.sub(_amountOfTokens, _tokenFee);
        uint256 _dividends = tokensToEthereum_(_tokenFee);
  
        // 销毁费用代币
        tokenSupply_ = SafeMath.sub(tokenSupply_, _tokenFee);

        // 代币交换
        tokenBalanceLedger_[_customerAddress] = SafeMath.sub(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        tokenBalanceLedger_[_toAddress] = SafeMath.add(tokenBalanceLedger_[_toAddress], _taxedTokens);
        
        // 更新股息系统
        payoutsTo_[_customerAddress] -= (int256) (profitPerShare_ * _amountOfTokens);
        payoutsTo_[_toAddress] += (int256) (profitPerShare_ * _taxedTokens);
        
        // 分发股息给持有者
        profitPerShare_ = SafeMath.add(profitPerShare_, (_dividends * magnitude) / tokenSupply_);
        
        // 重大事件
        Transfer(_customerAddress, _toAddress, _taxedTokens);
        
        // ERC20标准
        return true;
       
    }
    
    /*----------  管理员功能  ----------*/
    /**
     * 如果没有满足配额,管理员可以提前结束代表阶段。
     */
    function disableInitialStage()
        onlyAdministrator()
        public
    {
        onlyAmbassadors = false;
    }
    
    /**
     * 在特殊情况,可以更换管理员账户。
     */
    function setAdministrator(bytes32 _identifier, bool _status)
        onlyAdministrator()
        public
    {
        administrators[_identifier] = _status;
    }
    
    /**
     * 作为预防措施,管理员可以调整主节点的费率。
     */
    function setStakingRequirement(uint256 _amountOfTokens)
        onlyAdministrator()
        public
    {
        stakingRequirement = _amountOfTokens;
    }
    
    /**
     * 管理员可以重新定义品牌(代币名称)。
     */
    function setName(string _name)
        onlyAdministrator()
        public
    {
        name = _name;
    }
    
    /**
     * 管理员可以重新定义品牌(代币符号)。
     */
    function setSymbol(string _symbol)
        onlyAdministrator()
        public
    {
        symbol = _symbol;
    }

    
    /*----------  帮助者和计数器  ----------*/
    /**
     * 在合约中查看当前以太坊状态的方法
     * 例如 totalEthereumBalance()
     */
    function totalEthereumBalance() // 查看余额
        public
        view
        returns(uint)
    {
        return this.balance;
    }
    
    /**
     * 检索代币供应总量。
     */
    function totalSupply()
        public
        view
        returns(uint256)
    {
        return tokenSupply_;
    }
    
    /**
     * 检索请求者的代币余额。
     */
    function myTokens()
        public
        view
        returns(uint256)
    {
        address _customerAddress = msg.sender; // 获得发送者的地址
        return balanceOf(_customerAddress);
    }
    
    /**
     * 取回请求者拥有的股息。
     * 如果`_includeReferralBonus` 的值为1,那么推荐奖金将被计算在内。
     * 其原因是,在网页的前端,我们希望得到全局汇总。
     * 但在内部计算中,我们希望分开计算。
     */ 
    function myDividends(bool _includeReferralBonus) // 返回分红数,传入的参数用来指示是否考虑推荐分红
        public 
        view 
        returns(uint256)
    {
        address _customerAddress = msg.sender;
        return _includeReferralBonus ? dividendsOf(_customerAddress) + referralBalance_[_customerAddress] : dividendsOf(_customerAddress) ;
    }
    
    /**
     * 检索任意地址的代币余额。
     */
    function balanceOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return tokenBalanceLedger_[_customerAddress];
    }
    
    /**
     * 检索任意地址的股息余额。
     */
    function dividendsOf(address _customerAddress)
        view
        public
        returns(uint256)
    {
        return (uint256) ((int256)(profitPerShare_ * tokenBalanceLedger_[_customerAddress]) - payoutsTo_[_customerAddress]) / magnitude;
    }
    
    /**
     * 返回代币买入的价格。
     */
    function sellPrice() 
        public 
        view 
        returns(uint256)
    {
        // 我们的计算依赖于代币供应,所以我们需要知道供应量。
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ - tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * 返回代币卖出的价格。
     */
    function buyPrice() 
        public 
        view 
        returns(uint256)
    {
        // 我们的计算依赖于代币供应,所以我们需要知道供应量。
        if(tokenSupply_ == 0){
            return tokenPriceInitial_ + tokenPriceIncremental_;
        } else {
            uint256 _ethereum = tokensToEthereum_(1e18);
            uint256 _dividends = SafeMath.div(_ethereum, dividendFee_  );
            uint256 _taxedEthereum = SafeMath.add(_ethereum, _dividends);
            return _taxedEthereum;
        }
    }
    
    /**
     * 前端功能,动态获取买入订单价格。
     */
    function calculateTokensReceived(uint256 _ethereumToSpend) 
        public 
        view 
        returns(uint256)
    {
        uint256 _dividends = SafeMath.div(_ethereumToSpend, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereumToSpend, _dividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        
        return _amountOfTokens;
    }
    
    /**
     * 前端功能,动态获取卖出订单价格。
     */
    function calculateEthereumReceived(uint256 _tokensToSell) 
        public 
        view 
        returns(uint256)
    {
        require(_tokensToSell <= tokenSupply_);
        uint256 _ethereum = tokensToEthereum_(_tokensToSell);
        uint256 _dividends = SafeMath.div(_ethereum, dividendFee_);
        uint256 _taxedEthereum = SafeMath.sub(_ethereum, _dividends);
        return _taxedEthereum;
    }
    
    
    /*==========================================
    =            INTERNAL FUNCTIONS  内部函数   =
    ==========================================*/
    function purchaseTokens(uint256 _incomingEthereum, address _referredBy)
        antiEarlyWhale(_incomingEthereum)
        internal
        returns(uint256)
    {
        // 数据设置
        address _customerAddress = msg.sender;
        uint256 _undividedDividends = SafeMath.div(_incomingEthereum, dividendFee_);
        uint256 _referralBonus = SafeMath.div(_undividedDividends, 3);
        uint256 _dividends = SafeMath.sub(_undividedDividends, _referralBonus);
        uint256 _taxedEthereum = SafeMath.sub(_incomingEthereum, _undividedDividends);
        uint256 _amountOfTokens = ethereumToTokens_(_taxedEthereum);
        uint256 _fee = _dividends * magnitude;
 
        // 禁止恶意执行
        // 防止溢出
        // (防止黑客入侵)
        // 定义SAFEMATH保证数据安全。
        require(_amountOfTokens > 0 && (SafeMath.add(_amountOfTokens,tokenSupply_) > tokenSupply_));
        
        // 用户是否被主节点引用?
        if(
            // 是否有推荐者?
            _referredBy != 0x0000000000000000000000000000000000000000 &&

            // 禁止作弊!
            _referredBy != _customerAddress && // 不能自己推荐自己
            
            // 推荐人是否有足够的代币?
            // 确保推荐人是诚实的主节点
            tokenBalanceLedger_[_referredBy] >= stakingRequirement
        ){
            // 财富再分配
            referralBalance_[_referredBy] = SafeMath.add(referralBalance_[_referredBy], _referralBonus);
        } else {
            // 无需购买
            // 添加推荐奖励到全局分红
            _dividends = SafeMath.add(_dividends, _referralBonus); // 把推荐奖励还给分红
            _fee = _dividends * magnitude;
        }
        
        // 我们不能给予无尽的以太坊
        if(tokenSupply_ > 0){
            
            // 添加代币到代币池
            tokenSupply_ = SafeMath.add(tokenSupply_, _amountOfTokens);
 
            // 获取这笔交易所获得的股息,并将平均分配给所有股东
            profitPerShare_ += (_dividends * magnitude / (tokenSupply_));
            
            // 计算用户通过购买获得的代币数量。 
            _fee = _fee - (_fee-(_amountOfTokens * (_dividends * magnitude / (tokenSupply_))));
        
        } else {
            // 添加代币到代币池
            tokenSupply_ = _amountOfTokens;
        }
        
        // 更新代币供应总量及用户地址
        tokenBalanceLedger_[_customerAddress] = SafeMath.add(tokenBalanceLedger_[_customerAddress], _amountOfTokens);
        
        // 告诉买卖双方在拥有代币前不会获得分红;
        // 我知道你认为你做了,但是你没有做。
        int256 _updatedPayouts = (int256) ((profitPerShare_ * _amountOfTokens) - _fee);
        payoutsTo_[_customerAddress] += _updatedPayouts;
        
        // 重大事件
        onTokenPurchase(_customerAddress, _incomingEthereum, _amountOfTokens, _referredBy);
        
        return _amountOfTokens;
    }

    /**
     * 通过以太坊传入数量计算代币价格;
     * 这是一个算法,在白皮书中能找到它的科学算法;
     * 做了一些修改,以防止十进制错误和代码的上下溢出。
     */
    function ethereumToTokens_(uint256 _ethereum) // 计算ETH兑换代币的汇率
        internal
        view
        returns(uint256)
    {
        uint256 _tokenPriceInitial = tokenPriceInitial_ * 1e18;
        uint256 _tokensReceived = 
         (
            (
                // 向下溢出尝试
                SafeMath.sub(
                    (sqrt
                        (
                            (_tokenPriceInitial**2)
                            +
                            (2*(tokenPriceIncremental_ * 1e18)*(_ethereum * 1e18))
                            +
                            (((tokenPriceIncremental_)**2)*(tokenSupply_**2))
                            +
                            (2*(tokenPriceIncremental_)*_tokenPriceInitial*tokenSupply_)
                        )
                    ), _tokenPriceInitial
                )
            )/(tokenPriceIncremental_)
        )-(tokenSupply_)
        ;
  
        return _tokensReceived;
    }
    
    /**
     * 计算代币出售的价格。
     * 这是一个算法,在白皮书中能找到它的科学算法;
     * 做了一些修改,以防止十进制错误和代码的上下溢出。
     */
     function tokensToEthereum_(uint256 _tokens)
        internal
        view
        returns(uint256)
    {

        uint256 tokens_ = (_tokens + 1e18);
        uint256 _tokenSupply = (tokenSupply_ + 1e18);
        uint256 _etherReceived =
        (
            // underflow attempts BTFO
            SafeMath.sub(
                (
                    (
                        (
                            tokenPriceInitial_ +(tokenPriceIncremental_ * (_tokenSupply/1e18))
                        )-tokenPriceIncremental_
                    )*(tokens_ - 1e18)
                ),(tokenPriceIncremental_*((tokens_**2-tokens_)/1e18))/2
            )
        /1e18);
        return _etherReceived;
    }
    
    
    //这里会消耗Gas
    //你大概会多消耗1gwei
    function sqrt(uint x) internal pure returns (uint y) {
        uint z = (x + 1) / 2;
        y = x;
        while (z < y) {
            y = z;
            z = (x / z + z) / 2;
        }
    }
}

/**
 * @title SafeMath函数
 * @dev 安全的数学运算
 */
library SafeMath {

    /**
    * @dev 两个数字乘法,抛出溢出。
    */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        assert(c / a == b);
        return c;
    }

    /**
    * @dev 两个数字的整数除法。
    */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        // assert(b > 0); // 值为0时自动抛出
        uint256 c = a / b;
        // assert(a == b * c + a % b); // 否则不成立
        return c;
    }

    /**
    * @dev 两个数字的减法,如果减数大于被减数,则溢出抛出。
    */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        assert(b <= a);
        return a - b;
    }

    /**
    * @dev 两个数字的加法,向上溢出抛出
    */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        assert(c >= a);
        return c;
    }
}

    Contract ABI  
[{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"dividendsOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_ethereumToSpend","type":"uint256"}],"name":"calculateTokensReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokensToSell","type":"uint256"}],"name":"calculateEthereumReceived","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"onlyAmbassadors","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"administrators","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"sellPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"stakingRequirement","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_includeReferralBonus","type":"bool"}],"name":"myDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalEthereumBalance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_customerAddress","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"setStakingRequirement","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"buyPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_identifier","type":"bytes32"},{"name":"_status","type":"bool"}],"name":"setAdministrator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"myTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"disableInitialStage","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_toAddress","type":"address"},{"name":"_amountOfTokens","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_symbol","type":"string"}],"name":"setSymbol","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"setName","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_amountOfTokens","type":"uint256"}],"name":"sell","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"exit","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_referredBy","type":"address"}],"name":"buy","outputs":[{"name":"","type":"uint256"}],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[],"name":"reinvest","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"incomingEthereum","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"},{"indexed":true,"name":"referredBy","type":"address"}],"name":"onTokenPurchase","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"tokensBurned","type":"uint256"},{"indexed":false,"name":"ethereumEarned","type":"uint256"}],"name":"onTokenSell","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumReinvested","type":"uint256"},{"indexed":false,"name":"tokensMinted","type":"uint256"}],"name":"onReinvestment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"customerAddress","type":"address"},{"indexed":false,"name":"ethereumWithdrawn","type":"uint256"}],"name":"onWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"tokens","type":"uint256"}],"name":"Transfer","type":"event"}]

  Contract Creation Code Switch To Opcodes View
60606040526040805190810160405280600a81526020017f4c6173744865726f334400000000000000000000000000000000000000000000815250600090805190602001906200005192919062000a0e565b506040805190810160405280600481526020017f4b65797300000000000000000000000000000000000000000000000000000000815250600190805190602001906200009f92919062000a0e565b5068056bc75e2d6310000060025560006008556001600b60006101000a81548160ff0219169083151502179055503415620000d957600080fd5b6001600a60007fdacb12a29ec52e618a1dbe39a3317833066e94371856cc2013565dab2ae6fa6260010260001916815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007324257cf6febc8aaae2dc20906d4db1c619d4032973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073ea01f6203bd55ba694594fdb5575f2936db7f69873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007322caa6670991d67bf0ea033156114f07de4aa20b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073f9d7f59e5d0711f5482968d69b5aee251945d1c573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000734d82b6839fd64ef7d3af64080167a42bf9b9e33273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000731f50451b941d163837623e25e22033c11626491c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073c68538d6971d1b0ac8829f8b14e6a9b2af61411973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007323183dafd738fb876c363da7651a679fcb24b65773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007395e8713a5d2bf0ddaf8d0819e73907a8cee3d11173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073976f6397ae155239289d6cb7904e6730beba7c7973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073c26bb52d97ba7e4c6da8e7b07d1b8b78be178fbd73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007323c654314eadaae05857de5a61c1228c3328280773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073a732e7665ff54ba63ae40e67fac9f23ecd0b122373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073445b660236c39f5bc98bc49dddc7cf1f246a40ab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007360e31b8b79bd92302fe452242ea6f7672a77a80f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600073bbefe89ebb2a0e15921f07f041be5691d834a28773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000735ad183e481cf0477c024a96c5d678a88249295b873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360007310c5423a46a09d6c5794cdd507ee9da7e406f09573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000739e191643d643aa5908c5b9d3b10c27ad9fb4acbe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000732c389a382003e9467a84932e68a35cea27a34b8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000734af87534cb13b473d8c1199093a8052b5ad6661b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000abd565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000a5157805160ff191683800117855562000a82565b8280016001018555821562000a82579182015b8281111562000a8157825182559160200191906001019062000a64565b5b50905062000a91919062000a95565b5090565b62000aba91905b8082111562000ab657600081600090555060010162000a9c565b5090565b90565b61239c8062000acd6000396000f30060606040526004361061015e576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806265318b1461016c57806306fdde03146101b957806310d0ffdd1461024757806318160ddd1461027e57806322609373146102a757806327defa1f146102de578063313ce5671461030b578063392efb521461033a5780633ccfd60b146103795780634b7503341461038e57806356d399e8146103b7578063688abbf7146103e05780636b2f46321461041957806370a08231146104425780638328b6101461048f5780638620410b146104b257806389135ae9146104db578063949e8acd1461050d57806395d89b4114610536578063a8e04f34146105c4578063a9059cbb146105d9578063b84c824614610633578063c47f002714610690578063e4849b32146106ed578063e9fad8ee14610710578063f088d54714610725578063fdb5a03e14610767575b61016934600061077c565b50005b341561017757600080fd5b6101a3600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061107c565b6040518082815260200191505060405180910390f35b34156101c457600080fd5b6101cc61111e565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561020c5780820151818401526020810190506101f1565b50505050905090810190601f1680156102395780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561025257600080fd5b61026860048080359060200190919050506111bc565b6040518082815260200191505060405180910390f35b341561028957600080fd5b6102916111f4565b6040518082815260200191505060405180910390f35b34156102b257600080fd5b6102c860048080359060200190919050506111fe565b6040518082815260200191505060405180910390f35b34156102e957600080fd5b6102f1611247565b604051808215151515815260200191505060405180910390f35b341561031657600080fd5b61031e61125a565b604051808260ff1660ff16815260200191505060405180910390f35b341561034557600080fd5b61035f60048080356000191690602001909190505061125f565b604051808215151515815260200191505060405180910390f35b341561038457600080fd5b61038c61127f565b005b341561039957600080fd5b6103a161141c565b6040518082815260200191505060405180910390f35b34156103c257600080fd5b6103ca61147a565b6040518082815260200191505060405180910390f35b34156103eb57600080fd5b61040360048080351515906020019091905050611480565b6040518082815260200191505060405180910390f35b341561042457600080fd5b61042c6114ec565b6040518082815260200191505060405180910390f35b341561044d57600080fd5b610479600480803573ffffffffffffffffffffffffffffffffffffffff1690602001909190505061150b565b6040518082815260200191505060405180910390f35b341561049a57600080fd5b6104b06004808035906020019091905050611554565b005b34156104bd57600080fd5b6104c56115e8565b6040518082815260200191505060405180910390f35b34156104e657600080fd5b61050b6004808035600019169060200190919080351515906020019091905050611646565b005b341561051857600080fd5b610520611707565b6040518082815260200191505060405180910390f35b341561054157600080fd5b61054961171c565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561058957808201518184015260208101905061056e565b50505050905090810190601f1680156105b65780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156105cf57600080fd5b6105d76117ba565b005b34156105e457600080fd5b610619600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091908035906020019091905050611861565b604051808215151515815260200191505060405180910390f35b341561063e57600080fd5b61068e600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611b93565b005b341561069b57600080fd5b6106eb600480803590602001908201803590602001908080601f01602080910402602001604051908101604052809392919081815260200183838082843782019150505050505091905050611c37565b005b34156106f857600080fd5b61070e6004808035906020019091905050611cdb565b005b341561071b57600080fd5b610723611f09565b005b610751600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050611f70565b6040518082815260200191505060405180910390f35b341561077257600080fd5b61077a611f82565b005b60008060008060008060008060008a6000339050600b60009054906101000a900460ff1680156107be57506801158e460913d00000826107ba6114ec565b0311155b15610cac5760011515600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514801561086c5750670de0b6b3a764000082600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020540111155b151561087757600080fd5b6108c0600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120f6565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503399506109148d600a60ff16612114565b9850610921896003612114565b975061092d898961212f565b96506109398d8a61212f565b955061094486612148565b94506801000000000000000087029350600085118015610970575060085461096e866008546120f6565b115b151561097b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff16141580156109e457508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610a315750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610ac757610a7f600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896120f6565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ae2565b610ad187896120f6565b965068010000000000000000870293505b60006008541115610b4d57610af9600854866120f6565b600881905550600854680100000000000000008802811515610b1757fe5b04600960008282540192505081905550600854680100000000000000008802811515610b3f57fe5b048502840384039350610b55565b846008819055505b610b9e600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866120f6565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a5061106c565b6000600b60006101000a81548160ff021916908315150217905550339950610cd88d600a60ff16612114565b9850610ce5896003612114565b9750610cf1898961212f565b9650610cfd8d8a61212f565b9550610d0886612148565b94506801000000000000000087029350600085118015610d345750600854610d32866008546120f6565b115b1515610d3f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614158015610da857508973ffffffffffffffffffffffffffffffffffffffff168c73ffffffffffffffffffffffffffffffffffffffff1614155b8015610df55750600254600460008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b15610e8b57610e43600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054896120f6565b600560008e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ea6565b610e9587896120f6565b965068010000000000000000870293505b60006008541115610f1157610ebd600854866120f6565b600881905550600854680100000000000000008802811515610edb57fe5b04600960008282540192505081905550600854680100000000000000008802811515610f0357fe5b048502840384039350610f19565b846008819055505b610f62600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054866120f6565b600460008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555083856009540203925082600660008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508b73ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167f022c0d992e4d873a3748436d960d5140c1f9721cf73f7ca5ec679d3d9f4fe2d58f88604051808381526020018281526020019250505060405180910390a3849a505b5050505050505050505092915050565b600068010000000000000000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600954020381151561111657fe5b049050919050565b60008054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111b45780601f10611189576101008083540402835291602001916111b4565b820191906000526020600020905b81548152906001019060200180831161119757829003601f168201915b505050505081565b6000806000806111d085600a60ff16612114565b92506111dc858461212f565b91506111e782612148565b9050809350505050919050565b6000600854905090565b600080600080600854851115151561121557600080fd5b61121e856121d5565b925061122e83600a60ff16612114565b915061123a838361212f565b9050809350505050919050565b600b60009054906101000a900460ff1681565b601281565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600061128e6001611480565b11151561129a57600080fd5b3391506112a76000611480565b9050680100000000000000008102600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054810190506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015156113ca57600080fd5b8173ffffffffffffffffffffffffffffffffffffffff167fccad973dcd043c7d680389db4378bd6b9775db7124092e9e0422c9e46d7985dc826040518082815260200191505060405180910390a25050565b60008060008060006008541415611441576402540be40064174876e800039350611474565b611452670de0b6b3a76400006121d5565b925061146283600a60ff16612114565b915061146e838361212f565b90508093505b50505090565b60025481565b60008033905082611499576114948161107c565b6114e4565b600560008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114e28261107c565b015b915050919050565b60003073ffffffffffffffffffffffffffffffffffffffff1631905090565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156115dd57600080fd5b816002819055505050565b6000806000806000600854141561160d576402540be40064174876e800019350611640565b61161e670de0b6b3a76400006121d5565b925061162e83600a60ff16612114565b915061163a83836120f6565b90508093505b50505090565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff1615156116cf57600080fd5b81600a6000856000191660001916815260200190815260200160002060006101000a81548160ff021916908315150217905550505050565b6000803390506117168161150b565b91505090565b60018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117b25780601f10611787576101008083540402835291602001916117b2565b820191906000526020600020905b81548152906001019060200180831161179557829003601f168201915b505050505081565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff16151561184357600080fd5b6000600b60006101000a81548160ff02191690831515021790555050565b600080600080600080611872611707565b11151561187e57600080fd5b339350600b60009054906101000a900460ff161580156118dd5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548611155b15156118e857600080fd5b60006118f46001611480565b11156119035761190261127f565b5b61191186600a60ff16612114565b925061191d868461212f565b9150611928836121d5565b90506119366008548461212f565b600881905550611985600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548761212f565b600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a11600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054836120f6565b600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508560095402600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055508160095402600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611b1a600954600854680100000000000000008402811515611b1457fe5b046120f6565b6009819055508673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a3600194505050505092915050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611c1c57600080fd5b8160019080519060200190611c329291906122cb565b505050565b6000339050600a600082604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166c0100000000000000000000000002815260140191505060405180910390206000191660001916815260200190815260200160002060009054906101000a900460ff161515611cc057600080fd5b8160009080519060200190611cd69291906122cb565b505050565b6000806000806000806000611cee611707565b111515611cfa57600080fd5b339550600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548711151515611d4b57600080fd5b869450611d57856121d5565b9350611d6784600a60ff16612114565b9250611d73848461212f565b9150611d816008548661212f565b600881905550611dd0600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548661212f565b600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550680100000000000000008202856009540201905080600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254039250508190555060006008541115611eaa57611ea3600954600854680100000000000000008602811515611e9d57fe5b046120f6565b6009819055505b8573ffffffffffffffffffffffffffffffffffffffff167fc4823739c5787d2ca17e404aa47d5569ae71dfb49cbf21b3f6152ed238a311398684604051808381526020018281526020019250505060405180910390a250505050505050565b600080339150600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811115611f6457611f6381611cdb565b5b611f6c61127f565b5050565b6000611f7c348361077c565b50919050565b600080600080611f926001611480565b111515611f9e57600080fd5b611fa86000611480565b9250339150680100000000000000008302600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054830192506000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209983600061077c565b90508173ffffffffffffffffffffffffffffffffffffffff167fbe339fc14b041c2b0e0f3dd2cd325d0c3668b78378001e53160eab36153264588483604051808381526020018281526020019250505060405180910390a2505050565b600080828401905083811015151561210a57fe5b8091505092915050565b600080828481151561212257fe5b0490508091505092915050565b600082821115151561213d57fe5b818303905092915050565b6000806000670de0b6b3a764000064174876e8000291506008546402540be4006121be6121b8600854866402540be400600202020260026008540a60026402540be4000a02670de0b6b3a76400008a02670de0b6b3a76400006402540be40002600202026002890a010101612280565b8561212f565b8115156121c757fe5b040390508092505050919050565b600080600080670de0b6b3a764000085019250670de0b6b3a7640000600854019150670de0b6b3a7640000612269670de0b6b3a764000085036402540be400670de0b6b3a76400008681151561222757fe5b046402540be4000264174876e8000103026002670de0b6b3a7640000876002890a0381151561225257fe5b046402540be4000281151561226357fe5b0461212f565b81151561227257fe5b049050809350505050919050565b60008060026001840181151561229257fe5b0490508291505b818110156122c55780915060028182858115156122b257fe5b04018115156122bd57fe5b049050612299565b50919050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061230c57805160ff191683800117855561233a565b8280016001018555821561233a579182015b8281111561233957825182559160200191906001019061231e565b5b509050612347919061234b565b5090565b61236d91905b80821115612369576000816000905550600101612351565b5090565b905600a165627a7a7230582004882a55a5e970fc37fa5a538ac0f127486a8a69695e2993ed42248dbae6e9050029

   Swarm Source:
bzzr://04882a55a5e970fc37fa5a538ac0f127486a8a69695e2993ed42248dbae6e905

 

View All
Block Age transaction Difficulty GasUsed Reward
View All
Block Age UncleNumber Difficulty GasUsed Reward
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.