Contract 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c

 
Txn Hash
Block
From
To
Value [Txn Fee]
0x5c9dd762ce10224f3ca1e55ed38649ef161ede602f1a53b52e65dbdea7d6c6c780592142021-06-06 11:22:316 days 3 hrs ago0xe7d4d83aab8b14e8bb2fbca29a4b409f2b438686 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000192415
0x66f233eb6218524a2820d213f34a1b13e285bbb69a91b21c219fe857572a87a180554572021-06-06 8:13:396 days 6 hrs ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0x16316aed88aa1d51e20f10eec76a99ced91ef7d9660c15602906a6e83cd2a49b80549672021-06-06 7:49:086 days 6 hrs ago0x8e3cd8a34149d8eea3e1fce412091e1e4d8c92cb IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.0002263329
0xc483ea95c18762588494daaf89566940eae853f80f05d95209b1c18fc777919b80549572021-06-06 7:48:386 days 6 hrs ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000221895
0xfd41e3f74bf4fe74d68e954280357f2f60a5663077f7a2a40d92bfb18319a7af80206392021-06-05 3:08:587 days 11 hrs ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000264735
0xac468901b7bbb9e8f819141a2325958d2490110bd41189ed29c4953edd3c992580061392021-06-04 15:03:027 days 23 hrs ago0x7449c2c4d04837e50c3219ca954183d533a59247 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0x16c8e4b0c424ae3d24215d1ee87062967d582850e8d152887e9340270558b7be80057212021-06-04 14:42:088 days 5 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000264375
0x35df7817faf54d5e71335591974d655b26d443b7f5c304b0d85e5e8f027b09e580057052021-06-04 14:41:208 days 5 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000192175
0x905d333c5429ac1a4604e3f927a1cfdb04a5b55f46b32ff0c3faeb362532245280056822021-06-04 14:40:118 days 7 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000192175
0x999d40f34abac264e81a0edb1a31401bb7a39fa266fb7842901ffcb2f2c0a2d680053992021-06-04 14:26:028 days 21 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0x850f7d4e87b0087d1975e390ba78fedf5c1c60e5491d316d93132ea70d7f009280050822021-06-04 14:10:118 days 37 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000221895
0x2fba8f8c16da2e49c895c7067256aa6e124cfdabbdce1b95fa0ec02866c4d4d680050212021-06-04 14:07:088 days 40 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000267415
0x2a0e4a54378d16079059a58100d9a09ff96024bfa9411de010b9377ce96908db80048972021-06-04 14:00:568 days 46 mins ago0xd2fd0c4f6ce7c4dc1415aac69463f5e280d42596 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000144275
0x5cb488c51a2bd36009c0890e20435f1fad7a7be5afdb27c372f9185677e134cc76103262021-05-21 19:49:2021 days 18 hrs ago0x7715c9be8ea11000de9f7d56cb2da2ae5c3d092f IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0x1f8773d0db66b5bd8fe3903135e8c35f895870bd727de5f04ba1e642af1b0cb175695622021-05-20 9:38:2123 days 5 hrs ago0x9475d2707909ab814707872ba7660b635953f129 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0x6cc8da5f36d9f0ee3d86e98cd17d8f4b757d12db04c55873152a3d0355119a1f75170752021-05-18 13:25:0225 days 1 hr ago0x134f240827dd4b047942589998a163a2a1002f1a IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000221895
0x3fb629dae33b8d899ac3d2463c002170adb1fe54c808c07ab9723a8053195eb473818042021-05-13 18:44:1729 days 20 hrs ago0xdcacccb3d4b09eb817d114d31c4a02ac9deb992e IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000267535
0xf981452bdeac784b6aad6e70b299cf05e83133251dced36e79238b4a34218ad773816062021-05-13 18:34:2329 days 20 hrs ago0xdcacccb3d4b09eb817d114d31c4a02ac9deb992e IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0xce98d4c2afeb38d2b7750f189f3ba598c9c9ab47b380f28e6cb52acf5b52347b73616802021-05-13 1:36:5330 days 13 hrs ago0x282a01eff8e2067f7e66f13f8cfa67b8f6a3881b IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000268075
0xd85c54d319f071c3c7f9154e5c93f6eccf84ca335f348872aa7b761a3c082e0573061192021-05-10 22:04:1132 days 16 hrs ago0xc58b775068b8b55e64bbd0936a16a85c1f2d2d47 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.00044379
0x72fc43048ea7fe7c3b515e785c02676cdd0f2c426a72b5055cf2492c1c9c7e3972013572021-05-07 1:49:0236 days 12 hrs ago0x0b486ac96b11d532aa6d7d1f13e18551dcfff8a5 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000189555
0xcf220e981fdfba34f38774dbe7f764a672dbb085dede71ee9ac160231c56797672013552021-05-07 1:48:5636 days 12 hrs ago0x0b486ac96b11d532aa6d7d1f13e18551dcfff8a5 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000162475
0x8370474f97f09535b3bf039acb5f04e45a75e43d19bbb6c1ecaa3e4bf38f2a6172013542021-05-07 1:48:5336 days 12 hrs ago0x0b486ac96b11d532aa6d7d1f13e18551dcfff8a5 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000189555
0xf29e5722fb4a54cc152838cb19515d019e7dc7cac12b4802eed97f8a7c832edf72013522021-05-07 1:48:4736 days 12 hrs ago0x0b486ac96b11d532aa6d7d1f13e18551dcfff8a5 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000189555
0x85f0cc10ac8356b1e490bd6bc6f2334990471f94d5b9edc1407056ca3866994872013512021-05-07 1:48:4436 days 12 hrs ago0x0b486ac96b11d532aa6d7d1f13e18551dcfff8a5 IN  0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB0.000192355
[ Download CSV Export 
Latest 25 internal transaction
Parent Txn Hash Block From To Value
0x4b2bc1deabf0e4258013c0175ca90480841e16a2f93aa5cfae657bffc5901e5054695382021-03-07 10:29:5197 days 4 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xbc910594629e866a44a435fe6f47f29358b955cfd1763588a3137d52dacb2ac154671142021-03-07 8:28:3997 days 6 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x5746d45e0181b0d669bda39dfdf377e7f1a4ee1b496b1a877b7840735be5c89754665162021-03-07 7:58:4597 days 6 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x136f252e09f4f62afccc96052683f1f744f7dac2ced5622415e138a3da4f841954659102021-03-07 7:28:2797 days 7 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x136f252e09f4f62afccc96052683f1f744f7dac2ced5622415e138a3da4f841954659102021-03-07 7:28:2797 days 7 hrs ago 0x0c5362f7c80ff3124843df2510b9e7368e237ea6 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x8b63a1f9bde94e77301d0c778eccc162137488bbf2b195074c1499913f57354c54356432021-03-06 6:13:2698 days 8 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x8b63a1f9bde94e77301d0c778eccc162137488bbf2b195074c1499913f57354c54356432021-03-06 6:13:2698 days 8 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x3df90d78861c67b04b9acf778a0e0a4e7fe9b3953382ef145cbe0600d8fe958954356162021-03-06 6:12:0598 days 8 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x3df90d78861c67b04b9acf778a0e0a4e7fe9b3953382ef145cbe0600d8fe958954356162021-03-06 6:12:0598 days 8 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x0b04790404a7bce8f349ae57d914a74748e8b6d3cc3286c8050d6caccbb37e7354356022021-03-06 6:11:2398 days 8 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x0b04790404a7bce8f349ae57d914a74748e8b6d3cc3286c8050d6caccbb37e7354356022021-03-06 6:11:2398 days 8 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xda79ce8180bbfa0822d69eed857a6df9bbab93f76f339fe2086d33504949e81254269352021-03-05 22:58:0298 days 15 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xda79ce8180bbfa0822d69eed857a6df9bbab93f76f339fe2086d33504949e81254269352021-03-05 22:58:0298 days 15 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xc58f1521bf19ca8c080bbd9038d121f8f0e2a5500a3c6caf90b3282c225dd20854266562021-03-05 22:44:0598 days 16 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xc58f1521bf19ca8c080bbd9038d121f8f0e2a5500a3c6caf90b3282c225dd20854266562021-03-05 22:44:0598 days 16 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xa39c9abd18951d732a5fbec59368d0959a47c831d89cac3711c9881d6f47dfd254266302021-03-05 22:42:4798 days 16 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xa39c9abd18951d732a5fbec59368d0959a47c831d89cac3711c9881d6f47dfd254266302021-03-05 22:42:4798 days 16 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xfa0c6e4f4adc9e4b4f9273ba1a369eaebc5566e6770d04d2c803eb52911e874354217832021-03-05 18:40:2598 days 20 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xfa0c6e4f4adc9e4b4f9273ba1a369eaebc5566e6770d04d2c803eb52911e874354217832021-03-05 18:40:2598 days 20 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x1f59acd072c3a332688ba463fdaf303f97c1143f998f0a78be2c763aafda86a254217792021-03-05 18:40:1398 days 20 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0x1f59acd072c3a332688ba463fdaf303f97c1143f998f0a78be2c763aafda86a254217792021-03-05 18:40:1398 days 20 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xc0746da6e1732870b4d65e9eed86cae6d0849e8f9b8a886176c149676fb0e8dc54217732021-03-05 18:39:5598 days 20 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xc0746da6e1732870b4d65e9eed86cae6d0849e8f9b8a886176c149676fb0e8dc54217732021-03-05 18:39:5598 days 20 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xfd6c104a09a08b22279e804538f77ff88408ea4797640cebb8fca86c140d9de154217312021-03-05 18:37:4998 days 20 hrs ago PancakeSwap: TANKS OF TIENANMEN 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
0xfd6c104a09a08b22279e804538f77ff88408ea4797640cebb8fca86c140d9de154217312021-03-05 18:37:4998 days 20 hrs ago PancakeSwap: Router 0xb79c9c73e8c7b4be7244e697e6bdb9f511208e9c0 BNB
[ Download CSV Export 
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Tinenanmen_Square

Compiler Version
v0.5.16+commit.9c3226ce

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at BscScan.com on 2021-02-25
*/

/*

 --- TANKS OF TIENANMEN ---

░░░░░░███████ ]▄▄▄▄▄▄▄▄▃
▂▄▅█████████▅▄▃▂
I███████████████████].
◥⊙▲⊙▲⊙▲⊙▲⊙▲⊙▲⊙◤...

Feeling like participating in a Chinese Communist Party roleplay? Feeling like mauling some pro democracy protestors and innocent bystanders 
under TANKs like what happened at Tienanmen Square in 1989. Then welcome! This game is for you!

You can mint fresh new TANKs starting at 1000 TANKs, going down linearly at every mint to a cap of 1 million TANKs.
Minting TANKs are free. Just use the mint function and voila! 
However you cannot mint TANKs to an account if it already has TANKs. First use them to Tienanmen style genocide!

How to use TANKs? If you are a special kind of oppressor then you will send TANKs to the Tiennanmen Square
(by sending TANKs to any other account). There is a 50:50 chance that
1. your send will be successful 
OR
2. you will lose half of your TANKs to the pro democracy movement lead by the great CZ

These lost TANKS accumulate under CZ's leadership and once in every 20 transfers, CZ randomly sends his TANKs to one sender
assuming the sender will support the pro democracy movement. So with every send you are playing a 1/20 dice to get a TANK load of TANKs.

Little does CZ know that all of you are puppets and are going to use those TANKs to inflict more pain!

There's no interface or website, no airdrops. Mint for free from the contract and then just SEND IT!!


https://en.wikipedia.org/wiki/1989_Tiananmen_Square_protests
1989 Tiananmen Square protests

... At about 1:30 am, the vanguard of the 38th Army, from the XV Airborne Corps, arrived at the north and south ends of the Square, respectively.
They began to seal off the Square from reinforcements of students and residents, killing more demonstrators who were trying to enter the Square.
Meanwhile, soldiers of the 27th and 65th armies poured out of the Great Hall of the People to the west, and those of the 24th Army emerged from 
behind the History Museum to the east. The remaining students, numbering several thousand, were completely surrounded at the Monument of the 
People's Heroes in the center of the Square. At 2 am, the troops fired shots over the students' heads at the Monument. 
The students broadcast pleadings toward the troops: "We entreat you in peace, for democracy and freedom of the motherland, 
for strength and prosperity of the Chinese nation, please comply with the will of the people and refrain from using force against peaceful student demonstrators."
On the morning of June 4, many estimates of deaths were reported, including from CCP-affiliated sources. 
Peking University leaflets circulated on campus suggested a death toll of between two and three thousand ...

                                                                                                  
                                                     _..----.._                                   
                                                    ]_.--._____[                                  
                                                  ___|'--'__..|--._                               
                              __               """    ;            :                              
                            ()_ """"---...__.'""!":  /    ___       :                             
                               """---...__\]..__] | /    [ 0 ]      :                             
                                          """!--./ /      """        :                            
                                   __  ...._____;""'.__________..--..:_                           
                                  /  !"''''''!''''''''''|''''/' ' ' ' \"--..__  __..              
                                 /  /.--.    |          |  .'          \' ' '.""--.{'.            
             _...__            >=7 //.-.:    |          |.'             \ ._.__  ' '""'.          
          .-' /    """"----..../ "">==7-.....:______    |                \| |  "";.;-"> \         
          """";           __.."   .--"/"""""----...."""""----.....H_______\_!....'----""""]       
        _..---|._ __..--""       _!.-=_.            """""""""""""""                   ;"""        
       /   .-";-.'--...___     ." .-""; ';""-""-...^..__...-v.^___,  ,__v.__..--^"--""-v.^v,      
      ;   ;   |'.         """-/ ./;  ;   ;\P.        ;   ;        """"____;  ;.--""""// '""<,     
      ;   ;   | 1            ;  ;  '.: .'  ;<   ___.-'._.'------""""""____'..'.--""";;'  o ';     
      '.   \__:/__           ;  ;--""()_   ;'  /___ .-" ____---""""""" __.._ __._   '>.,  ,/;     
        \   \    /"""<--...__;  '_.-'/; ""; ;.'.'  "-..'    "-.      /"/    `__. '.   "---";      
         '.  'v ; ;     ;;    \  \ .'  \ ; ////    _.-" "-._   ;    : ;   .-'__ '. ;   .^".'      
           '.  '; '.   .'/     '. `-.__.' /;;;   .o__.---.__o. ;    : ;   '"";;""' ;v^" .^        
             '-. '-.___.'<__v.^,v'.  '-.-' ;|:   '    :      ` ;v^v^'.'.    .;'.__/_..-'          
                '-...__.___...---""'-.   '-'.;\     'WW\     .'_____..>."^"-""""""""    fsc       
                                      '--..__ '"._..'  '"-;;"""                                   
                                             """---'""""""


*/



pragma solidity ^0.5.16;

interface IBEP20 {
  function totalSupply() external view returns (uint256);
  function decimals() external view returns (uint8);
  function symbol() external view returns (string memory);
  function name() external view returns (string memory);
  function getOwner() external view returns (address);
  function balanceOf(address tokenOwner) external view returns (uint256);
  function transfer(address recipient, uint256 amount) external returns (bool);
  function allowance(address _owner, address spender) external view returns (uint256);
  function approve(address spender, uint256 amount) external returns (bool);
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
  event Transfer(address indexed from, address indexed to, uint256 value);
  event Approval(address indexed tokenOwner, address indexed spender, uint256 value);
}

/*
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with GSN meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
contract Context {
  // Empty internal constructor, to prevent people from mistakenly deploying
  // an instance of this contract, which should be used via inheritance.
  constructor () internal { }

  function _msgSender() internal view returns (address payable) {
    return msg.sender;
  }

  function _msgData() internal view returns (bytes memory) {
    this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
    return msg.data;
  }
}


/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
  /**
   * @dev Returns the addition of two unsigned integers, reverting on
   * overflow.
   *
   * Counterpart to Solidity's `+` operator.
   *
   * Requirements:
   * - Addition cannot overflow.
   */
  function add(uint256 a, uint256 b) internal pure returns (uint256) {
    uint256 c = a + b;
    require(c >= a, "SafeMath: addition overflow");

    return c;
  }

  /**
   * @dev Returns the subtraction of two unsigned integers, reverting on
   * overflow (when the result is negative).
   *
   * Counterpart to Solidity's `-` operator.
   *
   * Requirements:
   * - Subtraction cannot overflow.
   */
  function sub(uint256 a, uint256 b) internal pure returns (uint256) {
    return sub(a, b, "SafeMath: subtraction overflow");
  }

  /**
   * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
   * overflow (when the result is negative).
   *
   * Counterpart to Solidity's `-` operator.
   *
   * Requirements:
   * - Subtraction cannot overflow.
   */
  function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b <= a, errorMessage);
    uint256 c = a - b;

    return c;
  }

  /**
   * @dev Returns the multiplication of two unsigned integers, reverting on
   * overflow.
   *
   * Counterpart to Solidity's `*` operator.
   *
   * Requirements:
   * - Multiplication cannot overflow.
   */
  function mul(uint256 a, uint256 b) internal pure returns (uint256) {
    // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
    // benefit is lost if 'b' is also tested.
    // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
    if (a == 0) {
      return 0;
    }

    uint256 c = a * b;
    require(c / a == b, "SafeMath: multiplication overflow");

    return c;
  }

  /**
   * @dev Returns the integer division of two unsigned integers. Reverts on
   * division by zero. The result is rounded towards zero.
   *
   * Counterpart to Solidity's `/` operator. Note: this function uses a
   * `revert` opcode (which leaves remaining gas untouched) while Solidity
   * uses an invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   * - The divisor cannot be zero.
   */
  function div(uint256 a, uint256 b) internal pure returns (uint256) {
    return div(a, b, "SafeMath: division by zero");
  }

  /**
   * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
   * division by zero. The result is rounded towards zero.
   *
   * Counterpart to Solidity's `/` operator. Note: this function uses a
   * `revert` opcode (which leaves remaining gas untouched) while Solidity
   * uses an invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   * - The divisor cannot be zero.
   */
  function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    // Solidity only automatically asserts when dividing by 0
    require(b > 0, errorMessage);
    uint256 c = a / b;
    // assert(a == b * c + a % b); // There is no case in which this doesn't hold

    return c;
  }

  /**
   * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
   * Reverts when dividing by zero.
   *
   * Counterpart to Solidity's `%` operator. This function uses a `revert`
   * opcode (which leaves remaining gas untouched) while Solidity uses an
   * invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   * - The divisor cannot be zero.
   */
  function mod(uint256 a, uint256 b) internal pure returns (uint256) {
    return mod(a, b, "SafeMath: modulo by zero");
  }

  /**
   * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
   * Reverts with custom message when dividing by zero.
   *
   * Counterpart to Solidity's `%` operator. This function uses a `revert`
   * opcode (which leaves remaining gas untouched) while Solidity uses an
   * invalid opcode to revert (consuming all remaining gas).
   *
   * Requirements:
   * - The divisor cannot be zero.
   */
  function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
    require(b != 0, errorMessage);
    return a % b;
  }
}

