@stargatefinance/stg-evm-sdk-v2 0.0.30 → 0.0.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/artifacts/src/StargateBase.sol/StargateBase.json +51 -13
- package/artifacts/src/StargateOFT.sol/StargateOFT.json +53 -15
- package/artifacts/src/StargatePool.sol/StargatePool.json +53 -15
- package/artifacts/src/StargatePoolMigratable.sol/StargatePoolMigratable.json +53 -15
- package/artifacts/src/StargatePoolNative.sol/StargatePoolNative.json +61 -15
- package/artifacts/src/interfaces/ITokenMessagingHandler.sol/ITokenMessagingHandler.json +51 -13
- package/artifacts/src/libs/Bus.sol/BusLib.json +2 -2
- package/artifacts/src/libs/BusCodec.sol/BusCodec.json +2 -2
- package/artifacts/src/messaging/TokenMessaging.sol/TokenMessaging.json +2 -2
- package/artifacts/src/peripheral/Treasurer.sol/Treasurer.json +2 -2
- package/artifacts/src/usdc/StargateOFTUSDC.sol/StargateOFTUSDC.json +53 -15
- package/artifacts/src/usdc/StargatePoolUSDC.sol/StargatePoolUSDC.json +53 -15
- package/deployments/bsc-sandbox-local/CreditMessaging.json +12 -12
- package/deployments/bsc-sandbox-local/FeeLibV1USDC.json +22 -22
- package/deployments/bsc-sandbox-local/FeeLibV1USDT.json +22 -22
- package/deployments/bsc-sandbox-local/RewardLib.json +3 -3
- package/deployments/bsc-sandbox-local/RewardRegistryLib.json +3 -3
- package/deployments/bsc-sandbox-local/RewardTokenMock.json +5 -5
- package/deployments/bsc-sandbox-local/StargateMultiRewarder.json +36 -36
- package/deployments/bsc-sandbox-local/StargateOFTUSDC.json +47 -54
- package/deployments/bsc-sandbox-local/StargateOFTUSDT.json +47 -54
- package/deployments/bsc-sandbox-local/StargateStaking.json +17 -17
- package/deployments/bsc-sandbox-local/TokenMessaging.json +31 -31
- package/deployments/bsc-sandbox-local/Treasurer.json +16 -16
- package/deployments/bsc-sandbox-local/USDCImpl.json +24 -24
- package/deployments/bsc-sandbox-local/USDCProxy.json +3 -3
- package/deployments/bsc-sandbox-local/USDCSignatureLib.json +3 -3
- package/deployments/bsc-sandbox-local/USDT.json +4 -4
- package/deployments/ethereum-sandbox-local/CreditMessaging.json +21 -21
- package/deployments/ethereum-sandbox-local/FeeLibV1ETH.json +27 -27
- package/deployments/ethereum-sandbox-local/FeeLibV1USDC.json +27 -27
- package/deployments/ethereum-sandbox-local/FeeLibV1USDT.json +27 -27
- package/deployments/ethereum-sandbox-local/RewardLib.json +7 -7
- package/deployments/ethereum-sandbox-local/RewardRegistryLib.json +7 -7
- package/deployments/ethereum-sandbox-local/RewardTokenMock.json +12 -12
- package/deployments/ethereum-sandbox-local/StargateMultiRewarder.json +47 -47
- package/deployments/ethereum-sandbox-local/StargatePoolNative.json +63 -62
- package/deployments/ethereum-sandbox-local/StargatePoolUSDC.json +57 -64
- package/deployments/ethereum-sandbox-local/StargatePoolUSDT.json +59 -66
- package/deployments/ethereum-sandbox-local/StargateStaking.json +24 -24
- package/deployments/ethereum-sandbox-local/TokenMessaging.json +36 -36
- package/deployments/ethereum-sandbox-local/Treasurer.json +21 -21
- package/deployments/ethereum-sandbox-local/USDCImpl.json +24 -24
- package/deployments/ethereum-sandbox-local/USDCProxy.json +3 -3
- package/deployments/ethereum-sandbox-local/USDCSignatureLib.json +3 -3
- package/deployments/ethereum-sandbox-local/USDT.json +64 -310
- package/deployments/polygon-sandbox-local/CreditMessaging.json +21 -21
- package/deployments/polygon-sandbox-local/FeeLibV1ETH.json +27 -27
- package/deployments/polygon-sandbox-local/FeeLibV1USDC.json +27 -27
- package/deployments/polygon-sandbox-local/FeeLibV1USDT.json +27 -27
- package/deployments/polygon-sandbox-local/OFTTokenETH.json +6 -6
- package/deployments/polygon-sandbox-local/RewardLib.json +7 -7
- package/deployments/polygon-sandbox-local/RewardRegistryLib.json +7 -7
- package/deployments/polygon-sandbox-local/RewardTokenMock.json +12 -12
- package/deployments/polygon-sandbox-local/StargateMultiRewarder.json +47 -47
- package/deployments/polygon-sandbox-local/StargateOFTETH.json +52 -59
- package/deployments/polygon-sandbox-local/StargateOFTUSDC.json +52 -59
- package/deployments/polygon-sandbox-local/StargatePoolUSDT.json +59 -66
- package/deployments/polygon-sandbox-local/StargateStaking.json +24 -24
- package/deployments/polygon-sandbox-local/TokenMessaging.json +36 -36
- package/deployments/polygon-sandbox-local/Treasurer.json +21 -21
- package/deployments/polygon-sandbox-local/USDCImpl.json +24 -24
- package/deployments/polygon-sandbox-local/USDCProxy.json +3 -3
- package/deployments/polygon-sandbox-local/USDCSignatureLib.json +3 -3
- package/deployments/polygon-sandbox-local/USDT.json +64 -310
- package/package.json +2 -2
|
@@ -819,33 +819,71 @@
|
|
|
819
819
|
},
|
|
820
820
|
{
|
|
821
821
|
"internalType": "uint8",
|
|
822
|
-
"name": "
|
|
822
|
+
"name": "_seatNumber",
|
|
823
823
|
"type": "uint8"
|
|
824
824
|
},
|
|
825
|
+
{
|
|
826
|
+
"internalType": "address",
|
|
827
|
+
"name": "_receiver",
|
|
828
|
+
"type": "address"
|
|
829
|
+
},
|
|
830
|
+
{
|
|
831
|
+
"internalType": "uint64",
|
|
832
|
+
"name": "_amountSD",
|
|
833
|
+
"type": "uint64"
|
|
834
|
+
}
|
|
835
|
+
],
|
|
836
|
+
"name": "receiveTokenBus",
|
|
837
|
+
"outputs": [],
|
|
838
|
+
"stateMutability": "nonpayable",
|
|
839
|
+
"type": "function"
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"inputs": [
|
|
825
843
|
{
|
|
826
844
|
"components": [
|
|
827
845
|
{
|
|
828
|
-
"internalType": "
|
|
829
|
-
"name": "
|
|
830
|
-
"type": "
|
|
846
|
+
"internalType": "uint32",
|
|
847
|
+
"name": "srcEid",
|
|
848
|
+
"type": "uint32"
|
|
831
849
|
},
|
|
832
850
|
{
|
|
833
|
-
"internalType": "
|
|
834
|
-
"name": "
|
|
835
|
-
"type": "
|
|
851
|
+
"internalType": "bytes32",
|
|
852
|
+
"name": "sender",
|
|
853
|
+
"type": "bytes32"
|
|
836
854
|
},
|
|
837
855
|
{
|
|
838
|
-
"internalType": "
|
|
839
|
-
"name": "
|
|
840
|
-
"type": "
|
|
856
|
+
"internalType": "uint64",
|
|
857
|
+
"name": "nonce",
|
|
858
|
+
"type": "uint64"
|
|
841
859
|
}
|
|
842
860
|
],
|
|
843
|
-
"internalType": "struct
|
|
844
|
-
"name": "
|
|
861
|
+
"internalType": "struct Origin",
|
|
862
|
+
"name": "_origin",
|
|
845
863
|
"type": "tuple"
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
"internalType": "bytes32",
|
|
867
|
+
"name": "_guid",
|
|
868
|
+
"type": "bytes32"
|
|
869
|
+
},
|
|
870
|
+
{
|
|
871
|
+
"internalType": "address",
|
|
872
|
+
"name": "_receiver",
|
|
873
|
+
"type": "address"
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
"internalType": "uint64",
|
|
877
|
+
"name": "_amountSD",
|
|
878
|
+
"type": "uint64"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"internalType": "bytes",
|
|
882
|
+
"name": "_composeMsg",
|
|
883
|
+
"type": "bytes"
|
|
846
884
|
}
|
|
847
885
|
],
|
|
848
|
-
"name": "
|
|
886
|
+
"name": "receiveTokenTaxi",
|
|
849
887
|
"outputs": [],
|
|
850
888
|
"stateMutability": "nonpayable",
|
|
851
889
|
"type": "function"
|
|
@@ -845,33 +845,71 @@
|
|
|
845
845
|
},
|
|
846
846
|
{
|
|
847
847
|
"internalType": "uint8",
|
|
848
|
-
"name": "
|
|
848
|
+
"name": "_seatNumber",
|
|
849
849
|
"type": "uint8"
|
|
850
850
|
},
|
|
851
|
+
{
|
|
852
|
+
"internalType": "address",
|
|
853
|
+
"name": "_receiver",
|
|
854
|
+
"type": "address"
|
|
855
|
+
},
|
|
856
|
+
{
|
|
857
|
+
"internalType": "uint64",
|
|
858
|
+
"name": "_amountSD",
|
|
859
|
+
"type": "uint64"
|
|
860
|
+
}
|
|
861
|
+
],
|
|
862
|
+
"name": "receiveTokenBus",
|
|
863
|
+
"outputs": [],
|
|
864
|
+
"stateMutability": "nonpayable",
|
|
865
|
+
"type": "function"
|
|
866
|
+
},
|
|
867
|
+
{
|
|
868
|
+
"inputs": [
|
|
851
869
|
{
|
|
852
870
|
"components": [
|
|
853
871
|
{
|
|
854
|
-
"internalType": "
|
|
855
|
-
"name": "
|
|
856
|
-
"type": "
|
|
872
|
+
"internalType": "uint32",
|
|
873
|
+
"name": "srcEid",
|
|
874
|
+
"type": "uint32"
|
|
857
875
|
},
|
|
858
876
|
{
|
|
859
|
-
"internalType": "
|
|
860
|
-
"name": "
|
|
861
|
-
"type": "
|
|
877
|
+
"internalType": "bytes32",
|
|
878
|
+
"name": "sender",
|
|
879
|
+
"type": "bytes32"
|
|
862
880
|
},
|
|
863
881
|
{
|
|
864
|
-
"internalType": "
|
|
865
|
-
"name": "
|
|
866
|
-
"type": "
|
|
882
|
+
"internalType": "uint64",
|
|
883
|
+
"name": "nonce",
|
|
884
|
+
"type": "uint64"
|
|
867
885
|
}
|
|
868
886
|
],
|
|
869
|
-
"internalType": "struct
|
|
870
|
-
"name": "
|
|
887
|
+
"internalType": "struct Origin",
|
|
888
|
+
"name": "_origin",
|
|
871
889
|
"type": "tuple"
|
|
890
|
+
},
|
|
891
|
+
{
|
|
892
|
+
"internalType": "bytes32",
|
|
893
|
+
"name": "_guid",
|
|
894
|
+
"type": "bytes32"
|
|
895
|
+
},
|
|
896
|
+
{
|
|
897
|
+
"internalType": "address",
|
|
898
|
+
"name": "_receiver",
|
|
899
|
+
"type": "address"
|
|
900
|
+
},
|
|
901
|
+
{
|
|
902
|
+
"internalType": "uint64",
|
|
903
|
+
"name": "_amountSD",
|
|
904
|
+
"type": "uint64"
|
|
905
|
+
},
|
|
906
|
+
{
|
|
907
|
+
"internalType": "bytes",
|
|
908
|
+
"name": "_composeMsg",
|
|
909
|
+
"type": "bytes"
|
|
872
910
|
}
|
|
873
911
|
],
|
|
874
|
-
"name": "
|
|
912
|
+
"name": "receiveTokenTaxi",
|
|
875
913
|
"outputs": [],
|
|
876
914
|
"stateMutability": "nonpayable",
|
|
877
915
|
"type": "function"
|
|
@@ -1472,8 +1510,8 @@
|
|
|
1472
1510
|
"type": "function"
|
|
1473
1511
|
}
|
|
1474
1512
|
],
|
|
1475
|
-
"bytecode": "0x6101206040526001805460ff60a01b1916600160a01b1790553480156200002557600080fd5b50604051620049f6380380620049f6833981016040819052620000489162000228565b83846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000088573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ae919062000285565b848484620000bc33620001a9565b6001600160a01b03851660805260ff8084169085161015620000f157604051632e4b554360e01b815260040160405180910390fd5b620000fd8385620002c0565b6200010a90600a620003df565b60c05260ff831660a0526001600160a01b03821660e08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001859190620003f0565b63ffffffff16610100526200019a81620001a9565b50505050505050505062000418565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021157600080fd5b919050565b805160ff811681146200021157600080fd5b600080600080608085870312156200023f57600080fd5b6200024a85620001f9565b93506200025a6020860162000216565b92506200026a60408601620001f9565b91506200027a60608601620001f9565b905092959194509250565b6000602082840312156200029857600080fd5b620002a38262000216565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620002dc57620002dc620002aa565b92915050565b600181815b8085111562000323578160001904821115620003075762000307620002aa565b808516156200031557918102915b93841c9390800290620002e7565b509250929050565b6000826200033c57506001620002dc565b816200034b57506000620002dc565b81600181146200036457600281146200036f576200038f565b6001915050620002dc565b60ff841115620003835762000383620002aa565b50506001821b620002dc565b5060208310610133831016604e8410600b8410161715620003b4575081810a620002dc565b620003c08383620002e2565b8060001904821115620003d757620003d7620002aa565b029392505050565b6000620002a360ff8416836200032b565b6000602082840312156200040357600080fd5b815163ffffffff81168114620002a357600080fd5b60805160a05160c05160e0516101005161451b620004db6000396000818161055001526112c50152600081816104ef0152818161153101528181611c6c015261329a015260008181610a7801528181610ae301528181610cdb01528181610e3501528181610ed201528181610efc01528181611f690152818161209e015281816120c8015281816123260152818161251601526128020152600061059901526000818161079101528181611a8c015281816124ee015261276f015261451b6000f3fe6080604052600436106101d85760003560e01c80637260753711610102578063bedb86fb11610095578063cc32d17611610064578063cc32d176146106ed578063d621ad3f14610727578063f2fde38b1461075f578063fc0c546a1461077f57600080fd5b8063bedb86fb1461066a578063c7c7f5b31461068a578063c859c483146106ab578063cbef2aa9146106cb57600080fd5b80639f68b964116100d15780639f68b964146105f9578063a7229fd914610615578063a88835d714610635578063b0d7ca5d1461065557600080fd5b8063726075371461053e578063857749b0146105875780638da5cb5b146105bb5780639561b12f146105d957600080fd5b806338da6b8e1161017a578063461bb0b911610149578063461bb0b91461049a5780635114bf09146104ba5780635e280f11146104dd578063715018a61461052957600080fd5b806338da6b8e146103dd5780633b6f743b1461042d5780633faa12c51461045a5780634458a7ab1461047a57600080fd5b806316909bca116101b657806316909bca14610283578063200d2ed21461029f5780632bc5114c146102d2578063341a4648146103c857600080fd5b80630141e41b146101dd5780630d35b41514610213578063156a0d0f14610242575b600080fd5b3480156101e957600080fd5b506101fd6101f83660046134bd565b6107b3565b60405161020a919061359a565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046135c5565b610a38565b60405161020a9392919061364a565b34801561024e57600080fd5b50604080517f02e49c2c000000000000000000000000000000000000000000000000000000008152600060208201520161020a565b34801561028f57600080fd5b50600160405161020a9190613701565b3480156102ab57600080fd5b506001546102c090600160a01b900460ff1681565b60405160ff909116815260200161020a565b3480156102de57600080fd5b506103676040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526001546001600160a01b03908116825260045481166020830152600654811692820192909252600554821660608201526002548216608082015260035490911660a082015290565b60405161020a9190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b6103db6103d6366004613742565b610f34565b005b3480156103e957600080fd5b506104146103f836600461375b565b60076020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161020a565b34801561043957600080fd5b5061044d610448366004613784565b61100e565b60405161020a91906137d6565b34801561046657600080fd5b506103db6104753660046137ed565b6112bb565b34801561048657600080fd5b506103db61049536600461383c565b61138f565b3480156104a657600080fd5b506103db6104b53660046138a5565b6116be565b3480156104c657600080fd5b506104cf61186c565b60405190815260200161020a565b3480156104e957600080fd5b506105117f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b34801561053557600080fd5b506103db61187b565b34801561054a57600080fd5b506105727f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161020a565b34801561059357600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c757600080fd5b506000546001600160a01b0316610511565b3480156105e557600080fd5b506103db6105f43660046138b7565b61188f565b34801561060557600080fd5b506040516001815260200161020a565b34801561062157600080fd5b506104cf610630366004613941565b6119f4565b34801561064157600080fd5b506103db61065036600461397d565b611b1d565b34801561066157600080fd5b506103db611d45565b34801561067657600080fd5b506103db610685366004613a35565b611def565b61069d610698366004613a52565b611eaa565b60405161020a929190613af0565b3480156106b757600080fd5b506103db6106c6366004613b2a565b611ede565b6106de6106d9366004613a52565b611fd9565b60405161020a93929190613b56565b3480156106f957600080fd5b50600154610414907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561073357600080fd5b506104cf610742366004613baf565b600860209081526000928352604080842090915290825290205481565b34801561076b57600080fd5b506103db61077a366004613bdb565b6121be565b34801561078b57600080fd5b506105117f000000000000000000000000000000000000000000000000000000000000000081565b60018054606091600160a01b90910460ff161461082b57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b031633811461087b57604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff81111561089657610896613bf6565b6040519080825280602002602001820160405280156108db57816020015b60408051808201909152600080825260208201528152602001906001900390816108b45790505b5090506000805b858110156109dd57368787838181106108fd576108fd613c25565b9050606002019050600061096782602001602081019061091d9190613c54565b61092d6060850160408601613c54565b6007600061093e602088018861375b565b63ffffffff1663ffffffff16815260200190815260200160002061226a9092919063ffffffff16565b905067ffffffffffffffff8116156109d3576040805180820190915280610991602085018561375b565b63ffffffff16815267ffffffffffffffff831660209091015285856109b581613ca0565b9650815181106109c7576109c7613c25565b60200260200101819052505b50506001016108e2565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610a12929190613cd8565b60405180910390a1509150506001805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610a6b604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610b0660076000886000016020810190610ab6919061375b565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610b338460200151866040013511610b2957856040013561231f565b846020015161231f565b90506000610b63610b47602088018861375b565b83610b5e610b5860c08b018b613cf7565b15919050565b61235f565b600154604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190613d63565b90508267ffffffffffffffff168167ffffffffffffffff1614610eb75760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610c6c5790505094508267ffffffffffffffff168167ffffffffffffffff161015610d8e576040518060400160405280610d03610cfe8487610ccf9190613d80565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6123e9565b610d2d907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613da1565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610d7e57610d7e613c25565b6020026020010181905250610eb7565b8267ffffffffffffffff168167ffffffffffffffff161115610eb7576000610db68483613d80565b9091039050600067ffffffffffffffff84811690831603610e17576040805160008082526020820190925290610e0f565b604080518082019091526000815260606020820152815260200190600190039081610de75790505b509550610eb5565b6040518060400160405280610e58610cfe8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610ea957610ea9613c25565b60200260200101819052505b505b6040518060400160405280610ef58567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b6006546001600160a01b0316338114610f6057604051635bd25eff60e01b815260040160405180910390fd5b610f698261249f565b6000610f7533846124d7565b905080600160158282829054906101000a900467ffffffffffffffff16610f9c9190613ded565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd081604051611001919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b60408051808201909152600080825260208201526000611031846040013561231f565b90508067ffffffffffffffff16600003611077576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611089610b5860c0870187613cf7565b905080156111f7576005546040805160c081019091523381526001600160a01b0390911690633292cf02906020808201906110c6908a018a61375b565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016110f860a08a018a613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161113f60808a018a613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526111b091908890600401613e7d565b6040805180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190613f2b565b92506112b3565b6000806112076080880188613cf7565b60055492109250506001600160a01b03166375d2208c61122a602089018961375b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190613f2b565b9350505b505092915050565b6112c36125bd565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff1603611328576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff808316600090815260076020526040902061134a91839061263116565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b60018054600160a01b900460ff16146113d157600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b031633811461142157604051635bd25eff60e01b815260040160405180910390fd5b6000611436610ccf6040850160208601613c54565b905060006114476020850185613bdb565b90506000806114596040870187613cf7565b9050119050606081156114d1576114ce61147960608b0160408c01613c54565b61148660208c018c61375b565b8661149460408b018b613cf7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506126fb92505050565b90505b60006114dd848661272d565b905080156115fc576114fb6114f86040890160208a01613c54565b50565b82156115a0576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061156d9087908d906000908890600401613f47565b600060405180830381600087803b15801561158757600080fd5b505af115801561159b573d6000803e3d6000fd5b505050505b6001600160a01b038416897fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6115d960208e018e61375b565b6040805163ffffffff9092168252602082018a90520160405180910390a361169f565b61160960208b018b61375b565b84868460405160200161161f9493929190613f79565b60408051601f19818403018152918152815160209283012060008c81526008845282812060ff8d168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55908a908a90611681908e018e61375b565b87898760405161169696959493929190613ff7565b60405180910390a15b50506001805460ff60a01b1916600160a01b1790555050505050505050565b6116c66125bd565b6116d36020820182613bdb565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556117106040820160208301613bdb565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561174d6060820160408301613bdb565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561178a6080820160608301613bdb565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556117c760a0820160808301613bdb565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561180460c0820160a08301613bdb565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611861908390614046565b60405180910390a150565b60006118766127d4565b905090565b6118836125bd565b61188d6000612843565b565b60018054600160a01b900460ff16146118d157600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b031633811461192157604051635bd25eff60e01b815260040160405180910390fd5b60005b8281101561199f573684848381811061193f5761193f613c25565b905060400201905061199681602001602081019061195d9190613c54565b6007600061196e602086018661375b565b63ffffffff1663ffffffff1681526020019081526020016000206128a090919063ffffffff16565b50600101611924565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c8484846040516119d3939291906140c5565b60405180910390a150506001805460ff60a01b1916600160a01b1790555050565b60018054600091600160a01b90910460ff1614611a3a57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b0316338114611a8a57604051635bd25eff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611af5576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b02858585600061293a565b50506001805460ff60a01b1916600160a01b17905592915050565b60018054600160a01b900460ff1614611b5f57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055604051611b9c9086908690869086908690602001614138565b60408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b16825290935291205414611c03576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260086020908152604080832060ff8a168452909152812055611c2a8484612982565b611c366114f88461231f565b8015611cdd576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611caa9087908b90600090889088906004016141aa565b600060405180830381600087803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506001805460ff60a01b1916600160a01b1790555050505050565b6004546001600160a01b0316338114611d7157604051635bd25eff60e01b815260040160405180910390fd5b6000611d7b6127d4565b9050611d89338260006129c7565b611dbf576040517f3c2f177d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e18390602001611383565b6004546001600160a01b0316338114611e1b57604051635bd25eff60e01b815260040160405180910390fd5b600154600119600160a01b90910460ff1601611e4a576040516376a9ad7360e01b815260040160405180910390fd5b81611e56576001611e59565b60035b6001805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb90602001611383565b611eb261345c565b6040805180820190915260008082526020820152611ed1858585611fd9565b5090969095509350505050565b6006546001600160a01b0316338114611f0a57604051635bd25eff60e01b815260040160405180910390fd5b81600160158282829054906101000a900467ffffffffffffffff16611f2f9190613d80565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550611f9183611f8c8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612982565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e6539101611001565b611fe161345c565b604080518082019091526000808252602082015260408051808201909152600081526060602082015260018054600160a01b900460ff161461204c57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061207d89612a80565b92509250925060405180604001604052806120c18467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061211261210b368b90038b018b6141fb565b8751612b1e565b9050831561212d576121268a82848b612b73565b965061213f565b6121398a82848b612d02565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a61217160208e018e61375b565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506001805460ff60a01b1916600160a01b1790555092969195509350915050565b6121c66125bd565b6001600160a01b038116612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6114f881612843565b825460009067ffffffffffffffff1667fffffffffffffffe1981016122bb576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156123175782810367ffffffffffffffff808216908616116122f457846122f6565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006123597f000000000000000000000000000000000000000000000000000000000000000083816123535761235361422d565b04612efe565b92915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260079092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e743235360000000000000000000000000000000000000000000000006064820152608401612258565b5090565b34156114f8576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006124e28261231f565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561259f57600080fd5b505af11580156125b3573d6000803e3d6000fd5b5050505092915050565b6000546001600160a01b0316331461188d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612258565b815467ffffffffffffffff1681156126a35767ffffffffffffffff811615612685576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff818116146126e6576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b606084848484604051602001612714949392919061425c565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156127b557600080fd5b505af19250505080156127c6575060015b156123595750600192915050565b600154600090479067ffffffffffffffff7501000000000000000000000000000000000000000000909104167f000000000000000000000000000000000000000000000000000000000000000002818110156128395761283481836142da565b61283c565b60005b9250505090565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe1981016128c157505050565b6128cb8282613ded565b905067fffffffffffffffe1967ffffffffffffffff821601612919576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b61294684848484612f98565b61297c576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600061298e838361272d565b9050806126f6576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081612a22576040516001600160a01b038516908490600081818185875af1925050503d8060008114612a17576040519150601f19603f3d011682016040523d82523d6000602084013e612a1c565b606091505b50612a77565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114612a70576040519150601f19603f3d011682016040523d82523d6000602084013e612a75565b606091505b505b50949350505050565b60008080612a94610b5860c0860186613cf7565b9250612aa43385604001356124d7565b91506000612abf612ab8602087018761375b565b848661235f565b9050612ad781612ad2876060013561231f565b612fcd565b9150612b168260076000612aee60208a018a61375b565b63ffffffff1663ffffffff1681526020019081526020016000206131c290919063ffffffff16565b509193909250565b604080518082019091526000808252602082015282513414612b6c576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612b7b61345c565b602084015115612b9257612b928460200151613250565b60055484516040805160c081019091523381526001600160a01b039092169163ff6fb3009190602080820190612bca908b018b61375b565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001612bfc60a08b018b613cf7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612c4360808b018b613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152612cb69190899088906004016142ed565b60806040518083038185885af1158015612cd4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cf9919061439d565b95945050505050565b612d0a61345c565b604080518082019091526000815260606020820152602085015115612d5b576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546040805160a081019091523381526001600160a01b03909116906385afd45390602080820190612d90908b018b61375b565b63ffffffff16815260208a8101359082015267ffffffffffffffff881660408201526060016000612dc460808c018c613cf7565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af1158015612e65573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e8d91908101906143b9565b604082015151875192945090925090808214612ef35781811115612ec157818103612eba868260006129c7565b5050612ef3565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff82111561249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f34206269747300000000000000000000000000000000000000000000000000006064820152608401612258565b60006001600160a01b038516612fba57612fb38484846129c7565b9050612fc5565b612cf98585856132c3565b949350505050565b600154604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af1158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a59190613d63565b604084015190915067ffffffffffffffff808216908316101561312c576130cc8282613d80565b600180546015906131019084907501000000000000000000000000000000000000000000900467ffffffffffffffff16613ded565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061315a565b8067ffffffffffffffff168267ffffffffffffffff16111561315a5760006131548284613d80565b90920391505b8267ffffffffffffffff168267ffffffffffffffff161080613184575067ffffffffffffffff8216155b156131bb576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe1981016131e357505050565b8167ffffffffffffffff168167ffffffffffffffff161015613231576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6003546001600160a01b031680613293576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132bf81337f00000000000000000000000000000000000000000000000000000000000000008561336f565b5050565b6040516001600160a01b038316602482015260448101829052600090612fc59085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261337b565b61294684848484613408565b6000806000846001600160a01b03168460405161339891906144ac565b6000604051808303816000865af19150503d80600081146133d5576040519150601f19603f3d011682016040523d82523d6000602084013e6133da565b606091505b5091509150816133eb576000612cf9565b80511580612cf9575080806020019051810190612cf991906144c8565b6040516001600160a01b0380851660248301528316604482015260648101829052600090612cf99086907f23b872dd000000000000000000000000000000000000000000000000000000009060840161330b565b604051806060016040528060008019168152602001600067ffffffffffffffff16815260200161349f604051806040016040528060008152602001600081525090565b905290565b803563ffffffff811681146134b857600080fd5b919050565b6000806000604084860312156134d257600080fd5b6134db846134a4565b9250602084013567ffffffffffffffff808211156134f857600080fd5b818601915086601f83011261350c57600080fd5b81358181111561351b57600080fd5b87602060608302850101111561353057600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b8381101561358f578151805163ffffffff16885283015167ffffffffffffffff168388015260409096019590820190600101613558565b509495945050505050565b6020815260006123e26020830184613543565b600060e082840312156135bf57600080fd5b50919050565b6000602082840312156135d757600080fd5b813567ffffffffffffffff8111156135ee57600080fd5b612fc5848285016135ad565b60005b838110156136155781810151838201526020016135fd565b50506000910152565b600081518084526136368160208601602086016135fa565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b838110156136e3578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400185528151805188528301518388018790526136d08789018261361e565b9750509382019390820190600101613686565b50508751606088015250505060208501516080850152509050612fc5565b602081016002831061373c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006020828403121561375457600080fd5b5035919050565b60006020828403121561376d57600080fd5b6123e2826134a4565b80151581146114f857600080fd5b6000806040838503121561379757600080fd5b823567ffffffffffffffff8111156137ae57600080fd5b6137ba858286016135ad565b92505060208301356137cb81613776565b809150509250929050565b815181526020808301519082015260408101612359565b6000806040838503121561380057600080fd5b613809836134a4565b915060208301356137cb81613776565b6000606082840312156135bf57600080fd5b803560ff811681146134b857600080fd5b60008060008060c0858703121561385257600080fd5b61385c8686613819565b9350606085013592506138716080860161382b565b915060a085013567ffffffffffffffff81111561388d57600080fd5b61389987828801613819565b91505092959194509250565b600060c082840312156135bf57600080fd5b6000806000604084860312156138cc57600080fd5b6138d5846134a4565b9250602084013567ffffffffffffffff808211156138f257600080fd5b818601915086601f83011261390657600080fd5b81358181111561391557600080fd5b8760208260061b850101111561353057600080fd5b80356001600160a01b03811681146134b857600080fd5b60008060006060848603121561395657600080fd5b61395f8461392a565b925061396d6020850161392a565b9150604084013590509250925092565b600080600080600080600060c0888a03121561399857600080fd5b873596506139a86020890161382b565b95506139b6604089016134a4565b94506139c46060890161392a565b93506080880135925060a088013567ffffffffffffffff808211156139e857600080fd5b818a0191508a601f8301126139fc57600080fd5b813581811115613a0b57600080fd5b8b6020828501011115613a1d57600080fd5b60208301945080935050505092959891949750929550565b600060208284031215613a4757600080fd5b81356123e281613776565b60008060008385036080811215613a6857600080fd5b843567ffffffffffffffff811115613a7f57600080fd5b613a8b878288016135ad565b9450506040601f1982011215613aa057600080fd5b50602084019150613ab36060850161392a565b90509250925092565b8051825267ffffffffffffffff602082015116602083015260408101516126f6604084018280518252602090810151910152565b60c08101613afe8285613abc565b82516080830152602083015160a08301526123e2565b67ffffffffffffffff811681146114f857600080fd5b60008060408385031215613b3d57600080fd5b613b468361392a565b915060208301356137cb81613b14565b613b608185613abc565b82516080820152602083015160a082015260e060c082015266ffffffffffffff82511660e0820152600060208301516040610100840152613ba561012084018261361e565b9695505050505050565b60008060408385031215613bc257600080fd5b82359150613bd26020840161382b565b90509250929050565b600060208284031215613bed57600080fd5b6123e28261392a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215613c6657600080fd5b81356123e281613b14565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cd157613cd1613c71565b5060010190565b63ffffffff83168152604060208201526000612fc56040830184613543565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613d2c57600080fd5b83018035915067ffffffffffffffff821115613d4757600080fd5b602001915036819003821315613d5c57600080fd5b9250929050565b600060208284031215613d7557600080fd5b81516123e281613b14565b67ffffffffffffffff8281168282160390808211156131bb576131bb613c71565b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615613dd957613dd9613c71565b818105831482151761235957612359613c71565b67ffffffffffffffff8181168382160190808211156131bb576131bb613c71565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c06080850152613e6460c085018261361e565b905060a083015184820360a0860152612cf9828261361e565b604081526000613e906040830185613e0e565b905082151560208301529392505050565b6040805190810167ffffffffffffffff81118282101715613ec457613ec4613bf6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613ef357613ef3613bf6565b604052919050565b600060408284031215613f0d57600080fd5b613f15613ea1565b9050815181526020820151602082015292915050565b600060408284031215613f3d57600080fd5b6123e28383613efb565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613ba5608083018461361e565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251613fe78160388501602087016135fa565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a0820152600061403a60c083018461361e565b98975050505050505050565b60c081016001600160a01b038061405c8561392a565b1683528061406c6020860161392a565b1660208401528061407f6040860161392a565b166040840152806140926060860161392a565b166060840152806140a56080860161392a565b166080840152806140b860a0860161392a565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561412a57836140fc866134a4565b1682528285013561410c81613b14565b67ffffffffffffffff168284015293850193908501906001016140ea565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561420d57600080fd5b614215613ea1565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516142ca81602c8501602087016135fa565b91909101602c0195945050505050565b8181038181111561235957612359613c71565b6080815260006143006080830186613e0e565b9050614319602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561434257600080fd5b6040516060810181811067ffffffffffffffff8211171561436557614365613bf6565b806040525080915082518152602083015161437f81613b14565b60208201526143918460408501613efb565b60408201525092915050565b6000608082840312156143af57600080fd5b6123e28383614330565b60008060a083850312156143cc57600080fd5b6143d68484614330565b9150608083015167ffffffffffffffff808211156143f357600080fd5b908401906040828703121561440757600080fd5b61440f613ea1565b825166ffffffffffffff8116811461442657600080fd5b81526020838101518381111561443b57600080fd5b80850194505087601f85011261445057600080fd5b83518381111561446257614462613bf6565b61447482601f19601f84011601613eca565b9350808452888282870101111561448a57600080fd5b614499818386018488016135fa565b5081019190915292959294509192505050565b600082516144be8184602087016135fa565b9190910192915050565b6000602082840312156144da57600080fd5b81516123e28161377656fea2646970667358221220de89528b0ac3ac42e3ce53a32273eb6420eb10a2a58d9d1b60c64d8a36542b1664736f6c63430008160033",
|
|
1476
|
-
"deployedBytecode": "0x6080604052600436106101d85760003560e01c80637260753711610102578063bedb86fb11610095578063cc32d17611610064578063cc32d176146106ed578063d621ad3f14610727578063f2fde38b1461075f578063fc0c546a1461077f57600080fd5b8063bedb86fb1461066a578063c7c7f5b31461068a578063c859c483146106ab578063cbef2aa9146106cb57600080fd5b80639f68b964116100d15780639f68b964146105f9578063a7229fd914610615578063a88835d714610635578063b0d7ca5d1461065557600080fd5b8063726075371461053e578063857749b0146105875780638da5cb5b146105bb5780639561b12f146105d957600080fd5b806338da6b8e1161017a578063461bb0b911610149578063461bb0b91461049a5780635114bf09146104ba5780635e280f11146104dd578063715018a61461052957600080fd5b806338da6b8e146103dd5780633b6f743b1461042d5780633faa12c51461045a5780634458a7ab1461047a57600080fd5b806316909bca116101b657806316909bca14610283578063200d2ed21461029f5780632bc5114c146102d2578063341a4648146103c857600080fd5b80630141e41b146101dd5780630d35b41514610213578063156a0d0f14610242575b600080fd5b3480156101e957600080fd5b506101fd6101f83660046134bd565b6107b3565b60405161020a919061359a565b60405180910390f35b34801561021f57600080fd5b5061023361022e3660046135c5565b610a38565b60405161020a9392919061364a565b34801561024e57600080fd5b50604080517f02e49c2c000000000000000000000000000000000000000000000000000000008152600060208201520161020a565b34801561028f57600080fd5b50600160405161020a9190613701565b3480156102ab57600080fd5b506001546102c090600160a01b900460ff1681565b60405160ff909116815260200161020a565b3480156102de57600080fd5b506103676040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526001546001600160a01b03908116825260045481166020830152600654811692820192909252600554821660608201526002548216608082015260035490911660a082015290565b60405161020a9190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b6103db6103d6366004613742565b610f34565b005b3480156103e957600080fd5b506104146103f836600461375b565b60076020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff909116815260200161020a565b34801561043957600080fd5b5061044d610448366004613784565b61100e565b60405161020a91906137d6565b34801561046657600080fd5b506103db6104753660046137ed565b6112bb565b34801561048657600080fd5b506103db61049536600461383c565b61138f565b3480156104a657600080fd5b506103db6104b53660046138a5565b6116be565b3480156104c657600080fd5b506104cf61186c565b60405190815260200161020a565b3480156104e957600080fd5b506105117f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161020a565b34801561053557600080fd5b506103db61187b565b34801561054a57600080fd5b506105727f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161020a565b34801561059357600080fd5b506102c07f000000000000000000000000000000000000000000000000000000000000000081565b3480156105c757600080fd5b506000546001600160a01b0316610511565b3480156105e557600080fd5b506103db6105f43660046138b7565b61188f565b34801561060557600080fd5b506040516001815260200161020a565b34801561062157600080fd5b506104cf610630366004613941565b6119f4565b34801561064157600080fd5b506103db61065036600461397d565b611b1d565b34801561066157600080fd5b506103db611d45565b34801561067657600080fd5b506103db610685366004613a35565b611def565b61069d610698366004613a52565b611eaa565b60405161020a929190613af0565b3480156106b757600080fd5b506103db6106c6366004613b2a565b611ede565b6106de6106d9366004613a52565b611fd9565b60405161020a93929190613b56565b3480156106f957600080fd5b50600154610414907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561073357600080fd5b506104cf610742366004613baf565b600860209081526000928352604080842090915290825290205481565b34801561076b57600080fd5b506103db61077a366004613bdb565b6121be565b34801561078b57600080fd5b506105117f000000000000000000000000000000000000000000000000000000000000000081565b60018054606091600160a01b90910460ff161461082b57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b031633811461087b57604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff81111561089657610896613bf6565b6040519080825280602002602001820160405280156108db57816020015b60408051808201909152600080825260208201528152602001906001900390816108b45790505b5090506000805b858110156109dd57368787838181106108fd576108fd613c25565b9050606002019050600061096782602001602081019061091d9190613c54565b61092d6060850160408601613c54565b6007600061093e602088018861375b565b63ffffffff1663ffffffff16815260200190815260200160002061226a9092919063ffffffff16565b905067ffffffffffffffff8116156109d3576040805180820190915280610991602085018561375b565b63ffffffff16815267ffffffffffffffff831660209091015285856109b581613ca0565b9650815181106109c7576109c7613c25565b60200260200101819052505b50506001016108e2565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610a12929190613cd8565b60405180910390a1509150506001805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610a6b604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610b0660076000886000016020810190610ab6919061375b565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610b338460200151866040013511610b2957856040013561231f565b846020015161231f565b90506000610b63610b47602088018861375b565b83610b5e610b5860c08b018b613cf7565b15919050565b61235f565b600154604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610c16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3a9190613d63565b90508267ffffffffffffffff168167ffffffffffffffff1614610eb75760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610c6c5790505094508267ffffffffffffffff168167ffffffffffffffff161015610d8e576040518060400160405280610d03610cfe8487610ccf9190613d80565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b6123e9565b610d2d907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613da1565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610d7e57610d7e613c25565b6020026020010181905250610eb7565b8267ffffffffffffffff168167ffffffffffffffff161115610eb7576000610db68483613d80565b9091039050600067ffffffffffffffff84811690831603610e17576040805160008082526020820190925290610e0f565b604080518082019091526000815260606020820152815260200190600190039081610de75790505b509550610eb5565b6040518060400160405280610e58610cfe8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610ea957610ea9613c25565b60200260200101819052505b505b6040518060400160405280610ef58567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b6006546001600160a01b0316338114610f6057604051635bd25eff60e01b815260040160405180910390fd5b610f698261249f565b6000610f7533846124d7565b905080600160158282829054906101000a900467ffffffffffffffff16610f9c9190613ded565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd081604051611001919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b60408051808201909152600080825260208201526000611031846040013561231f565b90508067ffffffffffffffff16600003611077576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000611089610b5860c0870187613cf7565b905080156111f7576005546040805160c081019091523381526001600160a01b0390911690633292cf02906020808201906110c6908a018a61375b565b63ffffffff1681526020898101359082015267ffffffffffffffff861660408201526060016110f860a08a018a613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161113f60808a018a613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526111b091908890600401613e7d565b6040805180830381865afa1580156111cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f09190613f2b565b92506112b3565b6000806112076080880188613cf7565b60055492109250506001600160a01b03166375d2208c61122a602089018961375b565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa15801561128b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112af9190613f2b565b9350505b505092915050565b6112c36125bd565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff1603611328576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff808316600090815260076020526040902061134a91839061263116565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b60018054600160a01b900460ff16146113d157600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b031633811461142157604051635bd25eff60e01b815260040160405180910390fd5b6000611436610ccf6040850160208601613c54565b905060006114476020850185613bdb565b90506000806114596040870187613cf7565b9050119050606081156114d1576114ce61147960608b0160408c01613c54565b61148660208c018c61375b565b8661149460408b018b613cf7565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506126fb92505050565b90505b60006114dd848661272d565b905080156115fc576114fb6114f86040890160208a01613c54565b50565b82156115a0576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb590129061156d9087908d906000908890600401613f47565b600060405180830381600087803b15801561158757600080fd5b505af115801561159b573d6000803e3d6000fd5b505050505b6001600160a01b038416897fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6115d960208e018e61375b565b6040805163ffffffff9092168252602082018a90520160405180910390a361169f565b61160960208b018b61375b565b84868460405160200161161f9493929190613f79565b60408051601f19818403018152918152815160209283012060008c81526008845282812060ff8d168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55908a908a90611681908e018e61375b565b87898760405161169696959493929190613ff7565b60405180910390a15b50506001805460ff60a01b1916600160a01b1790555050505050505050565b6116c66125bd565b6116d36020820182613bdb565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556117106040820160208301613bdb565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561174d6060820160408301613bdb565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561178a6080820160608301613bdb565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556117c760a0820160808301613bdb565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b039290921691909117905561180460c0820160a08301613bdb565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611861908390614046565b60405180910390a150565b60006118766127d4565b905090565b6118836125bd565b61188d6000612843565b565b60018054600160a01b900460ff16146118d157600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b031633811461192157604051635bd25eff60e01b815260040160405180910390fd5b60005b8281101561199f573684848381811061193f5761193f613c25565b905060400201905061199681602001602081019061195d9190613c54565b6007600061196e602086018661375b565b63ffffffff1663ffffffff1681526020019081526020016000206128a090919063ffffffff16565b50600101611924565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c8484846040516119d3939291906140c5565b60405180910390a150506001805460ff60a01b1916600160a01b1790555050565b60018054600091600160a01b90910460ff1614611a3a57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b0316338114611a8a57604051635bd25eff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611af5576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611b02858585600061293a565b50506001805460ff60a01b1916600160a01b17905592915050565b60018054600160a01b900460ff1614611b5f57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055604051611b9c9086908690869086908690602001614138565b60408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b16825290935291205414611c03576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260086020908152604080832060ff8a168452909152812055611c2a8484612982565b611c366114f88461231f565b8015611cdd576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611caa9087908b90600090889088906004016141aa565b600060405180830381600087803b158015611cc457600080fd5b505af1158015611cd8573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506001805460ff60a01b1916600160a01b1790555050505050565b6004546001600160a01b0316338114611d7157604051635bd25eff60e01b815260040160405180910390fd5b6000611d7b6127d4565b9050611d89338260006129c7565b611dbf576040517f3c2f177d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e18390602001611383565b6004546001600160a01b0316338114611e1b57604051635bd25eff60e01b815260040160405180910390fd5b600154600119600160a01b90910460ff1601611e4a576040516376a9ad7360e01b815260040160405180910390fd5b81611e56576001611e59565b60035b6001805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb90602001611383565b611eb261345c565b6040805180820190915260008082526020820152611ed1858585611fd9565b5090969095509350505050565b6006546001600160a01b0316338114611f0a57604051635bd25eff60e01b815260040160405180910390fd5b81600160158282829054906101000a900467ffffffffffffffff16611f2f9190613d80565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff160217905550611f9183611f8c8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612982565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e6539101611001565b611fe161345c565b604080518082019091526000808252602082015260408051808201909152600081526060602082015260018054600160a01b900460ff161461204c57600154600119600160a01b90910460ff16016107f9576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556000808061207d89612a80565b92509250925060405180604001604052806120c18467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061211261210b368b90038b018b6141fb565b8751612b1e565b9050831561212d576121268a82848b612b73565b965061213f565b6121398a82848b612d02565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a61217160208e018e61375b565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506001805460ff60a01b1916600160a01b1790555092969195509350915050565b6121c66125bd565b6001600160a01b038116612261576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6114f881612843565b825460009067ffffffffffffffff1667fffffffffffffffe1981016122bb576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156123175782810367ffffffffffffffff808216908616116122f457846122f6565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006123597f000000000000000000000000000000000000000000000000000000000000000083816123535761235361422d565b04612efe565b92915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260079092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82111561249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e743235360000000000000000000000000000000000000000000000006064820152608401612258565b5090565b34156114f8576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006124e28261231f565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561259f57600080fd5b505af11580156125b3573d6000803e3d6000fd5b5050505092915050565b6000546001600160a01b0316331461188d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401612258565b815467ffffffffffffffff1681156126a35767ffffffffffffffff811615612685576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff818116146126e6576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b606084848484604051602001612714949392919061425c565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156127b557600080fd5b505af19250505080156127c6575060015b156123595750600192915050565b600154600090479067ffffffffffffffff7501000000000000000000000000000000000000000000909104167f000000000000000000000000000000000000000000000000000000000000000002818110156128395761283481836142da565b61283c565b60005b9250505090565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe1981016128c157505050565b6128cb8282613ded565b905067fffffffffffffffe1967ffffffffffffffff821601612919576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b61294684848484612f98565b61297c576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b600061298e838361272d565b9050806126f6576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081612a22576040516001600160a01b038516908490600081818185875af1925050503d8060008114612a17576040519150601f19603f3d011682016040523d82523d6000602084013e612a1c565b606091505b50612a77565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114612a70576040519150601f19603f3d011682016040523d82523d6000602084013e612a75565b606091505b505b50949350505050565b60008080612a94610b5860c0860186613cf7565b9250612aa43385604001356124d7565b91506000612abf612ab8602087018761375b565b848661235f565b9050612ad781612ad2876060013561231f565b612fcd565b9150612b168260076000612aee60208a018a61375b565b63ffffffff1663ffffffff1681526020019081526020016000206131c290919063ffffffff16565b509193909250565b604080518082019091526000808252602082015282513414612b6c576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612b7b61345c565b602084015115612b9257612b928460200151613250565b60055484516040805160c081019091523381526001600160a01b039092169163ff6fb3009190602080820190612bca908b018b61375b565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001612bfc60a08b018b613cf7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612c4360808b018b613cf7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152612cb69190899088906004016142ed565b60806040518083038185885af1158015612cd4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612cf9919061439d565b95945050505050565b612d0a61345c565b604080518082019091526000815260606020820152602085015115612d5b576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546040805160a081019091523381526001600160a01b03909116906385afd45390602080820190612d90908b018b61375b565b63ffffffff16815260208a8101359082015267ffffffffffffffff881660408201526060016000612dc460808c018c613cf7565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af1158015612e65573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612e8d91908101906143b9565b604082015151875192945090925090808214612ef35781811115612ec157818103612eba868260006129c7565b5050612ef3565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff82111561249b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f34206269747300000000000000000000000000000000000000000000000000006064820152608401612258565b60006001600160a01b038516612fba57612fb38484846129c7565b9050612fc5565b612cf98585856132c3565b949350505050565b600154604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af1158015613081573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130a59190613d63565b604084015190915067ffffffffffffffff808216908316101561312c576130cc8282613d80565b600180546015906131019084907501000000000000000000000000000000000000000000900467ffffffffffffffff16613ded565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff16021790555061315a565b8067ffffffffffffffff168267ffffffffffffffff16111561315a5760006131548284613d80565b90920391505b8267ffffffffffffffff168267ffffffffffffffff161080613184575067ffffffffffffffff8216155b156131bb576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe1981016131e357505050565b8167ffffffffffffffff168167ffffffffffffffff161015613231576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6003546001600160a01b031680613293576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132bf81337f00000000000000000000000000000000000000000000000000000000000000008561336f565b5050565b6040516001600160a01b038316602482015260448101829052600090612fc59085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915261337b565b61294684848484613408565b6000806000846001600160a01b03168460405161339891906144ac565b6000604051808303816000865af19150503d80600081146133d5576040519150601f19603f3d011682016040523d82523d6000602084013e6133da565b606091505b5091509150816133eb576000612cf9565b80511580612cf9575080806020019051810190612cf991906144c8565b6040516001600160a01b0380851660248301528316604482015260648101829052600090612cf99086907f23b872dd000000000000000000000000000000000000000000000000000000009060840161330b565b604051806060016040528060008019168152602001600067ffffffffffffffff16815260200161349f604051806040016040528060008152602001600081525090565b905290565b803563ffffffff811681146134b857600080fd5b919050565b6000806000604084860312156134d257600080fd5b6134db846134a4565b9250602084013567ffffffffffffffff808211156134f857600080fd5b818601915086601f83011261350c57600080fd5b81358181111561351b57600080fd5b87602060608302850101111561353057600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b8381101561358f578151805163ffffffff16885283015167ffffffffffffffff168388015260409096019590820190600101613558565b509495945050505050565b6020815260006123e26020830184613543565b600060e082840312156135bf57600080fd5b50919050565b6000602082840312156135d757600080fd5b813567ffffffffffffffff8111156135ee57600080fd5b612fc5848285016135ad565b60005b838110156136155781810151838201526020016135fd565b50506000910152565b600081518084526136368160208601602086016135fa565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b838110156136e3578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff400185528151805188528301518388018790526136d08789018261361e565b9750509382019390820190600101613686565b50508751606088015250505060208501516080850152509050612fc5565b602081016002831061373c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006020828403121561375457600080fd5b5035919050565b60006020828403121561376d57600080fd5b6123e2826134a4565b80151581146114f857600080fd5b6000806040838503121561379757600080fd5b823567ffffffffffffffff8111156137ae57600080fd5b6137ba858286016135ad565b92505060208301356137cb81613776565b809150509250929050565b815181526020808301519082015260408101612359565b6000806040838503121561380057600080fd5b613809836134a4565b915060208301356137cb81613776565b6000606082840312156135bf57600080fd5b803560ff811681146134b857600080fd5b60008060008060c0858703121561385257600080fd5b61385c8686613819565b9350606085013592506138716080860161382b565b915060a085013567ffffffffffffffff81111561388d57600080fd5b61389987828801613819565b91505092959194509250565b600060c082840312156135bf57600080fd5b6000806000604084860312156138cc57600080fd5b6138d5846134a4565b9250602084013567ffffffffffffffff808211156138f257600080fd5b818601915086601f83011261390657600080fd5b81358181111561391557600080fd5b8760208260061b850101111561353057600080fd5b80356001600160a01b03811681146134b857600080fd5b60008060006060848603121561395657600080fd5b61395f8461392a565b925061396d6020850161392a565b9150604084013590509250925092565b600080600080600080600060c0888a03121561399857600080fd5b873596506139a86020890161382b565b95506139b6604089016134a4565b94506139c46060890161392a565b93506080880135925060a088013567ffffffffffffffff808211156139e857600080fd5b818a0191508a601f8301126139fc57600080fd5b813581811115613a0b57600080fd5b8b6020828501011115613a1d57600080fd5b60208301945080935050505092959891949750929550565b600060208284031215613a4757600080fd5b81356123e281613776565b60008060008385036080811215613a6857600080fd5b843567ffffffffffffffff811115613a7f57600080fd5b613a8b878288016135ad565b9450506040601f1982011215613aa057600080fd5b50602084019150613ab36060850161392a565b90509250925092565b8051825267ffffffffffffffff602082015116602083015260408101516126f6604084018280518252602090810151910152565b60c08101613afe8285613abc565b82516080830152602083015160a08301526123e2565b67ffffffffffffffff811681146114f857600080fd5b60008060408385031215613b3d57600080fd5b613b468361392a565b915060208301356137cb81613b14565b613b608185613abc565b82516080820152602083015160a082015260e060c082015266ffffffffffffff82511660e0820152600060208301516040610100840152613ba561012084018261361e565b9695505050505050565b60008060408385031215613bc257600080fd5b82359150613bd26020840161382b565b90509250929050565b600060208284031215613bed57600080fd5b6123e28261392a565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215613c6657600080fd5b81356123e281613b14565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613cd157613cd1613c71565b5060010190565b63ffffffff83168152604060208201526000612fc56040830184613543565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112613d2c57600080fd5b83018035915067ffffffffffffffff821115613d4757600080fd5b602001915036819003821315613d5c57600080fd5b9250929050565b600060208284031215613d7557600080fd5b81516123e281613b14565b67ffffffffffffffff8281168282160390808211156131bb576131bb613c71565b808202600082127f800000000000000000000000000000000000000000000000000000000000000084141615613dd957613dd9613c71565b818105831482151761235957612359613c71565b67ffffffffffffffff8181168382160190808211156131bb576131bb613c71565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c06080850152613e6460c085018261361e565b905060a083015184820360a0860152612cf9828261361e565b604081526000613e906040830185613e0e565b905082151560208301529392505050565b6040805190810167ffffffffffffffff81118282101715613ec457613ec4613bf6565b60405290565b604051601f8201601f1916810167ffffffffffffffff81118282101715613ef357613ef3613bf6565b604052919050565b600060408284031215613f0d57600080fd5b613f15613ea1565b9050815181526020820151602082015292915050565b600060408284031215613f3d57600080fd5b6123e28383613efb565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613ba5608083018461361e565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251613fe78160388501602087016135fa565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a0820152600061403a60c083018461361e565b98975050505050505050565b60c081016001600160a01b038061405c8561392a565b1683528061406c6020860161392a565b1660208401528061407f6040860161392a565b166040840152806140926060860161392a565b166060840152806140a56080860161392a565b166080840152806140b860a0860161392a565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561412a57836140fc866134a4565b1682528285013561410c81613b14565b67ffffffffffffffff168284015293850193908501906001016140ea565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561420d57600080fd5b614215613ea1565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516142ca81602c8501602087016135fa565b91909101602c0195945050505050565b8181038181111561235957612359613c71565b6080815260006143006080830186613e0e565b9050614319602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561434257600080fd5b6040516060810181811067ffffffffffffffff8211171561436557614365613bf6565b806040525080915082518152602083015161437f81613b14565b60208201526143918460408501613efb565b60408201525092915050565b6000608082840312156143af57600080fd5b6123e28383614330565b60008060a083850312156143cc57600080fd5b6143d68484614330565b9150608083015167ffffffffffffffff808211156143f357600080fd5b908401906040828703121561440757600080fd5b61440f613ea1565b825166ffffffffffffff8116811461442657600080fd5b81526020838101518381111561443b57600080fd5b80850194505087601f85011261445057600080fd5b83518381111561446257614462613bf6565b61447482601f19601f84011601613eca565b9350808452888282870101111561448a57600080fd5b614499818386018488016135fa565b5081019190915292959294509192505050565b600082516144be8184602087016135fa565b9190910192915050565b6000602082840312156144da57600080fd5b81516123e28161377656fea2646970667358221220de89528b0ac3ac42e3ce53a32273eb6420eb10a2a58d9d1b60c64d8a36542b1664736f6c63430008160033",
|
|
1513
|
+
"bytecode": "0x6101206040526001805460ff60a01b1916600160a01b1790553480156200002557600080fd5b5060405162004cfd38038062004cfd833981016040819052620000489162000228565b83846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000088573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000ae919062000285565b848484620000bc33620001a9565b6001600160a01b03851660805260ff8084169085161015620000f157604051632e4b554360e01b815260040160405180910390fd5b620000fd8385620002c0565b6200010a90600a620003df565b60c05260ff831660a0526001600160a01b03821660e08190526040805163416ecebf60e01b8152905163416ecebf916004808201926020929091908290030181865afa1580156200015f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001859190620003f0565b63ffffffff16610100526200019a81620001a9565b50505050505050505062000418565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200021157600080fd5b919050565b805160ff811681146200021157600080fd5b600080600080608085870312156200023f57600080fd5b6200024a85620001f9565b93506200025a6020860162000216565b92506200026a60408601620001f9565b91506200027a60608601620001f9565b905092959194509250565b6000602082840312156200029857600080fd5b620002a38262000216565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60ff8281168282160390811115620002dc57620002dc620002aa565b92915050565b600181815b8085111562000323578160001904821115620003075762000307620002aa565b808516156200031557918102915b93841c9390800290620002e7565b509250929050565b6000826200033c57506001620002dc565b816200034b57506000620002dc565b81600181146200036457600281146200036f576200038f565b6001915050620002dc565b60ff841115620003835762000383620002aa565b50506001821b620002dc565b5060208310610133831016604e8410600b8410161715620003b4575081810a620002dc565b620003c08383620002e2565b8060001904821115620003d757620003d7620002aa565b029392505050565b6000620002a360ff8416836200032b565b6000602082840312156200040357600080fd5b815163ffffffff81168114620002a357600080fd5b60805160a05160c05160e05161010051614814620004e96000396000818161057b01526115ee01526000818161051a015281816110d401528181611ed60152613504015260008181610aa301528181610b0e01528181610d0601528181610e6001528181610efd01528181610f2701528181610ffe01528181611757015281816121d3015281816123080152818161233201528181612590015281816128590152612a6c015260006105c40152600081816107bc01528181611cf30152818161277d015261283101526148146000f3fe6080604052600436106101e35760003560e01c80637260753711610102578063bedb86fb11610095578063cc32d17611610064578063cc32d17614610718578063d621ad3f14610752578063f2fde38b1461078a578063fc0c546a146107aa57600080fd5b8063bedb86fb14610695578063c7c7f5b3146106b5578063c859c483146106d6578063cbef2aa9146106f657600080fd5b80639f68b964116100d15780639f68b96414610624578063a7229fd914610640578063a88835d714610660578063b0d7ca5d1461068057600080fd5b80637260753714610569578063857749b0146105b25780638da5cb5b146105e65780639561b12f1461060457600080fd5b806338da6b8e1161017a578063461bb0b911610149578063461bb0b9146104c55780635114bf09146104e55780635e280f1114610508578063715018a61461055457600080fd5b806338da6b8e146104085780633b6f743b146104585780633faa12c514610485578063434def55146104a557600080fd5b8063200d2ed2116101b6578063200d2ed2146102aa578063203bd15f146102dd5780632bc5114c146102ff578063341a4648146103f557600080fd5b80630141e41b146101e85780630d35b4151461021e578063156a0d0f1461024d57806316909bca1461028e575b600080fd5b3480156101f457600080fd5b50610208610203366004613727565b6107de565b6040516102159190613804565b60405180910390f35b34801561022a57600080fd5b5061023e61023936600461382f565b610a63565b604051610215939291906138b4565b34801561025957600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610215565b34801561029a57600080fd5b506001604051610215919061396b565b3480156102b657600080fd5b506001546102cb90600160a01b900460ff1681565b60405160ff9091168152602001610215565b3480156102e957600080fd5b506102fd6102f8366004613a34565b610f5f565b005b34801561030b57600080fd5b506103946040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526001546001600160a01b03908116825260045481166020830152600654811692820192909252600554821660608201526002548216608082015260035490911660a082015290565b6040516102159190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b6102fd610403366004613ab6565b61125d565b34801561041457600080fd5b5061043f610423366004613acf565b60076020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610215565b34801561046457600080fd5b50610478610473366004613af8565b611337565b6040516102159190613b4a565b34801561049157600080fd5b506102fd6104a0366004613b61565b6115e4565b3480156104b157600080fd5b506102fd6104c0366004613b9e565b6116b8565b3480156104d157600080fd5b506102fd6104e0366004613c01565b611925565b3480156104f157600080fd5b506104fa611ad3565b604051908152602001610215565b34801561051457600080fd5b5061053c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610215565b34801561056057600080fd5b506102fd611ae2565b34801561057557600080fd5b5061059d7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610215565b3480156105be57600080fd5b506102cb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f257600080fd5b506000546001600160a01b031661053c565b34801561061057600080fd5b506102fd61061f366004613c13565b611af6565b34801561063057600080fd5b5060405160018152602001610215565b34801561064c57600080fd5b506104fa61065b366004613c86565b611c5b565b34801561066c57600080fd5b506102fd61067b366004613cc2565b611d84565b34801561068c57600080fd5b506102fd611faf565b3480156106a157600080fd5b506102fd6106b0366004613d4b565b612059565b6106c86106c3366004613d68565b612114565b604051610215929190613e06565b3480156106e257600080fd5b506102fd6106f1366004613e2a565b612148565b610709610704366004613d68565b612243565b60405161021593929190613e56565b34801561072457600080fd5b5060015461043f907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561075e57600080fd5b506104fa61076d366004613eaf565b600860209081526000928352604080842090915290825290205481565b34801561079657600080fd5b506102fd6107a5366004613edb565b612428565b3480156107b657600080fd5b5061053c7f000000000000000000000000000000000000000000000000000000000000000081565b60018054606091600160a01b90910460ff161461085657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b03163381146108a657604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156108c1576108c1613ef6565b60405190808252806020026020018201604052801561090657816020015b60408051808201909152600080825260208201528152602001906001900390816108df5790505b5090506000805b85811015610a08573687878381811061092857610928613f25565b905060600201905060006109928260200160208101906109489190613f54565b6109586060850160408601613f54565b600760006109696020880188613acf565b63ffffffff1663ffffffff1681526020019081526020016000206124d49092919063ffffffff16565b905067ffffffffffffffff8116156109fe5760408051808201909152806109bc6020850185613acf565b63ffffffff16815267ffffffffffffffff831660209091015285856109e081613fa0565b9650815181106109f2576109f2613f25565b60200260200101819052505b505060010161090d565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610a3d929190613fd8565b60405180910390a1509150506001805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610a96604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610b3160076000886000016020810190610ae19190613acf565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610b5e8460200151866040013511610b54578560400135612589565b8460200151612589565b90506000610b8e610b726020880188613acf565b83610b89610b8360c08b018b613ff7565b15919050565b6125c9565b600154604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c65919061405c565b90508267ffffffffffffffff168167ffffffffffffffff1614610ee25760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610c975790505094508267ffffffffffffffff168167ffffffffffffffff161015610db9576040518060400160405280610d2e610d298487610cfa9190614079565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612653565b610d58907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61409a565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610da957610da9613f25565b6020026020010181905250610ee2565b8267ffffffffffffffff168167ffffffffffffffff161115610ee2576000610de18483614079565b9091039050600067ffffffffffffffff84811690831603610e42576040805160008082526020820190925290610e3a565b604080518082019091526000815260606020820152815260200190600190039081610e125790505b509550610ee0565b6040518060400160405280610e83610d298467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610ed457610ed4613f25565b60200260200101819052505b505b6040518060400160405280610f208567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b60018054600160a01b900460ff1614610fa157600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b0316338114610ff157604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f000000000000000000000000000000000000000000000000000000000000000002821580159060609061108a5761108761103d60608c0160408d01613f54565b61104a60208d018d613acf565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061270992505050565b90505b6000611096898561273b565b9050801561119f578215611143576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611110908c908e9060009088906004016140e6565b600060405180830381600087803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61117c60208f018f613acf565b6040805163ffffffff9092168252602082018990520160405180910390a361123d565b6111ac60208c018c613acf565b8985846040516020016111c29493929190614118565b60408051601f19818403018152918152815160209283012060008d8152600884528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061121f908f018f613acf565b8c888760405161123496959493929190614196565b60405180910390a15b50506001805460ff60a01b1916600160a01b179055505050505050505050565b6006546001600160a01b031633811461128957604051635bd25eff60e01b815260040160405180910390fd5b611292826127e2565b600061129e338461281a565b905080600160158282829054906101000a900467ffffffffffffffff166112c591906141e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd08160405161132a919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b6040805180820190915260008082526020820152600061135a8460400135612589565b90508067ffffffffffffffff166000036113a0576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006113b2610b8360c0870187613ff7565b90508015611520576005546040805160c081019091523381526001600160a01b0390911690633292cf02906020808201906113ef908a018a613acf565b63ffffffff1681526020898101359082015267ffffffffffffffff8616604082015260600161142160a08a018a613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161146860808a018a613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526114d991908890600401614275565b6040805180830381865afa1580156114f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115199190614323565b92506115dc565b6000806115306080880188613ff7565b60055492109250506001600160a01b03166375d2208c6115536020890189613acf565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa1580156115b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d89190614323565b9350505b505092915050565b6115ec612900565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff1603611651576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff808316600090815260076020526040902061167391839061297416565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b60018054600160a01b900460ff16146116fa57600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b031633811461174a57604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f0000000000000000000000000000000000000000000000000000000000000000026000611783858361273b565b905080156117e7576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6117c460208c018c613acf565b6040805163ffffffff9092168252602082018790520160405180910390a3611908565b6117f46020890189613acf565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b5590889088906118bc908c018c613acf565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506001805460ff60a01b1916600160a01b179055505050505050565b61192d612900565b61193a6020820182613edb565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119776040820160208301613edb565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119b46060820160408301613edb565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119f16080820160608301613edb565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611a2e60a0820160808301613edb565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611a6b60c0820160a08301613edb565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611ac890839061433f565b60405180910390a150565b6000611add612a3e565b905090565b611aea612900565b611af46000612aad565b565b60018054600160a01b900460ff1614611b3857600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b0316338114611b8857604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611c065736848483818110611ba657611ba6613f25565b9050604002019050611bfd816020016020810190611bc49190613f54565b60076000611bd56020860186613acf565b63ffffffff1663ffffffff168152602001908152602001600020612b0a90919063ffffffff16565b50600101611b8b565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611c3a939291906143be565b60405180910390a150506001805460ff60a01b1916600160a01b1790555050565b60018054600091600160a01b90910460ff1614611ca157600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b0316338114611cf157604051635bd25eff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611d5c576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d698585856000612ba4565b50506001805460ff60a01b1916600160a01b17905592915050565b60018054600160a01b900460ff1614611dc657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055604051611e039086908690869086908690602001614431565b60408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b16825290935291205414611e6a576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260086020908152604080832060ff8a168452909152812055611e918484612bec565b611ea0611e9d84612589565b50565b8015611f47576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f149087908b90600090889088906004016144a3565b600060405180830381600087803b158015611f2e57600080fd5b505af1158015611f42573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506001805460ff60a01b1916600160a01b1790555050505050565b6004546001600160a01b0316338114611fdb57604051635bd25eff60e01b815260040160405180910390fd5b6000611fe5612a3e565b9050611ff333826000612c31565b612029576040517f3c2f177d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e183906020016116ac565b6004546001600160a01b031633811461208557604051635bd25eff60e01b815260040160405180910390fd5b600154600119600160a01b90910460ff16016120b4576040516376a9ad7360e01b815260040160405180910390fd5b816120c05760016120c3565b60035b6001805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb906020016116ac565b61211c6136c6565b604080518082019091526000808252602082015261213b858585612243565b5090969095509350505050565b6006546001600160a01b031633811461217457604051635bd25eff60e01b815260040160405180910390fd5b81600160158282829054906101000a900467ffffffffffffffff166121999190614079565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506121fb836121f68467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612bec565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e653910161132a565b61224b6136c6565b604080518082019091526000808252602082015260408051808201909152600081526060602082015260018054600160a01b900460ff16146122b657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055600080806122e789612cea565b925092509250604051806040016040528061232b8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061237c612375368b90038b018b6144f4565b8751612d88565b90508315612397576123908a82848b612ddd565b96506123a9565b6123a38a82848b612f6c565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6123db60208e018e613acf565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506001805460ff60a01b1916600160a01b1790555092969195509350915050565b612430612900565b6001600160a01b0381166124cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b611e9d81612aad565b825460009067ffffffffffffffff1667fffffffffffffffe198101612525576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156125815782810367ffffffffffffffff8082169086161161255e5784612560565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006125c37f000000000000000000000000000000000000000000000000000000000000000083816125bd576125bd614526565b04613168565b92915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260079092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016124c2565b5090565b6060848484846040516020016127229493929190614555565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156127c357600080fd5b505af19250505080156127d4575060015b156125c35750600192915050565b3415611e9d576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061282582612589565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156128e257600080fd5b505af11580156128f6573d6000803e3d6000fd5b5050505092915050565b6000546001600160a01b03163314611af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016124c2565b815467ffffffffffffffff1681156129e65767ffffffffffffffff8116156129c8576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612a29576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600154600090479067ffffffffffffffff7501000000000000000000000000000000000000000000909104167f00000000000000000000000000000000000000000000000000000000000000000281811015612aa357612a9e81836145d3565b612aa6565b60005b9250505090565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612b2b57505050565b612b3582826141e5565b905067fffffffffffffffe1967ffffffffffffffff821601612b83576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612bb084848484613202565b612be6576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612bf8838361273b565b905080612a39576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081612c8c576040516001600160a01b038516908490600081818185875af1925050503d8060008114612c81576040519150601f19603f3d011682016040523d82523d6000602084013e612c86565b606091505b50612ce1565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114612cda576040519150601f19603f3d011682016040523d82523d6000602084013e612cdf565b606091505b505b50949350505050565b60008080612cfe610b8360c0860186613ff7565b9250612d0e33856040013561281a565b91506000612d29612d226020870187613acf565b84866125c9565b9050612d4181612d3c8760600135612589565b613237565b9150612d808260076000612d5860208a018a613acf565b63ffffffff1663ffffffff16815260200190815260200160002061342c90919063ffffffff16565b509193909250565b604080518082019091526000808252602082015282513414612dd6576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612de56136c6565b602084015115612dfc57612dfc84602001516134ba565b60055484516040805160c081019091523381526001600160a01b039092169163ff6fb3009190602080820190612e34908b018b613acf565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001612e6660a08b018b613ff7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612ead60808b018b613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152612f209190899088906004016145e6565b60806040518083038185885af1158015612f3e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f639190614696565b95945050505050565b612f746136c6565b604080518082019091526000815260606020820152602085015115612fc5576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546040805160a081019091523381526001600160a01b03909116906385afd45390602080820190612ffa908b018b613acf565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061302e60808c018c613ff7565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156130cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130f791908101906146b2565b60408201515187519294509092509080821461315d578181111561312b5781810361312486826000612c31565b505061315d565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff821115612705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016124c2565b60006001600160a01b0385166132245761321d848484612c31565b905061322f565b612f6385858561352d565b949350505050565b600154604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af11580156132eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330f919061405c565b604084015190915067ffffffffffffffff8082169083161015613396576133368282614079565b6001805460159061336b9084907501000000000000000000000000000000000000000000900467ffffffffffffffff166141e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506133c4565b8067ffffffffffffffff168267ffffffffffffffff1611156133c45760006133be8284614079565b90920391505b8267ffffffffffffffff168267ffffffffffffffff1610806133ee575067ffffffffffffffff8216155b15613425576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161344d57505050565b8167ffffffffffffffff168167ffffffffffffffff16101561349b576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6003546001600160a01b0316806134fd576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61352981337f0000000000000000000000000000000000000000000000000000000000000000856135d9565b5050565b6040516001600160a01b03831660248201526044810182905260009061322f9085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526135e5565b612bb084848484613672565b6000806000846001600160a01b03168460405161360291906147a5565b6000604051808303816000865af19150503d806000811461363f576040519150601f19603f3d011682016040523d82523d6000602084013e613644565b606091505b509150915081613655576000612f63565b80511580612f63575080806020019051810190612f6391906147c1565b6040516001600160a01b0380851660248301528316604482015260648101829052600090612f639086907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613575565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613709604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461372257600080fd5b919050565b60008060006040848603121561373c57600080fd5b6137458461370e565b9250602084013567ffffffffffffffff8082111561376257600080fd5b818601915086601f83011261377657600080fd5b81358181111561378557600080fd5b87602060608302850101111561379a57600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b838110156137f9578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016137c2565b509495945050505050565b60208152600061264c60208301846137ad565b600060e0828403121561382957600080fd5b50919050565b60006020828403121561384157600080fd5b813567ffffffffffffffff81111561385857600080fd5b61322f84828501613817565b60005b8381101561387f578181015183820152602001613867565b50506000910152565b600081518084526138a0816020860160208601613864565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b8381101561394d578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4001855281518051885283015183880187905261393a87890182613888565b97505093820193908201906001016138f0565b5050875160608801525050506020850151608085015250905061322f565b60208101600283106139a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006060828403121561382957600080fd5b80356001600160a01b038116811461372257600080fd5b67ffffffffffffffff81168114611e9d57600080fd5b60008083601f8401126139fd57600080fd5b50813567ffffffffffffffff811115613a1557600080fd5b602083019150836020828501011115613a2d57600080fd5b9250929050565b60008060008060008060e08789031215613a4d57600080fd5b613a5788886139ac565b955060608701359450613a6c608088016139be565b935060a0870135613a7c816139d5565b925060c087013567ffffffffffffffff811115613a9857600080fd5b613aa489828a016139eb565b979a9699509497509295939492505050565b600060208284031215613ac857600080fd5b5035919050565b600060208284031215613ae157600080fd5b61264c8261370e565b8015158114611e9d57600080fd5b60008060408385031215613b0b57600080fd5b823567ffffffffffffffff811115613b2257600080fd5b613b2e85828601613817565b9250506020830135613b3f81613aea565b809150509250929050565b8151815260208083015190820152604081016125c3565b60008060408385031215613b7457600080fd5b613b7d8361370e565b91506020830135613b3f81613aea565b803560ff8116811461372257600080fd5b600080600080600060e08688031215613bb657600080fd5b613bc087876139ac565b945060608601359350613bd560808701613b8d565b9250613be360a087016139be565b915060c0860135613bf3816139d5565b809150509295509295909350565b600060c0828403121561382957600080fd5b600080600060408486031215613c2857600080fd5b613c318461370e565b9250602084013567ffffffffffffffff80821115613c4e57600080fd5b818601915086601f830112613c6257600080fd5b813581811115613c7157600080fd5b8760208260061b850101111561379a57600080fd5b600080600060608486031215613c9b57600080fd5b613ca4846139be565b9250613cb2602085016139be565b9150604084013590509250925092565b600080600080600080600060c0888a031215613cdd57600080fd5b87359650613ced60208901613b8d565b9550613cfb6040890161370e565b9450613d09606089016139be565b93506080880135925060a088013567ffffffffffffffff811115613d2c57600080fd5b613d388a828b016139eb565b989b979a50959850939692959293505050565b600060208284031215613d5d57600080fd5b813561264c81613aea565b60008060008385036080811215613d7e57600080fd5b843567ffffffffffffffff811115613d9557600080fd5b613da187828801613817565b9450506040601f1982011215613db657600080fd5b50602084019150613dc9606085016139be565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612a39604084018280518252602090810151910152565b60c08101613e148285613dd2565b82516080830152602083015160a083015261264c565b60008060408385031215613e3d57600080fd5b613e46836139be565b91506020830135613b3f816139d5565b613e608185613dd2565b82516080820152602083015160a082015260e060c082015266ffffffffffffff82511660e0820152600060208301516040610100840152613ea5610120840182613888565b9695505050505050565b60008060408385031215613ec257600080fd5b82359150613ed260208401613b8d565b90509250929050565b600060208284031215613eed57600080fd5b61264c826139be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215613f6657600080fd5b813561264c816139d5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fd157613fd1613f71565b5060010190565b63ffffffff8316815260406020820152600061322f60408301846137ad565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261402c57600080fd5b83018035915067ffffffffffffffff82111561404757600080fd5b602001915036819003821315613a2d57600080fd5b60006020828403121561406e57600080fd5b815161264c816139d5565b67ffffffffffffffff82811682821603908082111561342557613425613f71565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156140d2576140d2613f71565b81810583148215176125c3576125c3613f71565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613ea56080830184613888565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251614186816038850160208701613864565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006141d960c0830184613888565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561342557613425613f71565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261425c60c0850182613888565b905060a083015184820360a0860152612f638282613888565b6040815260006142886040830185614206565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156142bc576142bc613ef6565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156142eb576142eb613ef6565b604052919050565b60006040828403121561430557600080fd5b61430d614299565b9050815181526020820151602082015292915050565b60006040828403121561433557600080fd5b61264c83836142f3565b60c081016001600160a01b0380614355856139be565b16835280614365602086016139be565b16602084015280614378604086016139be565b1660408401528061438b606086016139be565b1660608401528061439e608086016139be565b166080840152806143b160a086016139be565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561442357836143f58661370e565b16825282850135614405816139d5565b67ffffffffffffffff168284015293850193908501906001016143e3565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561450657600080fd5b61450e614299565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516145c381602c850160208701613864565b91909101602c0195945050505050565b818103818111156125c3576125c3613f71565b6080815260006145f96080830186614206565b9050614612602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561463b57600080fd5b6040516060810181811067ffffffffffffffff8211171561465e5761465e613ef6565b8060405250809150825181526020830151614678816139d5565b602082015261468a84604085016142f3565b60408201525092915050565b6000608082840312156146a857600080fd5b61264c8383614629565b60008060a083850312156146c557600080fd5b6146cf8484614629565b9150608083015167ffffffffffffffff808211156146ec57600080fd5b908401906040828703121561470057600080fd5b614708614299565b825166ffffffffffffff8116811461471f57600080fd5b81526020838101518381111561473457600080fd5b80850194505087601f85011261474957600080fd5b83518381111561475b5761475b613ef6565b61476d82601f19601f840116016142c2565b9350808452888282870101111561478357600080fd5b61479281838601848801613864565b5081019190915292959294509192505050565b600082516147b7818460208701613864565b9190910192915050565b6000602082840312156147d357600080fd5b815161264c81613aea56fea2646970667358221220983323fd5d97d67024d3386ec6ae91ce9566c1ef5d4763ac39256cf8ab2d554664736f6c63430008160033",
|
|
1514
|
+
"deployedBytecode": "0x6080604052600436106101e35760003560e01c80637260753711610102578063bedb86fb11610095578063cc32d17611610064578063cc32d17614610718578063d621ad3f14610752578063f2fde38b1461078a578063fc0c546a146107aa57600080fd5b8063bedb86fb14610695578063c7c7f5b3146106b5578063c859c483146106d6578063cbef2aa9146106f657600080fd5b80639f68b964116100d15780639f68b96414610624578063a7229fd914610640578063a88835d714610660578063b0d7ca5d1461068057600080fd5b80637260753714610569578063857749b0146105b25780638da5cb5b146105e65780639561b12f1461060457600080fd5b806338da6b8e1161017a578063461bb0b911610149578063461bb0b9146104c55780635114bf09146104e55780635e280f1114610508578063715018a61461055457600080fd5b806338da6b8e146104085780633b6f743b146104585780633faa12c514610485578063434def55146104a557600080fd5b8063200d2ed2116101b6578063200d2ed2146102aa578063203bd15f146102dd5780632bc5114c146102ff578063341a4648146103f557600080fd5b80630141e41b146101e85780630d35b4151461021e578063156a0d0f1461024d57806316909bca1461028e575b600080fd5b3480156101f457600080fd5b50610208610203366004613727565b6107de565b6040516102159190613804565b60405180910390f35b34801561022a57600080fd5b5061023e61023936600461382f565b610a63565b604051610215939291906138b4565b34801561025957600080fd5b50604080517f02e49c2c0000000000000000000000000000000000000000000000000000000081526000602082015201610215565b34801561029a57600080fd5b506001604051610215919061396b565b3480156102b657600080fd5b506001546102cb90600160a01b900460ff1681565b60405160ff9091168152602001610215565b3480156102e957600080fd5b506102fd6102f8366004613a34565b610f5f565b005b34801561030b57600080fd5b506103946040805160c081018252600080825260208201819052918101829052606081018290526080810182905260a0810191909152506040805160c0810182526001546001600160a01b03908116825260045481166020830152600654811692820192909252600554821660608201526002548216608082015260035490911660a082015290565b6040516102159190600060c0820190506001600160a01b038084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525092915050565b6102fd610403366004613ab6565b61125d565b34801561041457600080fd5b5061043f610423366004613acf565b60076020526000908152604090205467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610215565b34801561046457600080fd5b50610478610473366004613af8565b611337565b6040516102159190613b4a565b34801561049157600080fd5b506102fd6104a0366004613b61565b6115e4565b3480156104b157600080fd5b506102fd6104c0366004613b9e565b6116b8565b3480156104d157600080fd5b506102fd6104e0366004613c01565b611925565b3480156104f157600080fd5b506104fa611ad3565b604051908152602001610215565b34801561051457600080fd5b5061053c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610215565b34801561056057600080fd5b506102fd611ae2565b34801561057557600080fd5b5061059d7f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff9091168152602001610215565b3480156105be57600080fd5b506102cb7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105f257600080fd5b506000546001600160a01b031661053c565b34801561061057600080fd5b506102fd61061f366004613c13565b611af6565b34801561063057600080fd5b5060405160018152602001610215565b34801561064c57600080fd5b506104fa61065b366004613c86565b611c5b565b34801561066c57600080fd5b506102fd61067b366004613cc2565b611d84565b34801561068c57600080fd5b506102fd611faf565b3480156106a157600080fd5b506102fd6106b0366004613d4b565b612059565b6106c86106c3366004613d68565b612114565b604051610215929190613e06565b3480156106e257600080fd5b506102fd6106f1366004613e2a565b612148565b610709610704366004613d68565b612243565b60405161021593929190613e56565b34801561072457600080fd5b5060015461043f907501000000000000000000000000000000000000000000900467ffffffffffffffff1681565b34801561075e57600080fd5b506104fa61076d366004613eaf565b600860209081526000928352604080842090915290825290205481565b34801561079657600080fd5b506102fd6107a5366004613edb565b612428565b3480156107b657600080fd5b5061053c7f000000000000000000000000000000000000000000000000000000000000000081565b60018054606091600160a01b90910460ff161461085657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6040517fdb22c33c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b03163381146108a657604051635bd25eff60e01b815260040160405180910390fd5b60008367ffffffffffffffff8111156108c1576108c1613ef6565b60405190808252806020026020018201604052801561090657816020015b60408051808201909152600080825260208201528152602001906001900390816108df5790505b5090506000805b85811015610a08573687878381811061092857610928613f25565b905060600201905060006109928260200160208101906109489190613f54565b6109586060850160408601613f54565b600760006109696020880188613acf565b63ffffffff1663ffffffff1681526020019081526020016000206124d49092919063ffffffff16565b905067ffffffffffffffff8116156109fe5760408051808201909152806109bc6020850185613acf565b63ffffffff16815267ffffffffffffffff831660209091015285856109e081613fa0565b9650815181106109f2576109f2613f25565b60200260200101819052505b505060010161090d565b508082527fce105e156370093e6600169f7c01277f740d45fbcf95435227ce6f43ad0c3abd8783604051610a3d929190613fd8565b60405180910390a1509150506001805460ff60a01b1916600160a01b1790559392505050565b60408051808201909152600080825260208201526060610a96604051806040016040528060008152602001600081525090565b60408051808201909152807f00000000000000000000000000000000000000000000000000000000000000008152602001610b3160076000886000016020810190610ae19190613acf565b63ffffffff16815260208101919091526040016000205467ffffffffffffffff1667ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81525092506000610b5e8460200151866040013511610b54578560400135612589565b8460200151612589565b90506000610b8e610b726020880188613acf565b83610b89610b8360c08b018b613ff7565b15919050565b6125c9565b600154604080517f81993cd000000000000000000000000000000000000000000000000000000000815283516001600160a01b039081166004830152602085015163ffffffff1660248301529184015167ffffffffffffffff9081166044830152606085015116606482015260808401511515608482015260a0840151151560a48201529293506000929116906381993cd09060c401602060405180830381865afa158015610c41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c65919061405c565b90508267ffffffffffffffff168167ffffffffffffffff1614610ee25760408051600180825281830190925290816020015b604080518082019091526000815260606020820152815260200190600190039081610c975790505094508267ffffffffffffffff168167ffffffffffffffff161015610db9576040518060400160405280610d2e610d298487610cfa9190614079565b67ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612653565b610d58907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61409a565b81526020016040518060400160405280600c81526020017f70726f746f636f6c20666565000000000000000000000000000000000000000081525081525085600081518110610da957610da9613f25565b6020026020010181905250610ee2565b8267ffffffffffffffff168167ffffffffffffffff161115610ee2576000610de18483614079565b9091039050600067ffffffffffffffff84811690831603610e42576040805160008082526020820190925290610e3a565b604080518082019091526000815260606020820152815260200190600190039081610e125790505b509550610ee0565b6040518060400160405280610e83610d298467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020016040518060400160405280600681526020017f726577617264000000000000000000000000000000000000000000000000000081525081525086600081518110610ed457610ed4613f25565b60200260200101819052505b505b6040518060400160405280610f208567ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8416029052959794965050505050565b60018054600160a01b900460ff1614610fa157600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b0316338114610ff157604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff84167f000000000000000000000000000000000000000000000000000000000000000002821580159060609061108a5761108761103d60608c0160408d01613f54565b61104a60208d018d613acf565b8589898080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061270992505050565b90505b6000611096898561273b565b9050801561119f578215611143576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611110908c908e9060009088906004016140e6565b600060405180830381600087803b15801561112a57600080fd5b505af115801561113e573d6000803e3d6000fd5b505050505b6001600160a01b0389168a7fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c61117c60208f018f613acf565b6040805163ffffffff9092168252602082018990520160405180910390a361123d565b6111ac60208c018c613acf565b8985846040516020016111c29493929190614118565b60408051601f19818403018152918152815160209283012060008d8152600884528281208180528452918220557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b55918c919061121f908f018f613acf565b8c888760405161123496959493929190614196565b60405180910390a15b50506001805460ff60a01b1916600160a01b179055505050505050505050565b6006546001600160a01b031633811461128957604051635bd25eff60e01b815260040160405180910390fd5b611292826127e2565b600061129e338461281a565b905080600160158282829054906101000a900467ffffffffffffffff166112c591906141e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055507fa064a2faa279f4d67c85c8fc69d4ebb7de2739a9e6dd864dfdd1b9e066d4bfd08160405161132a919067ffffffffffffffff91909116815260200190565b60405180910390a1505050565b6040805180820190915260008082526020820152600061135a8460400135612589565b90508067ffffffffffffffff166000036113a0576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60006113b2610b8360c0870187613ff7565b90508015611520576005546040805160c081019091523381526001600160a01b0390911690633292cf02906020808201906113ef908a018a613acf565b63ffffffff1681526020898101359082015267ffffffffffffffff8616604082015260600161142160a08a018a613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509082525060200161146860808a018a613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526114d991908890600401614275565b6040805180830381865afa1580156114f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115199190614323565b92506115dc565b6000806115306080880188613ff7565b60055492109250506001600160a01b03166375d2208c6115536020890189613acf565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff91909116600482015283151560248201526044016040805180830381865afa1580156115b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d89190614323565b9350505b505092915050565b6115ec612900565b7f000000000000000000000000000000000000000000000000000000000000000063ffffffff168263ffffffff1603611651576040517fada8342400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff808316600090815260076020526040902061167391839061297416565b6040805163ffffffff8416815282151560208201527faf6b8dd4c5a827e03f548d06181b36aaba61e22436ff1cfa9bc409d576366a6091015b60405180910390a15050565b60018054600160a01b900460ff16146116fa57600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556005546001600160a01b031633811461174a57604051635bd25eff60e01b815260040160405180910390fd5b67ffffffffffffffff82167f0000000000000000000000000000000000000000000000000000000000000000026000611783858361273b565b905080156117e7576001600160a01b038516877fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c6117c460208c018c613acf565b6040805163ffffffff9092168252602082018790520160405180910390a3611908565b6117f46020890189613acf565b60405160e09190911b7fffffffff00000000000000000000000000000000000000000000000000000000166020820152606086901b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000001660248201526038810183905260580160408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b168252845291909120557e7c17198cd078035dc663f9a0961f84cb6265411d0b4c793f96d432f6af4b5590889088906118bc908c018c613acf565b6040805193845260ff909216602084015263ffffffff16908201526001600160a01b03871660608201526080810184905260c060a0820181905260009082015260e00160405180910390a15b50506001805460ff60a01b1916600160a01b179055505050505050565b61192d612900565b61193a6020820182613edb565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119776040820160208301613edb565b6004805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119b46060820160408301613edb565b6006805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556119f16080820160608301613edb565b6005805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611a2e60a0820160808301613edb565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055611a6b60c0820160a08301613edb565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03929092169190911790556040517f9774229668135b546675daf425e41c0848f60aa32d0951881245f4f528cc33f090611ac890839061433f565b60405180910390a150565b6000611add612a3e565b905090565b611aea612900565b611af46000612aad565b565b60018054600160a01b900460ff1614611b3857600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556002546001600160a01b0316338114611b8857604051635bd25eff60e01b815260040160405180910390fd5b60005b82811015611c065736848483818110611ba657611ba6613f25565b9050604002019050611bfd816020016020810190611bc49190613f54565b60076000611bd56020860186613acf565b63ffffffff1663ffffffff168152602001908152602001600020612b0a90919063ffffffff16565b50600101611b8b565b507f10c5f2b007767d266c6c75c86ae9ed0c74e6320b30bda231af7396a990e7263c848484604051611c3a939291906143be565b60405180910390a150506001805460ff60a01b1916600160a01b1790555050565b60018054600091600160a01b90910460ff1614611ca157600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b1916740200000000000000000000000000000000000000001790556006546001600160a01b0316338114611cf157604051635bd25eff60e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b031603611d5c576040517f809fc44b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611d698585856000612ba4565b50506001805460ff60a01b1916600160a01b17905592915050565b60018054600160a01b900460ff1614611dc657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055604051611e039086908690869086908690602001614431565b60408051601f19818403018152918152815160209283012060008a81526008845282812060ff8b16825290935291205414611e6a576040517faba8b6ef00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087815260086020908152604080832060ff8a168452909152812055611e918484612bec565b611ea0611e9d84612589565b50565b8015611f47576040517f7cb590120000000000000000000000000000000000000000000000000000000081526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690637cb5901290611f149087908b90600090889088906004016144a3565b600060405180830381600087803b158015611f2e57600080fd5b505af1158015611f42573d6000803e3d6000fd5b505050505b6040805163ffffffff87168152602081018590526001600160a01b0386169189917fefed6d3500546b29533b128a29e3a94d70788727f0507505ac12eaf2e578fd9c910160405180910390a350506001805460ff60a01b1916600160a01b1790555050505050565b6004546001600160a01b0316338114611fdb57604051635bd25eff60e01b815260040160405180910390fd5b6000611fe5612a3e565b9050611ff333826000612c31565b612029576040517f3c2f177d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040518181527f19e23b96a5e0d494b59baca97d1fe386cf8e80a978dfd8845d25f1a9d5c7e183906020016116ac565b6004546001600160a01b031633811461208557604051635bd25eff60e01b815260040160405180910390fd5b600154600119600160a01b90910460ff16016120b4576040516376a9ad7360e01b815260040160405180910390fd5b816120c05760016120c3565b60035b6001805460ff92909216600160a01b0260ff60a01b1990921691909117905560405182151581527f878ac8a2ca79520471f8f3c8494fa802c03ce3bf034252aad7f22318984fdbdb906020016116ac565b61211c6136c6565b604080518082019091526000808252602082015261213b858585612243565b5090969095509350505050565b6006546001600160a01b031633811461217457604051635bd25eff60e01b815260040160405180910390fd5b81600160158282829054906101000a900467ffffffffffffffff166121999190614079565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506121fb836121f68467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b612bec565b604080516001600160a01b038516815267ffffffffffffffff841660208201527fa46907b6b80b882da80d6e36cc905dde57fafff0a5442c8898526fe952d1e653910161132a565b61224b6136c6565b604080518082019091526000808252602082015260408051808201909152600081526060602082015260018054600160a01b900460ff16146122b657600154600119600160a01b90910460ff1601610824576040516376a9ad7360e01b815260040160405180910390fd5b6001805460ff60a01b191674020000000000000000000000000000000000000000179055600080806122e789612cea565b925092509250604051806040016040528061232b8467ffffffffffffffff167f00000000000000000000000000000000000000000000000000000000000000000290565b81526020017f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff84160290529450600061237c612375368b90038b018b6144f4565b8751612d88565b90508315612397576123908a82848b612ddd565b96506123a9565b6123a38a82848b612f6c565b90975094505b865133907f85496b760a4b7f8d66384b9df21b381f5d1b1e79f229a47aaf4c232edc2fe59a6123db60208e018e613acf565b89516020808c01516040805163ffffffff90951685529184019290925282015260600160405180910390a350506001805460ff60a01b1916600160a01b1790555092969195509350915050565b612430612900565b6001600160a01b0381166124cb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b611e9d81612aad565b825460009067ffffffffffffffff1667fffffffffffffffe198101612525576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8067ffffffffffffffff168367ffffffffffffffff1610156125815782810367ffffffffffffffff8082169086161161255e5784612560565b805b865467ffffffffffffffff191681840367ffffffffffffffff161787559250505b509392505050565b60006125c37f000000000000000000000000000000000000000000000000000000000000000083816125bd576125bd614526565b04613168565b92915050565b6040805160c08082018352600080835260208084018290528385018290526060808501839052608080860184905260a09586018490528651948501875233855263ffffffff8a1685840181905267ffffffffffffffff8a8116878a0152928601859052845260079092529490912054841690931492810192909252821515908201525b9392505050565b60007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821115612705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602860248201527f53616665436173743a2076616c756520646f65736e27742066697420696e206160448201527f6e20696e7432353600000000000000000000000000000000000000000000000060648201526084016124c2565b5090565b6060848484846040516020016127229493929190614555565b6040516020818303038152906040529050949350505050565b6040517f40c10f190000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152602482018390526000917f0000000000000000000000000000000000000000000000000000000000000000909116906340c10f1990604401600060405180830381600087803b1580156127c357600080fd5b505af19250505080156127d4575060015b156125c35750600192915050565b3415611e9d576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600061282582612589565b90506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166379cc6790847f000000000000000000000000000000000000000000000000000000000000000067ffffffffffffffff8516026040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156128e257600080fd5b505af11580156128f6573d6000803e3d6000fd5b5050505092915050565b6000546001600160a01b03163314611af4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016124c2565b815467ffffffffffffffff1681156129e65767ffffffffffffffff8116156129c8576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff178355505050565b67ffffffffffffffff81811614612a29576040517fca2bc39800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191683555b505050565b600154600090479067ffffffffffffffff7501000000000000000000000000000000000000000000909104167f00000000000000000000000000000000000000000000000000000000000000000281811015612aa357612a9e81836145d3565b612aa6565b60005b9250505090565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b815467ffffffffffffffff1667fffffffffffffffe198101612b2b57505050565b612b3582826141e5565b905067fffffffffffffffe1967ffffffffffffffff821601612b83576040517f5a5cc94600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191667ffffffffffffffff919091161790915550565b612bb084848484613202565b612be6576040517f7c75c3d200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50505050565b6000612bf8838361273b565b905080612a39576040517f06a6167e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600081612c8c576040516001600160a01b038516908490600081818185875af1925050503d8060008114612c81576040519150601f19603f3d011682016040523d82523d6000602084013e612c86565b606091505b50612ce1565b6040516001600160a01b038516906108fc9085906000818181858888f193505050503d8060008114612cda576040519150601f19603f3d011682016040523d82523d6000602084013e612cdf565b606091505b505b50949350505050565b60008080612cfe610b8360c0860186613ff7565b9250612d0e33856040013561281a565b91506000612d29612d226020870187613acf565b84866125c9565b9050612d4181612d3c8760600135612589565b613237565b9150612d808260076000612d5860208a018a613acf565b63ffffffff1663ffffffff16815260200190815260200160002061342c90919063ffffffff16565b509193909250565b604080518082019091526000808252602082015282513414612dd6576040517f3442dd9500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5090919050565b612de56136c6565b602084015115612dfc57612dfc84602001516134ba565b60055484516040805160c081019091523381526001600160a01b039092169163ff6fb3009190602080820190612e34908b018b613acf565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001612e6660a08b018b613ff7565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250505090825250602001612ead60808b018b613ff7565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152506040517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b168152612f209190899088906004016145e6565b60806040518083038185885af1158015612f3e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190612f639190614696565b95945050505050565b612f746136c6565b604080518082019091526000815260606020820152602085015115612fc5576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005546040805160a081019091523381526001600160a01b03909116906385afd45390602080820190612ffa908b018b613acf565b63ffffffff16815260208a8101359082015267ffffffffffffffff88166040820152606001600061302e60808c018c613ff7565b9190911190915250604080517fffffffff0000000000000000000000000000000000000000000000000000000060e085901b16815282516001600160a01b03166004820152602083015163ffffffff166024820152908201516044820152606082015167ffffffffffffffff1660648201526080909101511515608482015260a4016000604051808303816000875af11580156130cf573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130f791908101906146b2565b60408201515187519294509092509080821461315d578181111561312b5781810361312486826000612c31565b505061315d565b6040517fa028531600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505094509492505050565b600067ffffffffffffffff821115612705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016124c2565b60006001600160a01b0385166132245761321d848484612c31565b905061322f565b612f6385858561352d565b949350505050565b600154604080517f43d9564d00000000000000000000000000000000000000000000000000000000815284516001600160a01b039081166004830152602086015163ffffffff1660248301529185015167ffffffffffffffff9081166044830152606086015116606482015260808501511515608482015260a0850151151560a482015260009291909116906343d9564d9060c4016020604051808303816000875af11580156132eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061330f919061405c565b604084015190915067ffffffffffffffff8082169083161015613396576133368282614079565b6001805460159061336b9084907501000000000000000000000000000000000000000000900467ffffffffffffffff166141e5565b92506101000a81548167ffffffffffffffff021916908367ffffffffffffffff1602179055506133c4565b8067ffffffffffffffff168267ffffffffffffffff1611156133c45760006133be8284614079565b90920391505b8267ffffffffffffffff168267ffffffffffffffff1610806133ee575067ffffffffffffffff8216155b15613425576040517fa1e8654500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5092915050565b815467ffffffffffffffff1667fffffffffffffffe19810161344d57505050565b8167ffffffffffffffff168167ffffffffffffffff16101561349b576040517f2b4d0ad500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b825467ffffffffffffffff191691900367ffffffffffffffff16179055565b6003546001600160a01b0316806134fd576040517fb5e0bf8d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61352981337f0000000000000000000000000000000000000000000000000000000000000000856135d9565b5050565b6040516001600160a01b03831660248201526044810182905260009061322f9085907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909316929092179091526135e5565b612bb084848484613672565b6000806000846001600160a01b03168460405161360291906147a5565b6000604051808303816000865af19150503d806000811461363f576040519150601f19603f3d011682016040523d82523d6000602084013e613644565b606091505b509150915081613655576000612f63565b80511580612f63575080806020019051810190612f6391906147c1565b6040516001600160a01b0380851660248301528316604482015260648101829052600090612f639086907f23b872dd0000000000000000000000000000000000000000000000000000000090608401613575565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001613709604051806040016040528060008152602001600081525090565b905290565b803563ffffffff8116811461372257600080fd5b919050565b60008060006040848603121561373c57600080fd5b6137458461370e565b9250602084013567ffffffffffffffff8082111561376257600080fd5b818601915086601f83011261377657600080fd5b81358181111561378557600080fd5b87602060608302850101111561379a57600080fd5b6020830194508093505050509250925092565b60008151808452602080850194506020840160005b838110156137f9578151805163ffffffff16885283015167ffffffffffffffff1683880152604090960195908201906001016137c2565b509495945050505050565b60208152600061264c60208301846137ad565b600060e0828403121561382957600080fd5b50919050565b60006020828403121561384157600080fd5b813567ffffffffffffffff81111561385857600080fd5b61322f84828501613817565b60005b8381101561387f578181015183820152602001613867565b50506000910152565b600081518084526138a0816020860160208601613864565b601f01601f19169290920160200192915050565b8351815260208085015190820152600060a08201604060a0604085015281865180845260c08601915060c08160051b8701019350602080890160005b8381101561394d578887037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff4001855281518051885283015183880187905261393a87890182613888565b97505093820193908201906001016138f0565b5050875160608801525050506020850151608085015250905061322f565b60208101600283106139a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b91905290565b60006060828403121561382957600080fd5b80356001600160a01b038116811461372257600080fd5b67ffffffffffffffff81168114611e9d57600080fd5b60008083601f8401126139fd57600080fd5b50813567ffffffffffffffff811115613a1557600080fd5b602083019150836020828501011115613a2d57600080fd5b9250929050565b60008060008060008060e08789031215613a4d57600080fd5b613a5788886139ac565b955060608701359450613a6c608088016139be565b935060a0870135613a7c816139d5565b925060c087013567ffffffffffffffff811115613a9857600080fd5b613aa489828a016139eb565b979a9699509497509295939492505050565b600060208284031215613ac857600080fd5b5035919050565b600060208284031215613ae157600080fd5b61264c8261370e565b8015158114611e9d57600080fd5b60008060408385031215613b0b57600080fd5b823567ffffffffffffffff811115613b2257600080fd5b613b2e85828601613817565b9250506020830135613b3f81613aea565b809150509250929050565b8151815260208083015190820152604081016125c3565b60008060408385031215613b7457600080fd5b613b7d8361370e565b91506020830135613b3f81613aea565b803560ff8116811461372257600080fd5b600080600080600060e08688031215613bb657600080fd5b613bc087876139ac565b945060608601359350613bd560808701613b8d565b9250613be360a087016139be565b915060c0860135613bf3816139d5565b809150509295509295909350565b600060c0828403121561382957600080fd5b600080600060408486031215613c2857600080fd5b613c318461370e565b9250602084013567ffffffffffffffff80821115613c4e57600080fd5b818601915086601f830112613c6257600080fd5b813581811115613c7157600080fd5b8760208260061b850101111561379a57600080fd5b600080600060608486031215613c9b57600080fd5b613ca4846139be565b9250613cb2602085016139be565b9150604084013590509250925092565b600080600080600080600060c0888a031215613cdd57600080fd5b87359650613ced60208901613b8d565b9550613cfb6040890161370e565b9450613d09606089016139be565b93506080880135925060a088013567ffffffffffffffff811115613d2c57600080fd5b613d388a828b016139eb565b989b979a50959850939692959293505050565b600060208284031215613d5d57600080fd5b813561264c81613aea565b60008060008385036080811215613d7e57600080fd5b843567ffffffffffffffff811115613d9557600080fd5b613da187828801613817565b9450506040601f1982011215613db657600080fd5b50602084019150613dc9606085016139be565b90509250925092565b8051825267ffffffffffffffff60208201511660208301526040810151612a39604084018280518252602090810151910152565b60c08101613e148285613dd2565b82516080830152602083015160a083015261264c565b60008060408385031215613e3d57600080fd5b613e46836139be565b91506020830135613b3f816139d5565b613e608185613dd2565b82516080820152602083015160a082015260e060c082015266ffffffffffffff82511660e0820152600060208301516040610100840152613ea5610120840182613888565b9695505050505050565b60008060408385031215613ec257600080fd5b82359150613ed260208401613b8d565b90509250929050565b600060208284031215613eed57600080fd5b61264c826139be565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215613f6657600080fd5b813561264c816139d5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613fd157613fd1613f71565b5060010190565b63ffffffff8316815260406020820152600061322f60408301846137ad565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261402c57600080fd5b83018035915067ffffffffffffffff82111561404757600080fd5b602001915036819003821315613a2d57600080fd5b60006020828403121561406e57600080fd5b815161264c816139d5565b67ffffffffffffffff82811682821603908082111561342557613425613f71565b808202600082127f8000000000000000000000000000000000000000000000000000000000000000841416156140d2576140d2613f71565b81810583148215176125c3576125c3613f71565b6001600160a01b038516815283602082015261ffff83166040820152608060608201526000613ea56080830184613888565b7fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008460601b16600482015282601882015260008251614186816038850160208701613864565b9190910160380195945050505050565b86815260ff8616602082015263ffffffff851660408201526001600160a01b038416606082015282608082015260c060a082015260006141d960c0830184613888565b98975050505050505050565b67ffffffffffffffff81811683821601908082111561342557613425613f71565b6001600160a01b03815116825263ffffffff60208201511660208301526040810151604083015267ffffffffffffffff60608201511660608301526000608082015160c0608085015261425c60c0850182613888565b905060a083015184820360a0860152612f638282613888565b6040815260006142886040830185614206565b905082151560208301529392505050565b6040805190810167ffffffffffffffff811182821017156142bc576142bc613ef6565b60405290565b604051601f8201601f1916810167ffffffffffffffff811182821017156142eb576142eb613ef6565b604052919050565b60006040828403121561430557600080fd5b61430d614299565b9050815181526020820151602082015292915050565b60006040828403121561433557600080fd5b61264c83836142f3565b60c081016001600160a01b0380614355856139be565b16835280614365602086016139be565b16602084015280614378604086016139be565b1660408401528061438b606086016139be565b1660608401528061439e608086016139be565b166080840152806143b160a086016139be565b1660a08401525092915050565b63ffffffff848116825260406020808401829052838201859052600092869160608601855b8881101561442357836143f58661370e565b16825282850135614405816139d5565b67ffffffffffffffff168284015293850193908501906001016143e3565b509998505050505050505050565b7fffffffff000000000000000000000000000000000000000000000000000000008660e01b1681527fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008560601b1660048201528360188201528183603883013760009101603801908152949350505050565b6001600160a01b038616815284602082015261ffff8416604082015260806060820152816080820152818360a0830137600081830160a090810191909152601f909201601f19160101949350505050565b60006040828403121561450657600080fd5b61450e614299565b82358152602083013560208201528091505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7fffffffffffffffff0000000000000000000000000000000000000000000000008560c01b1681527fffffffff000000000000000000000000000000000000000000000000000000008460e01b16600882015282600c820152600082516145c381602c850160208701613864565b91909101602c0195945050505050565b818103818111156125c3576125c3613f71565b6080815260006145f96080830186614206565b9050614612602083018580518252602090810151910152565b6001600160a01b0383166060830152949350505050565b60006080828403121561463b57600080fd5b6040516060810181811067ffffffffffffffff8211171561465e5761465e613ef6565b8060405250809150825181526020830151614678816139d5565b602082015261468a84604085016142f3565b60408201525092915050565b6000608082840312156146a857600080fd5b61264c8383614629565b60008060a083850312156146c557600080fd5b6146cf8484614629565b9150608083015167ffffffffffffffff808211156146ec57600080fd5b908401906040828703121561470057600080fd5b614708614299565b825166ffffffffffffff8116811461471f57600080fd5b81526020838101518381111561473457600080fd5b80850194505087601f85011261474957600080fd5b83518381111561475b5761475b613ef6565b61476d82601f19601f840116016142c2565b9350808452888282870101111561478357600080fd5b61479281838601848801613864565b5081019190915292959294509192505050565b600082516147b7818460208701613864565b9190910192915050565b6000602082840312156147d357600080fd5b815161264c81613aea56fea2646970667358221220983323fd5d97d67024d3386ec6ae91ce9566c1ef5d4763ac39256cf8ab2d554664736f6c63430008160033",
|
|
1477
1515
|
"linkReferences": {},
|
|
1478
1516
|
"deployedLinkReferences": {}
|
|
1479
1517
|
}
|