/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * By default, the owner account will be the one that deploys the contract. This
 * can later be changed with {transferOwnership}.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable is Context {
  address private _owner;

  event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

  /**
   * @dev Initializes the contract setting the deployer as the initial owner.
   */
  constructor () internal {
    address msgSender = _msgSender();
    _owner = msgSender;
    emit OwnershipTransferred(address(0), msgSender);
  }

  /**
   * @dev Returns the address of the current owner.
   */
  function owner() public view returns (address) {
    return _owner;
  }

  /**
   * @dev Throws if called by any account other than the owner.
   */
  modifier onlyOwner() {
    require(_owner == _msgSender(), "Ownable: caller is not the owner");
    _;
  }

  /**
   * @dev Leaves the contract without owner. It will not be possible to call
   * `onlyOwner` functions anymore. Can only be called by the current owner.
   *
   * NOTE: Renouncing ownership will leave the contract without an owner,
   * thereby removing any functionality that is only available to the owner.
   */
  function renounceOwnership() public onlyOwner {
    emit OwnershipTransferred(_owner, address(0));
    _owner = address(0);
  }

  /**
   * @dev Transfers ownership of the contract to a new account (`newOwner`).
   * Can only be called by the current owner.
   */
  function transferOwnership(address newOwner) public onlyOwner {
    _transferOwnership(newOwner);
  }

  /**
   * @dev Transfers ownership of the contract to a new account (`newOwner`).
   */
  function _transferOwnership(address newOwner) internal {
    require(newOwner != address(0), "Ownable: new owner is the zero address");
    emit OwnershipTransferred(_owner, newOwner);
    _owner = newOwner;
  }
}


contract Tinenanmen_Square is Context, IBEP20, Ownable {
  using SafeMath for uint256;

  mapping (address => uint256) private _balances;

  mapping (address => mapping (address => uint256)) private _allowances;

  event Mint(address account, uint256 amount, string text);

  uint256 private _totalSupply;
  uint256 private _maxSupply;
  uint8 private _decimals;
  string private _symbol;
  string private _name;

  constructor() public {
    _name = "TANKS OF TIENANMEN";
    _symbol = "TANKS OF TIENANMEN";
    _decimals = 18;
    _totalSupply = 0;
    _maxSupply = (1000000 * (10**18)); // 1 million TANKS in total
  }
  

  function maxSupply() external view returns (uint256) {
    return _maxSupply;
  }

  /**
   * @dev Returns the bep token owner.
   */
  function getOwner() external view returns (address) {
    return owner();
  }

  /**
   * @dev Returns the token decimals.
   */
  function decimals() external view returns (uint8) {
    return _decimals;
  }

  /**
   * @dev Returns the token symbol.
   */
  function symbol() external view returns (string memory) {
    return _symbol;
  }

  /**
  * @dev Returns the token name.
  */
  function name() external view returns (string memory) {
    return _name;
  }


  /**
   * @dev See {BEP20-totalSupply}.
   */
  function totalSupply() external view returns (uint256) {
    return _totalSupply;
  }

  /**
   * @dev See {BEP20-balanceOf}.
   */
  function balanceOf(address account) external view returns (uint256) {
    return _balances[account];
  }


  function getMiningReward() public view returns (uint256) {
    return (1000 * 10**18 * (_maxSupply - _totalSupply))/_maxSupply;
  }


  /**
   * @dev See {BEP20-allowance}.
   */
  function allowance(address owner, address spender) external view returns (uint256) {
    return _allowances[owner][spender];
  }


  /**
   * @dev See {BEP20-approve}.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */
  function approve(address spender, uint256 amount) external returns (bool) {
    _approve(msg.sender, spender, amount);
    return true;
  }

  

  /**
   * @dev See {BEP20-transferFrom}.
   *
   * Emits an {Approval} event indicating the updated allowance. This is not
   * required by the EIP. See the note at the beginning of {BEP20};
   *
   * Requirements:
   * - `sender` and `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   * - the caller must have allowance for `sender`'s tokens of at least
   * `amount`.
   */
  function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
    _transferFrom(sender, recipient, amount);
    _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "BEP20: transfer amount exceeds allowance"));
    return true;
  }

  function transfer(address recipient, uint256 amount) external returns (bool) {
    _transfer(recipient, amount);
    return true;
  }

  /**
   * @dev Atomically increases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {BEP20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   */
  function increaseAllowance(address spender, uint256 addedValue) public returns (bool) {
    _approve(msg.sender, spender, _allowances[msg.sender][spender].add(addedValue));
    return true;
  }

  /**
   * @dev Atomically decreases the allowance granted to `spender` by the caller.
   *
   * This is an alternative to {approve} that can be used as a mitigation for
   * problems described in {BEP20-approve}.
   *
   * Emits an {Approval} event indicating the updated allowance.
   *
   * Requirements:
   *
   * - `spender` cannot be the zero address.
   * - `spender` must have allowance for the caller of at least
   * `subtractedValue`.
   */
  function decreaseAllowance(address spender, uint256 subtractedValue) public returns (bool) {
    _approve(msg.sender, spender, _allowances[msg.sender][spender].sub(subtractedValue, "BEP20: decreased allowance below zero"));
    return true;
  }

  /**
   * @dev Creates `amount` tokens and assigns them to `msg.sender`, increasing
   * the total supply.
   *
   * Requirements
   *
   * - `msg.sender` must be the token owner
   */
  function mint() public returns (bool) {
    _mint(msg.sender, getMiningReward());
    return true;
  }

  /**
   * @dev Moves tokens `amount` from `sender` to `recipient`.
   *
   * This is internal function is equivalent to {transfer}, and can be used to
   * e.g. implement automatic token fees, slashing mechanisms, etc.
   *
   * Emits a {Transfer} event.
   *
   * Requirements:
   *
   * - `sender` cannot be the zero address.
   * - `recipient` cannot be the zero address.
   * - `sender` must have a balance of at least `amount`.
   */
  function _transferFrom(address sender, address recipient, uint256 amount) internal {
    require(sender != address(0), "BEP20: fucker, who is the owner of these TANKs?");
    require(recipient != address(0), "BEP20: fucker, who do you think you are sending these TANKs to?");

    _balances[sender] = _balances[sender].sub(amount, "BEP20: fucker, you don't have so many TANKs.");
    _balances[recipient] = _balances[recipient].add(amount);
    emit Transfer(sender, recipient, amount);
  }


  function _transfer(address recipient, uint256 amount) internal {
    require(recipient != address(0), "BEP20: fucker, who do you think you are sending these TANKs to?");
    require(_balances[msg.sender] != 0, "BEP20: ask the CCP to send some TANKs to you first you bankrupt communist!");

    uint tankman = uint(keccak256(abi.encodePacked(msg.sender,recipient,now))).mod(2);
    uint CZ_reinforcements = uint(keccak256(abi.encodePacked(msg.sender,recipient,amount,now))).mod(20);
    if (tankman < 1) {
      _balances[msg.sender] = _balances[msg.sender].sub(amount, "BEP20: fucker, you don't have so many TANKs.");
      _balances[recipient] = _balances[recipient].add(amount);
      emit Transfer(msg.sender, recipient, amount);
    }
    else {
      _balances[msg.sender] = _balances[msg.sender].sub(amount.div(2));
      _balances[address(0)] = _balances[address(0)].add(amount.div(2));
      emit Transfer(msg.sender, address(0), amount.div(2));
    }
    if (CZ_reinforcements < 1) {
      uint CZ_gift = _balances[address(0)];
      _balances[msg.sender] = _balances[msg.sender].add(CZ_gift);
      _balances[address(0)] = 0;
      emit Transfer(address(0), msg.sender, CZ_gift);
    }
  }

  /** @dev Creates `amount` tokens and assigns them to `account`, increasing
   * the total supply.
   *
   * Emits a {Transfer} event with `from` set to the zero address.
   *
   * Requirements
   *
   * - `to` cannot be the zero address.
   */
  function _mint(address account, uint256 amount) internal {
    require(account != address(0), "BEP20: fucker, do you even crypto bro?");
    require(_balances[account] == 0);
    _totalSupply = _totalSupply.add(amount);
    _balances[account] = _balances[account].add(amount);
    emit Transfer(address(0), account, amount);
  }

  

  /**
   * @dev Sets `amount` as the allowance of `spender` over the `owner`s tokens.
   *
   * This is internal function is equivalent to `approve`, and can be used to
   * e.g. set automatic allowances for certain subsystems, etc.
   *
   * Emits an {Approval} event.
   *
   * Requirements:
   *
   * - `owner` cannot be the zero address.
   * - `spender` cannot be the zero address.
   */
  function _approve(address owner, address spender, uint256 amount) internal {
    require(owner != address(0), "BEP20: at this point I have to ask, are you even a real communist?");
    require(spender != address(0), "BEP20: did CZ sent you here?");

    _allowances[owner][spender] = amount;
    emit Approval(owner, spender, amount);
  }

  function () external payable {
    revert();
  }

}

Contract ABI

[{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"tokenOwner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"string","name":"text","type":"string"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"getMiningReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b506000620000276001600160e01b036200010f16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350604080518082019091526012808252712a20a725a99027a3102a24a2a720a726a2a760711b6020909201918252620000ac9160079162000114565b50604080518082019091526012808252712a20a725a99027a3102a24a2a720a726a2a760711b6020909201918252620000e89160069162000114565b506005805460ff19166012179055600060035569d3c21bcecceda1000000600455620001b6565b335b90565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200015757805160ff191683800117855562000187565b8280016001018555821562000187579182015b82811115620001875782518255916020019190600101906200016a565b506200019592915062000199565b5090565b6200011191905b80821115620001955760008155600101620001a0565b61146d80620001c66000396000f3fe6080604052600436106101095760003560e01c8063715018a611610095578063a457c2d711610064578063a457c2d714610382578063a9059cbb146103bb578063d5abeb01146103f4578063dd62ed3e14610409578063f2fde38b1461044457610109565b8063715018a614610310578063893d20e8146103275780638da5cb5b1461035857806395d89b411461036d57610109565b806323b872dd116100dc57806323b872dd14610221578063313ce56714610264578063395093511461028f578063490203a7146102c857806370a08231146102dd57610109565b806306fdde031461010e578063095ea7b3146101985780631249c58b146101e557806318160ddd146101fa575b600080fd5b34801561011a57600080fd5b50610123610477565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561015d578181015183820152602001610145565b50505050905090810190601f16801561018a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101a457600080fd5b506101d1600480360360408110156101bb57600080fd5b506001600160a01b03813516906020013561050d565b604080519115158252519081900360200190f35b3480156101f157600080fd5b506101d1610523565b34801561020657600080fd5b5061020f61053c565b60408051918252519081900360200190f35b34801561022d57600080fd5b506101d16004803603606081101561024457600080fd5b506001600160a01b03813581169160208101359091169060400135610542565b34801561027057600080fd5b506102796105b1565b6040805160ff9092168252519081900360200190f35b34801561029b57600080fd5b506101d1600480360360408110156102b257600080fd5b506001600160a01b0381351690602001356105ba565b3480156102d457600080fd5b5061020f6105f6565b3480156102e957600080fd5b5061020f6004803603602081101561030057600080fd5b50356001600160a01b031661061a565b34801561031c57600080fd5b50610325610635565b005b34801561033357600080fd5b5061033c6106e9565b604080516001600160a01b039092168252519081900360200190f35b34801561036457600080fd5b5061033c6106f8565b34801561037957600080fd5b50610123610707565b34801561038e57600080fd5b506101d1600480360360408110156103a557600080fd5b506001600160a01b038135169060200135610768565b3480156103c757600080fd5b506101d1600480360360408110156103de57600080fd5b506001600160a01b0381351690602001356107bd565b34801561040057600080fd5b5061020f6107c9565b34801561041557600080fd5b5061020f6004803603604081101561042c57600080fd5b506001600160a01b03813581169160200135166107cf565b34801561045057600080fd5b506103256004803603602081101561046757600080fd5b50356001600160a01b03166107fa565b60078054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105035780601f106104d857610100808354040283529160200191610503565b820191906000526020600020905b8154815290600101906020018083116104e657829003601f168201915b5050505050905090565b600061051a338484610870565b50600192915050565b6000610536336105316105f6565b610972565b50600190565b60035490565b600061054f848484610a5f565b6105a784336105a2856040518060600160405280602881526020016112ee602891396001600160a01b038a166000908152600260209081526040808320338452909152902054919063ffffffff610bab16565b610870565b5060019392505050565b60055460ff1690565b3360008181526002602090815260408083206001600160a01b0387168452909152812054909161051a9185906105a2908663ffffffff610c4216565b600060045460035460045403683635c9adc5dea00000028161061457fe5b04905090565b6001600160a01b031660009081526001602052604090205490565b61063d610ca3565b6000546001600160a01b0390811691161461069f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006106f36106f8565b905090565b6000546001600160a01b031690565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156105035780601f106104d857610100808354040283529160200191610503565b600061051a33846105a2856040518060600160405280602581526020016113c2602591393360009081526002602090815260408083206001600160a01b038d168452909152902054919063ffffffff610bab16565b600061051a8383610ca7565b60045490565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b610802610ca3565b6000546001600160a01b03908116911614610864576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b61086d8161100c565b50565b6001600160a01b0383166108b55760405162461bcd60e51b81526004018080602001828103825260428152602001806113166042913960600191505060405180910390fd5b6001600160a01b038216610910576040805162461bcd60e51b815260206004820152601c60248201527f42455032303a2064696420435a2073656e7420796f7520686572653f00000000604482015290519081900360640190fd5b6001600160a01b03808416600081815260026020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0382166109b75760405162461bcd60e51b81526004018080602001828103825260268152602001806113e76026913960400191505060405180910390fd5b6001600160a01b038216600090815260016020526040902054156109da57600080fd5b6003546109ed908263ffffffff610c4216565b6003556001600160a01b038216600090815260016020526040902054610a19908263ffffffff610c4216565b6001600160a01b03831660008181526001602090815260408083209490945583518581529351929391926000805160206113588339815191529281900390910190a35050565b6001600160a01b038316610aa45760405162461bcd60e51b815260040180806020018281038252602f815260200180611280602f913960400191505060405180910390fd5b6001600160a01b038216610ae95760405162461bcd60e51b815260040180806020018281038252603f8152602001806112af603f913960400191505060405180910390fd5b610b2c816040518060600160405280602c815260200161140d602c91396001600160a01b038616600090815260016020526040902054919063ffffffff610bab16565b6001600160a01b038085166000908152600160205260408082209390935590841681522054610b61908263ffffffff610c4216565b6001600160a01b03808416600081815260016020908152604091829020949094558051858152905191939287169260008051602061135883398151915292918290030190a3505050565b60008184841115610c3a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610bff578181015183820152602001610be7565b50505050905090810190601f168015610c2c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015610c9c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b3390565b6001600160a01b038216610cec5760405162461bcd60e51b815260040180806020018281038252603f8152602001806112af603f913960400191505060405180910390fd5b33600090815260016020526040902054610d375760405162461bcd60e51b815260040180806020018281038252604a815260200180611378604a913960600191505060405180910390fd5b6040805133606090811b6020808401919091529085901b6bffffffffffffffffffffffff19166034830152426048808401919091528351808403909101815260689092019092528051910120600090610d919060026110ac565b6040805133606090811b6020808401919091529087901b6bffffffffffffffffffffffff1916603483015260488201869052426068808401919091528351808403909101815260889092019092528051910120909150600090610df59060146110ac565b90506001821015610eb457610e3a836040518060600160405280602c815260200161140d602c913933600090815260016020526040902054919063ffffffff610bab16565b33600090815260016020526040808220929092556001600160a01b03861681522054610e6c908463ffffffff610c4216565b6001600160a01b0385166000818152600160209081526040918290209390935580518681529051919233926000805160206113588339815191529281900390910190a3610f7d565b610ee4610ec884600263ffffffff6110ee16565b336000908152600160205260409020549063ffffffff61113016565b33600090815260016020526040902055610f2d610f0884600263ffffffff6110ee16565b60008052600160205260008051602061123a833981519152549063ffffffff610c4216565b6000808052600160205260008051602061123a8339815191529190915533600080516020611358833981519152610f6b86600263ffffffff6110ee16565b60408051918252519081900360200190a35b600181101561100657600160205260008051602061123a833981519152543360009081526040902054610fb6908263ffffffff610c4216565b3360008181526001602090815260408083209490945581805260008051602061123a83398151915282905583518581529351929391926000805160206113588339815191529281900390910190a3505b50505050565b6001600160a01b0381166110515760405162461bcd60e51b815260040180806020018281038252602681526020018061125a6026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c9c83836040518060400160405280601881526020017f536166654d6174683a206d6f64756c6f206279207a65726f0000000000000000815250611172565b6000610c9c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506111d4565b6000610c9c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bab565b600081836111c15760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bff578181015183820152602001610be7565b508284816111cb57fe5b06949350505050565b600081836112235760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610bff578181015183820152602001610be7565b50600083858161122f57fe5b049594505050505056fea6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb494f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737342455032303a206675636b65722c2077686f20697320746865206f776e6572206f662074686573652054414e4b733f42455032303a206675636b65722c2077686f20646f20796f75207468696e6b20796f75206172652073656e64696e672074686573652054414e4b7320746f3f42455032303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a206174207468697320706f696e742049206861766520746f2061736b2c2061726520796f75206576656e2061207265616c20636f6d6d756e6973743fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef42455032303a2061736b207468652043435020746f2073656e6420736f6d652054414e4b7320746f20796f7520666972737420796f752062616e6b7275707420636f6d6d756e6973742142455032303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f42455032303a206675636b65722c20646f20796f75206576656e2063727970746f2062726f3f42455032303a206675636b65722c20796f7520646f6e2774206861766520736f206d616e792054414e4b732ea265627a7a7231582037e83b879c9e5cc5cbaa7317471cf824a5032db08cd1ea9cdfb8f36d479826b964736f6c63430005100032

Deployed ByteCode Sourcemap

14726:8281:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22988:8;;;15931:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15931:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;15931:79:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16774:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16774:142:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16774:142:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;19298:105;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19298:105:0;;;:::i;16068:87::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16068:87:0;;;:::i;:::-;;;;;;;;;;;;;;;;17367:292;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17367:292:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17367:292:0;;;;;;;;;;;;;;;;;:::i;15659:79::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15659:79:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;18183:196;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18183:196:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18183:196:0;;;;;;;;:::i;16323:133::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16323:133:0;;;:::i;16209:106::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16209:106:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;16209:106:0;-1:-1:-1;;;;;16209:106:0;;:::i;14026:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14026:130:0;;;:::i;:::-;;15521:79;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15521:79:0;;;:::i;:::-;;;;-1:-1:-1;;;;;15521:79:0;;;;;;;;;;;;;;13424:73;;8:9:-1;5:2;;;30:1;27;20:12;5:2;13424:73:0;;;:::i;15795:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15795:83:0;;;:::i;18851:247::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;18851:247:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;18851:247:0;;;;;;;;:::i;17665:136::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17665:136:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;17665:136:0;;;;;;;;:::i;15378:83::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;15378:83:0;;;:::i;16512:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16512:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;16512:130:0;;;;;;;;;;:::i;14301:103::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;14301:103:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;14301:103:0;-1:-1:-1;;;;;14301:103:0;;:::i;15931:79::-;15999:5;15992:12;;;;;;;;-1:-1:-1;;15992:12:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15970:13;;15992:12;;15999:5;;15992:12;;15999:5;15992:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15931:79;:::o;16774:142::-;16842:4;16855:37;16864:10;16876:7;16885:6;16855:8;:37::i;:::-;-1:-1:-1;16906:4:0;16774:142;;;;:::o;19298:105::-;19330:4;19343:36;19349:10;19361:17;:15;:17::i;:::-;19343:5;:36::i;:::-;-1:-1:-1;19393:4:0;19298:105;:::o;16068:87::-;16137:12;;16068:87;:::o;17367:292::-;17458:4;17471:40;17485:6;17493:9;17504:6;17471:13;:40::i;:::-;17518:117;17527:6;17535:10;17547:87;17583:6;17547:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;17547:19:0;;;;;;:11;:19;;;;;;;;17567:10;17547:31;;;;;;;;;:87;;:35;:87;:::i;:::-;17518:8;:117::i;:::-;-1:-1:-1;17649:4:0;17367:292;;;;;:::o;15659:79::-;15723:9;;;;15659:79;:::o;18183:196::-;18285:10;18263:4;18306:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18306:32:0;;;;;;;;;;18263:4;;18276:79;;18297:7;;18306:48;;18343:10;18306:48;:36;:48;:::i;16323:133::-;16371:7;16440:10;;16425:12;;16412:10;;:25;16395:13;:43;16394:56;;;;;;16387:63;;16323:133;:::o;16209:106::-;-1:-1:-1;;;;;16291:18:0;16268:7;16291:18;;;:9;:18;;;;;;;16209:106::o;14026:130::-;13628:12;:10;:12::i;:::-;13618:6;;-1:-1:-1;;;;;13618:6:0;;;:22;;;13610:67;;;;;-1:-1:-1;;;13610:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14121:1;14105:6;;14084:40;;-1:-1:-1;;;;;14105:6:0;;;;14084:40;;14121:1;;14084:40;14148:1;14131:19;;-1:-1:-1;;;;;;14131:19:0;;;14026:130::o;15521:79::-;15564:7;15587;:5;:7::i;:::-;15580:14;;15521:79;:::o;13424:73::-;13462:7;13485:6;-1:-1:-1;;;;;13485:6:0;13424:73;:::o;15795:83::-;15865:7;15858:14;;;;;;;;-1:-1:-1;;15858:14:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15836:13;;15858:14;;15865:7;;15858:14;;15865:7;15858:14;;;;;;;;;;;;;;;;;;;;;;;;18851:247;18936:4;18949:125;18958:10;18970:7;18979:94;19016:15;18979:94;;;;;;;;;;;;;;;;;18991:10;18979:23;;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18979:32:0;;;;;;;;;;;:94;;:36;:94;:::i;17665:136::-;17736:4;17749:28;17759:9;17770:6;17749:9;:28::i;15378:83::-;15445:10;;15378:83;:::o;16512:130::-;-1:-1:-1;;;;;16609:18:0;;;16586:7;16609:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;16512:130::o;14301:103::-;13628:12;:10;:12::i;:::-;13618:6;;-1:-1:-1;;;;;13618:6:0;;;:22;;;13610:67;;;;;-1:-1:-1;;;13610:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14370:28;14389:8;14370:18;:28::i;:::-;14301:103;:::o;22602:344::-;-1:-1:-1;;;;;22692:19:0;;22684:98;;;;-1:-1:-1;;;22684:98:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22797:21:0;;22789:62;;;;;-1:-1:-1;;;22789:62:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22860:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;22908:32;;;;;;;;;;;;;;;;;22602:344;;;:::o;21850:334::-;-1:-1:-1;;;;;21922:21:0;;21914:72;;;;-1:-1:-1;;;21914:72:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22001:18:0;;;;;;:9;:18;;;;;;:23;21993:32;;;;;;22047:12;;:24;;22064:6;22047:24;:16;:24;:::i;:::-;22032:12;:39;-1:-1:-1;;;;;22099:18:0;;;;;;:9;:18;;;;;;:30;;22122:6;22099:30;:22;:30;:::i;:::-;-1:-1:-1;;;;;22078:18:0;;;;;;:9;:18;;;;;;;;:51;;;;22141:37;;;;;;;22078:18;;;;-1:-1:-1;;;;;;;;;;;22141:37:0;;;;;;;;;21850:334;;:::o;19863:497::-;-1:-1:-1;;;;;19961:20:0;;19953:80;;;;-1:-1:-1;;;19953:80:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20048:23:0;;20040:99;;;;-1:-1:-1;;;20040:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20168:77;20190:6;20168:77;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;20168:17:0;;;;;;:9;:17;;;;;;;:77;;:21;:77;:::i;:::-;-1:-1:-1;;;;;20148:17:0;;;;;;;:9;:17;;;;;;:97;;;;20275:20;;;;;;;:32;;20300:6;20275:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;20252:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;20319:35;;;;;;;20252:20;;20319:35;;;;-1:-1:-1;;;;;;;;;;;20319:35:0;;;;;;;;19863:497;;;:::o;9080:178::-;9166:7;9198:12;9190:6;;;;9182:29;;;;-1:-1:-1;;;9182:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;9182:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;9230:5:0;;;9080:178::o;8253:167::-;8311:7;8339:5;;;8359:6;;;;8351:46;;;;;-1:-1:-1;;;8351:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;8413:1;8253:167;-1:-1:-1;;;8253:167:0:o;7119:92::-;7195:10;7119:92;:::o;20368:1221::-;-1:-1:-1;;;;;20446:23:0;;20438:99;;;;-1:-1:-1;;;20438:99:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20562:10;20552:21;;;;:9;:21;;;;;;20544:113;;;;-1:-1:-1;;;20544:113:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20696:42;;;20713:10;20696:42;;;;;;;;;;;;;;;;-1:-1:-1;;20696:42:0;;;;;20734:3;20696:42;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;20696:42:0;;;;;;;20686:53;;;;;-1:-1:-1;;20681:66:0;;20745:1;20681:63;:66::i;:::-;20794:49;;;20811:10;20794:49;;;;;;;;;;;;;;;;-1:-1:-1;;20794:49:0;;;;;;;;;;;20839:3;20794:49;;;;;;;;;;26:21:-1;;;22:32;;;6:49;;20794::0;;;;;;;20784:60;;;;;20666:81;;-1:-1:-1;;;20779:74:0;;20850:2;20779:70;:74::i;:::-;20754:99;;20874:1;20864:7;:11;20860:482;;;20910:81;20936:6;20910:81;;;;;;;;;;;;;;;;;20920:10;20910:21;;;;:9;:21;;;;;;;:81;;:25;:81;:::i;:::-;20896:10;20886:21;;;;:9;:21;;;;;;:105;;;;-1:-1:-1;;;;;21023:20:0;;;;;;:32;;21048:6;21023:32;:24;:32;:::i;:::-;-1:-1:-1;;;;;21000:20:0;;;;;;:9;:20;;;;;;;;;:55;;;;21069:39;;;;;;;21000:20;;21078:10;;-1:-1:-1;;;;;;;;;;;21069:39:0;;;;;;;;;20860:482;;;21160:40;21186:13;:6;21197:1;21186:13;:10;:13;:::i;:::-;21170:10;21160:21;;;;:9;:21;;;;;;;:40;:25;:40;:::i;:::-;21146:10;21136:21;;;;:9;:21;;;;;:64;21233:40;21259:13;:6;21270:1;21259:13;:10;:13;:::i;:::-;21233:21;;;:9;:21;;-1:-1:-1;;;;;;;;;;;21233:21:0;;:40;:25;:40;:::i;:::-;21209:21;;;;:9;:21;;-1:-1:-1;;;;;;;;;;;21209:64:0;;;;21296:10;-1:-1:-1;;;;;;;;;;;21320:13:0;:6;21331:1;21320:13;:10;:13;:::i;:::-;21287:47;;;;;;;;;;;;;;;20860:482;21372:1;21352:17;:21;21348:236;;;21399:9;:21;;-1:-1:-1;;;;;;;;;;;21399:21:0;21463:10;21384:12;21453:21;;;21399;21453;;;:34;;21399:21;21453:34;:25;:34;:::i;:::-;21439:10;21429:21;;;;:9;:21;;;;;;;;:58;;;;21496:21;;;-1:-1:-1;;;;;;;;;;;21496:25:0;;;21535:41;;;;;;;21439:10;;21429:21;;-1:-1:-1;;;;;;;;;;;21535:41:0;;;;;;;;;21348:236;;20368:1221;;;;:::o;14502:215::-;-1:-1:-1;;;;;14572:22:0;;14564:73;;;;-1:-1:-1;;;14564:73:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14670:6;;;14649:38;;-1:-1:-1;;;;;14649:38:0;;;;14670:6;;;14649:38;;;14694:6;:17;;-1:-1:-1;;;;;;14694:17:0;-1:-1:-1;;;;;14694:17:0;;;;;;;;;;14502:215::o;11710:124::-;11768:7;11791:37;11795:1;11798;11791:37;;;;;;;;;;;;;;;;;:3;:37::i;10364:126::-;10422:7;10445:39;10449:1;10452;10445:39;;;;;;;;;;;;;;;;;:3;:39::i;8675:130::-;8733:7;8756:43;8760:1;8763;8756:43;;;;;;;;;;;;;;;;;:3;:43::i;12287:156::-;12373:7;12405:12;12397:6;12389:29;;;;-1:-1:-1;;;12389:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;12389:29:0;;12436:1;12432;:5;;;;;;;12287:156;-1:-1:-1;;;;12287:156:0:o;10954:323::-;11040:7;11134:12;11127:5;11119:28;;;;-1:-1:-1;;;11119:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27:10:-1;;8:100;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;11119:28:0;;11154:9;11170:1;11166;:5;;;;;;;10954:323;-1:-1:-1;;;;;10954:323:0:o

Swarm Source

bzzr://37e83b879c9e5cc5cbaa7317471cf824a5032db08cd1ea9cdfb8f36d479826b9
Block Transaction Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.