0 txs
14 calls
We do not have the source code for this contract. Sorry for the inconvenience.
We do not have the verified ABI for this contract. Here's what we could infer from the runtime bytecode by using WhatsABI:
functions
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
function signature unknown
events
event signature unknown
event signature unknown
event signature unknown
creation bytecode
0x60e060405234801561000f575f5ffd5b506040516158ea3803806158ea83398101604081905261002e916100d3565b81818080836001600160a01b03811661005a57604051638133abd160e01b815260040160405180910390fd5b6001600160a01b039081166080521660a05250506001600160a01b031660c0525f7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9180546001600160e01b0316600160e11b17905550610104915050565b80516001600160a01b03811681146100ce575f5ffd5b919050565b5f5f604083850312156100e4575f5ffd5b6100ed836100b8565b91506100fb602084016100b8565b90509250929050565b60805160a05160c0516156f86101f25f395f8181612dcb01528181612e1e01528181612fb101526130d501525f818161063d01528181610c0201528181610c7e015281816114030152818161144e0152818161161a0152818161169c0152818161194e015281816119ce01528181611a4c01528181612d2501528181612ed3015281816130040152818161311b015261314101525f8181610483015281816107da01528181610810015281816108b1015281816108e20152818161130a015281816113ab01528181611794015281816118a601528181611aba01528181612028015261207c01526156f85ff3fe608060405234801561000f575f5ffd5b5060043610610179575f3560e01c80637165485d116100d2578063b47b2fb111610088578063dc4c90d311610063578063dc4c90d314610638578063dc98354e1461065f578063e1b4af6914610531575f5ffd5b8063b47b2fb1146104e3578063b6a8b0fa14610531578063c4e833ce14610544575f5ffd5b80639f063efc116100b85780639f063efc146103db578063a70354a114610481578063aaed87a3146104bb575f5ffd5b80637165485d146104395780638e0dc28d1461046e575f5ffd5b8063536aeb721161013257806367e4ac2c1161010d57806367e4ac2c146103b35780636c2bbe7e146103db5780636fe7e6eb14610426575f5ffd5b8063536aeb7214610335578063575e24b4146103485780635e615a6b1461039e575f5ffd5b8063182148ef11610162578063182148ef146101d257806321d0ee70146102de578063259982e514610322575f5ffd5b8063022c0d9f1461017d5780630902f1ac14610192575b5f5ffd5b61019061018b366004614a99565b610672565b005b61019a610af4565b604080516dffffffffffffffffffffffffffff948516815293909216602084015263ffffffff16908201526060015b60405180910390f35b61027a6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506040805160a0810182525f546001600160a01b039081168252600154808216602084015262ffffff740100000000000000000000000000000000000000008204169383019390935277010000000000000000000000000000000000000000000000909204600290810b606083015254909116608082015290565b6040516101c991905f60a0820190506001600160a01b0383511682526001600160a01b03602084015116602083015262ffffff6040840151166040830152606083015160020b60608301526001600160a01b03608084015116608083015292915050565b6102f16102ec366004614b1e565b610bf6565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016101c9565b6102f1610330366004614b1e565b610c72565b610190610343366004614b78565b610ce2565b61035b610356366004614ba1565b611440565b604080517fffffffff000000000000000000000000000000000000000000000000000000009094168452602084019290925262ffffff16908201526060016101c9565b6103a66114c3565b6040516101c99190614bfb565b6103bb611530565b604080516001600160a01b039384168152929091166020830152016101c9565b6103ee6103e9366004614cec565b61160d565b604080517fffffffff0000000000000000000000000000000000000000000000000000000090931683526020830191909152016101c9565b6102f1610434366004614d85565b611690565b6104607f45756c657253776170207631000000000000000000000000000000000000000081565b6040519081526020016101c9565b61046061047c366004614deb565b6116ff565b7f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b0390911681526020016101c9565b6104ce6104c9366004614e30565b6117d1565b604080519283526020830191909152016101c9565b6104f66104f1366004614e67565b611941565b604080517fffffffff000000000000000000000000000000000000000000000000000000009093168352600f9190910b6020830152016101c9565b6102f161053f366004614ee8565b6119c2565b61062b604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018390526080820183905260a0820183905260c0820181905260e0820183905261010082018390526101208201839052610140820152610160810182905261018081018290526101a081019190915290565b6040516101c99190614f42565b6104a37f000000000000000000000000000000000000000000000000000000000000000081565b6102f161066d36600461505c565b611a40565b61067a611ab8565b5f7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9180549091507c0100000000000000000000000000000000000000000000000000000000900463ffffffff16600114610700576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c02000000000000000000000000000000000000000000000000000000001781556dffffffffffffffffffffffffffff861180159061076d57506dffffffffffffffffffffffffffff8511155b6107a3576040517f6b2f218300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df915f6107cd611b58565b90508715610805576108057f000000000000000000000000000000000000000000000000000000000000000082835f01518b8a611c2f565b861561083c5761083c7f00000000000000000000000000000000000000000000000000000000000000008283602001518a8a611c2f565b83156108ab57856001600160a01b03166310d1e85c61085961201c565b8a8a89896040518663ffffffff1660e01b815260040161087d9594939291906150a3565b5f604051808303815f87803b158015610894575f5ffd5b505af11580156108a6573d5f5f3e3d5ffd5b505050505b5f6108da7f000000000000000000000000000000000000000000000000000000000000000083845f01516120f5565b90505f61090c7f00000000000000000000000000000000000000000000000000000000000000008485602001516120f5565b84549091505f908b906109309085906dffffffffffffffffffffffffffff1661511c565b61093a919061512f565b85549091505f908b906109709085906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1661511c565b61097a919061512f565b90506109878583836126c8565b6109bd576040517fd93c670b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b85546dffffffffffffffffffffffffffff9182166e010000000000000000000000000000027fffffffff0000000000000000000000000000000000000000000000000000000090911691909216171784556001600160a01b038816610a2061201c565b855460408051868152602081018690528082018f9052606081018e90526dffffffffffffffffffffffffffff80841660808301526e01000000000000000000000000000090930490921660a0830152516001600160a01b0392909216917f4813b0ad1586a6c47f088a07b488c1eadc58e7e7a9c3f1a71b3f33c5379133aa9181900360c00190a3505082547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c01000000000000000000000000000000000000000000000000000000001790925550505050505050565b5f8080807fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9180549091507c0100000000000000000000000000000000000000000000000000000000900463ffffffff16600203610b7d576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50507fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df91546dffffffffffffffffffffffffffff808216946e010000000000000000000000000000830490911693507c010000000000000000000000000000000000000000000000000000000090910463ffffffff169150565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c59576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c6686868686866127f8565b90505b95945050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cd5576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c66868686868661282b565b7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df915f610d0c611b58565b82549091507c0100000000000000000000000000000000000000000000000000000000900463ffffffff1615610d6e576040517fef65161f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81547bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167c0100000000000000000000000000000000000000000000000000000000178255610120810151670de0b6b3a764000011610df5576040517fde17a3af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8160a00151118015610e0b57505f8160c00151115b610e41576040517fde17a3af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6ec097ce7bc90715b34b9f10000000008160a0015111158015610e7757506ec097ce7bc90715b34b9f10000000008160c0015111155b610ead576040517fde17a3af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b670de0b6b3a76400008160e0015111158015610ed65750670de0b6b3a764000081610100015111155b610f0c576040517fde17a3af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f815f01516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f4c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f709190615142565b90505f82602001516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fd79190615142565b9050806001600160a01b0316826001600160a01b031610611024576040517fd54a47c600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806001600160a01b0316826001600160a01b03167fe9944f93cd869a79abb7a39884b29cf3572456b35cd63ac130a2749a0d90d56d60405160405180910390a3506110749050602084018461517a565b82547fffffffffffffffffffffffffffffffffffff0000000000000000000000000000166dffffffffffffffffffffffffffff919091161782556110be604084016020850161517a565b82546dffffffffffffffffffffffffffff9182166e0100000000000000000000000000009081027fffffffff0000000000000000000000000000ffffffffffffffffffffffffffff8316811780875561112694869492811692811692909217929004166126c8565b61115c576040517fd93c670b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81546dffffffffffffffffffffffffffff16156111fc5781546111c5908290611197906001906dffffffffffffffffffffffffffff16615193565b84546dffffffffffffffffffffffffffff918216916e010000000000000000000000000000909104166126c8565b156111fc576040517fd93c670b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81546e01000000000000000000000000000090046dffffffffffffffffffffffffffff16156112ab5781546112749082906dffffffffffffffffffffffffffff8082169161125f916001916e010000000000000000000000000000900416615193565b6dffffffffffffffffffffffffffff166126c8565b156112ab576040517fd93c670b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80516112b69061285e565b6112c3816020015161285e565b604081810151825191517fd44fee5a0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063d44fee5a906044015f604051808303815f87803b15801561134b575f5ffd5b505af115801561135d573d5f5f3e3d5ffd5b50505050604081810151602083015191517fd44fee5a0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015291811660248301527f0000000000000000000000000000000000000000000000000000000000000000169063d44fee5a906044015f604051808303815f87803b1580156113ec575f5ffd5b505af11580156113fe573d5f5f3e3d5ffd5b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031615905061143b5761143b816129e2565b505050565b5f8080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114a5576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114b28888888888612d98565b925092509250955095509592505050565b60408051610180810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810182905261016081019190915261152b611b58565b905090565b5f5f5f61153b611b58565b9050805f01516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561157c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115a09190615142565b925080602001516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116069190615142565b9150509091565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611671576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611680898989898989896133e0565b9150915097509795505050505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116f3576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c69858585856127f8565b7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9180545f91907c0100000000000000000000000000000000000000000000000000000000900463ffffffff16600203611784576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f61178d611b58565b90506117c67f0000000000000000000000000000000000000000000000000000000000000000826117bf848b8b613414565b888861359c565b979650505050505050565b7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9180545f9182917c0100000000000000000000000000000000000000000000000000000000900463ffffffff16600203611857576040517f0f2e5b6c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f611860611b58565b60408181015190517f1647292a0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523060248201529192507f00000000000000000000000000000000000000000000000000000000000000001690631647292a90604401602060405180830381865afa1580156118eb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061190f91906151b9565b61191f575f5f9350935050611939565b6119338161192e838989613414565b6137e5565b93509350505b509250929050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146119a5576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6119b38888888888886133e0565b91509150965096945050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611a25576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611a338787878787876127f8565b90505b9695505050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611aa3576040517fae18210a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611aae848484613cb5565b90505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0381163303611aec5750565b7f1f8b5215000000000000000000000000000000000000000000000000000000005f52306004523360245234604452608060645236608452365f60a4375f3660a401525f5f601f19601f36011660a4015f34855af13d5f5f3e808015611b545760403d036040f35b3d5ffd5b60408051610180810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810191909152610180361015611bf4576040517fa7c1249900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611c22367ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe808101815f6151d4565b81019061152b9190615283565b60408085015190517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f918291908616906370a0823190602401602060405180830381865afa158015611c96573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611cba9190615346565b90508015611d47576040517f07a2d13a000000000000000000000000000000000000000000000000000000008152600481018290526001600160a01b038616906307a2d13a90602401602060405180830381865afa158015611d1e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d429190615346565b611d49565b5f5b9150508015611e80575f818410611d605781611d62565b835b6040808801519051602481018390526001600160a01b038681166044830152828116606483015292935091891691631f8b52159188915f9060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb460af9400000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152611e2f949392919060040161538b565b5f604051808303815f875af1158015611e4a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e7191908101906153c1565b50611e7c818561512f565b9350505b82156120145760408581015190517fc368516c0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015285821660248201529087169063c368516c906044015f604051808303815f87803b158015611eed575f5ffd5b505af1158015611eff573d5f5f3e3d5ffd5b50505050856001600160a01b0316631f8b52158587604001515f8787604051602401611f3e9291909182526001600160a01b0316602082015260400190565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f4b3fd14800000000000000000000000000000000000000000000000000000000179052517fffffffff0000000000000000000000000000000000000000000000000000000060e087901b168152611fd0949392919060040161538b565b5f604051808303815f875af1158015611feb573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261201291908101906153c1565b505b505050505050565b5f336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681036120f0576040517f18503a1e0000000000000000000000000000000000000000000000000000000081525f60048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906318503a1e906024016040805180830381865afa1580156120c8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120ec9190615455565b5090505b919050565b5f5f826001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612133573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121579190615142565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529091505f906001600160a01b038316906370a0823190602401602060405180830381865afa1580156121b7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121db9190615346565b9050805f036121ee575f92505050611ab1565b5f670de0b6b3a7640000866101200151836122099190615482565b61221391906154c6565b90505f670de0b6b3a7640000876101400151836122309190615482565b61223a91906154c6565b905080156122765761016087015161225d906001600160a01b0386169083613d38565b612267818461512f565b9250612273818361512f565b91505b5060408681015190517f47cfdac40000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015286821660248201525f918916906347cfdac490604401602060405180830381865afa1580156122e3573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061230791906151b9565b1561253e5760408781015190517fd283e75f0000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201525f9188169063d283e75f90602401602060405180830381865afa158015612370573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906123949190615346565b90505f876001600160a01b031663acb708158387116123b357866123b5565b835b8b604001516040518363ffffffff1660e01b81526004016123e99291909182526001600160a01b0316602082015260400190565b6020604051808303815f875af1158015612405573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124299190615346565b9050612435818661512f565b9450612441818361512f565b915061244d818461511c565b9250815f0361253b576040808a0151815160048082526024820184526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f869e50c70000000000000000000000000000000000000000000000000000000017905292517f1f8b52150000000000000000000000000000000000000000000000000000000081526001600160a01b038e1693631f8b5215936124f7938e9391925f920161538b565b5f604051808303815f875af1158015612512573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261253991908101906153c1565b505b50505b82156126a55760408781015190517f6e553f65000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b03918216602482015290871690636e553f65906044016020604051808303815f875af19250505080156125cd575060408051601f3d908101601f191682019092526125ca91810190615346565b60015b612696573d8080156125fa576040519150601f19603f3d011682016040523d82523d5f602084013e6125ff565b606091505b507fca0985cf0000000000000000000000000000000000000000000000000000000061262a826154d9565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614819061268c576040517f83428ad40000000000000000000000000000000000000000000000000000000081526004016126839190615545565b60405180910390fd5b505f935050612698565b505b6126a2838261511c565b90505b8181116126b2575f6126bc565b6126bc828261512f565b98975050505050505050565b5f6dffffffffffffffffffffffffffff8311806126f257506dffffffffffffffffffffffffffff82115b156126fe57505f611ab1565b83606001516dffffffffffffffffffffffffffff1683106127895783608001516dffffffffffffffffffffffffffff16821061273c57506001611ab1565b61277f828560c001518660a0015187608001516dffffffffffffffffffffffffffff1688606001516dffffffffffffffffffffffffffff16896101000151613dac565b8310159050611ab1565b83608001516dffffffffffffffffffffffffffff168210156127ac57505f611ab1565b6127ee838560a001518660c0015187606001516dffffffffffffffffffffffffffff1688608001516dffffffffffffffffffffffffffff168960e00151613dac565b8210159050611ab1565b5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f6040517f8ae7315a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f816001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561289b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128bf9190615142565b90505f826001600160a01b031663c52249836040518163ffffffff1660e01b8152600401602060405180830381865afa1580156128fe573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129229190615142565b90506001600160a01b0381166129475761143b6001600160a01b038316845f19613e58565b61295c6001600160a01b038316825f19613e58565b6040517f87517c450000000000000000000000000000000000000000000000000000000081526001600160a01b03838116600483015284811660248301526044820181905265ffffffffffff60648301528216906387517c45906084015f604051808303815f87803b1580156129d0575f5ffd5b505af1158015612012573d5f5f3e3d5ffd5b612ad230612acd604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018390526080820183905260a0820183905260c0820181905260e0820183905261010082018390526101208201839052610140820152610160810182905261018081018290526101a081019190915290565b613f1b565b5f815f01516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b12573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b369190615142565b90505f82602001516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612b79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b9d9190615142565b90505f64e8d4a51000846101200151612bb691906154c6565b6040805160a080820183526001600160a01b038781168084528782166020850181905262ffffff8781168688018190526001606088018190523060809098018890525f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000908116871790915581547fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff740100000000000000000000000000000000000000009094027fffffffffffffffffff000000000000000000000000000000000000000000000090911690951794909417918216770100000000000000000000000000000000000000000000001790819055600280549094168817845597517f6276cbbe0000000000000000000000000000000000000000000000000000000081526004810194909452841660248401529386901c909316604482015260b89490941c90910b606484015260848301919091526c0100000000000000000000000060a48301529192507f000000000000000000000000000000000000000000000000000000000000000090911690636276cbbe9060c4016020604051808303815f875af1158015612d6d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612d919190615557565b5050505050565b5f5f5f5f612da4611b58565b90505f80808060208b013581138015612e1957612dc460208d0135615572565b9150612e127f0000000000000000000000000000000000000000000000000000000000000000878e5f016020810190612dfd91906155a8565b8f60200135612e0b90615572565b600161359c565b9350612e65565b612e5b7f0000000000000000000000000000000000000000000000000000000000000000878e5f016020810190612e5091906155a8565b8f602001355f61359c565b91508b6020013593505b80612ea957612ea4612e7685614084565b612e7f906155c3565b612e8884614084565b6fffffffffffffffffffffffffffffffff1660809190911b1790565b612ec7565b612ec7612eb583614084565b612ebe86614084565b612e88906155c3565b92506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016630b0d9c09612f0560208f018f6155a8565b612f21578e6020016020810190612f1c91906155ff565b612f33565b8e5f016020810190612f3391906155ff565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b039091166004820152306024820152604481018590526064015f604051808303815f87803b158015612f96575f5ffd5b505af1158015612fa8573d5f5f3e3d5ffd5b50505050612ff87f0000000000000000000000000000000000000000000000000000000000000000878e5f016020810190612fe391906155a8565b612ff15788602001516120f5565b88516120f5565b94506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663a584119461303660208f018f6155a8565b613051578e5f01602081019061304c91906155ff565b613064565b8e602001602081019061306491906155ff565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b1681526001600160a01b0390911660048201526024015f604051808303815f87803b1580156130ba575f5ffd5b505af11580156130cc573d5f5f3e3d5ffd5b5050505061313f7f0000000000000000000000000000000000000000000000000000000000000000878e5f01602081019061310791906155a8565b613112578851613118565b88602001515b877f0000000000000000000000000000000000000000000000000000000000000000611c2f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af115801561319c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131c09190615346565b5050505f6131eb7fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9190565b90505f6131fb60208d018d6155a8565b61322157815461321c9085906dffffffffffffffffffffffffffff1661512f565b61323e565b815461323e9086906dffffffffffffffffffffffffffff1661511c565b90505f61324e60208e018e6155a8565b156132875782546132829086906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1661512f565b6132b6565b82546132b69087906e01000000000000000000000000000090046dffffffffffffffffffffffffffff1661511c565b90506dffffffffffffffffffffffffffff82118015906132e457506dffffffffffffffffffffffffffff8111155b61331a576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6133258783836126c8565b61335b576040517fd93c670b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b82546dffffffffffffffffffffffffffff9283167fffffffff00000000000000000000000000000000000000000000000000000000909116176e01000000000000000000000000000091909216021790557f575e24b4000000000000000000000000000000000000000000000000000000009c909b505f9a5098505050505050505050565b5f5f6040517f0a85dc2900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f845f01516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613455573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134799190615142565b90505f85602001516001600160a01b03166338d52e0f6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156134bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134e09190615142565b9050816001600160a01b0316856001600160a01b03161480156135145750806001600160a01b0316846001600160a01b0316145b156135225760019250613593565b806001600160a01b0316856001600160a01b03161480156135545750816001600160a01b0316846001600160a01b0316145b15613561575f9250613593565b6040517f4617192b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50509392505050565b5f825f036135ab57505f610c69565b60408581015190517f1647292a0000000000000000000000000000000000000000000000000000000081526001600160a01b03918216600482015230602482015290871690631647292a90604401602060405180830381865afa158015613614573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061363891906151b9565b61366e576040517f715756a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6dffffffffffffffffffffffffffff8311156136b6576040517f7468c7a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61012085015182156136ec57670de0b6b3a76400006136d58286615482565b6136df91906154c6565b6136e9908561512f565b93505b5f5f6136f888886137e5565b915091505f6137098988888b6140c9565b9050851561375c578287111580156137215750818111155b613757576040517f7468c7a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6137a2565b81871115801561376c5750828111155b6137a2576040517f7468c7a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b856137d8576137b984670de0b6b3a764000061512f565b6137cb82670de0b6b3a7640000615482565b6137d591906154c6565b90505b9998505050505050505050565b6040820151825160208401515f9283927fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df91926dffffffffffffffffffffffffffff928392909186896138375781613839565b825b6040517f402d267d0000000000000000000000000000000000000000000000000000000081526001600160a01b0386811660048301529192505f9183169063402d267d90602401602060405180830381865afa15801561389b573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138bf9190615346565b6040517fd283e75f0000000000000000000000000000000000000000000000000000000081526001600160a01b03878116600483015284169063d283e75f90602401602060405180830381865afa15801561391c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139409190615346565b61394a919061511c565b905086811015613958578096505b50505f896139775786546dffffffffffffffffffffffffffff1661399c565b86546e01000000000000000000000000000090046dffffffffffffffffffffffffffff165b905084816dffffffffffffffffffffffffffff1610156139ca57806dffffffffffffffffffffffffffff1694505b505f896139d757826139d9565b815b90505f816001600160a01b031663961be3916040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a18573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a3c9190615346565b905085811015613a4a578095505b5f826001600160a01b03166318e22d986040518163ffffffff1660e01b81526004016040805180830381865afa158015613a86573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613aaa919061562b565b9150505f613abb8261ffff1661440d565b905080846001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015613afa573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b1e9190615346565b11613b9257836001600160a01b03166347bd37186040518163ffffffff1660e01b8152600401602060405180830381865afa158015613b5f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b839190615346565b613b8d908261512f565b613b94565b5f5b905082811115613ba15750815b6040517f70a082310000000000000000000000000000000000000000000000000000000081526001600160a01b0388811660048301528516906307a2d13a9082906370a0823190602401602060405180830381865afa158015613c06573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c2a9190615346565b6040518263ffffffff1660e01b8152600401613c4891815260200190565b602060405180830381865afa158015613c63573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613c879190615346565b613c91908261511c565b905087811015613c9f578097505b50969950949750505050505050505b9250929050565b6001545f9077010000000000000000000000000000000000000000000000900460020b15613d0f576040517f0dc149f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b507fdc98354e000000000000000000000000000000000000000000000000000000009392505050565b6040516001600160a01b0383811660248301526044820183905261143b91859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff8381831617835250505050614433565b5f5f613dd988860388028685670de0b6b3a764000003028a8602018a670de0b6b3a76400000260016144b8565b90507effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811115613e34576040517f35278d1200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8560018703820181613e4857613e48615499565b0484019150509695505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f095ea7b300000000000000000000000000000000000000000000000000000000179052613ed784826144fa565b613f15576040516001600160a01b0384811660248301525f6044830152613f0b91869182169063095ea7b390606401613d65565b613f158482614433565b50505050565b8051151561200083161515141580613f3f5750602081015115156110008316151514155b80613f565750604081015115156108008316151514155b80613f6d5750606081015115156104008316151514155b80613f845750608081015115156102008316151514155b80613f9b575060a081015115156101008316151514155b80613fb1575060c0810151151560808316151514155b80613fc7575060e0810151151560408316151514155b80613fde5750610100810151151560208316151514155b80613ff55750610120810151151560108316151514155b8061400c5750610140810151151560088316151514155b806140235750610160810151151560048316151514155b8061403a5750610180810151151560028316151514155b8061405157506101a0810151151560018316151514155b15614080576140807fe65af6a00000000000000000000000000000000000000000000000000000000083614545565b5050565b5f6f8000000000000000000000000000000082106140c5576140c57f93dafdf10000000000000000000000000000000000000000000000000000000061455a565b5090565b5f807fae890085f98619e96ae34ba28d74baa4a4f79785b58fd4afcd3dc0338b79df9160a087015160c0880151606089015160808a015160e08b01516101008c01518654969750949593946dffffffffffffffffffffffffffff938416949284169391929091818116916e0100000000000000000000000000009004165f808d1561425d578c156141dc5761416e8f6dffffffffffffffffffffffffffff861661511c565b91508782101561418d57614186828b8b8b8b8b613dac565b905061419e565b61419b828a8c8a8c8a614562565b90505b80836dffffffffffffffffffffffffffff16116141bb575f6141d5565b6141d5816dffffffffffffffffffffffffffff851661512f565b9b506143fa565b6141f68f6dffffffffffffffffffffffffffff851661511c565b9050868110156142155761420e818a8c8a8c8a613dac565b9150614226565b614223818b8b8b8b8b614562565b91505b81846dffffffffffffffffffffffffffff1611614243575f6141d5565b6141d5826dffffffffffffffffffffffffffff861661512f565b8c1561432d578e836dffffffffffffffffffffffffffff16116142ac576040517f7468c7a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6142c68f6dffffffffffffffffffffffffffff851661512f565b9050868110156142e5576142de818a8c8a8c8a613dac565b91506142f6565b6142f3818b8b8b8b8b614562565b91505b836dffffffffffffffffffffffffffff168211614313575f6141d5565b6141d56dffffffffffffffffffffffffffff85168361512f565b8e846dffffffffffffffffffffffffffff1611614376576040517f7468c7a800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6143908f6dffffffffffffffffffffffffffff861661512f565b9150878210156143af576143a8828b8b8b8b8b613dac565b90506143c0565b6143bd828a8c8a8c8a614562565b90505b826dffffffffffffffffffffffffffff1681116143dd575f6143f7565b6143f76dffffffffffffffffffffffffffff84168261512f565b9b505b5050505050505050505050949350505050565b5f815f0361441d57505f19919050565b6064603f8316600a0a600684901c020492915050565b5f5f60205f8451602086015f885af180614452576040513d5f823e3d81fd5b50505f513d91508115614469578060011415614476565b6001600160a01b0384163b155b15613f15576040517f5274afe70000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401612683565b5f6144e56144c583614792565b80156144e057505f84806144db576144db615499565b868809115b151590565b6144f08686866147be565b610c69919061511c565b5f5f5f5f60205f8651602088015f8a5af192503d91505f5190508280156145395750811561452b5780600114614539565b5f866001600160a01b03163b115b93505050505b92915050565b815f526001600160a01b03811660045260245ffd5b805f5260045ffd5b5f5f5f5f5f61458089670de0b6b3a764000002888d038c60016144b8565b90507ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c000060028702018802670de0b6b3a76400008183030594506145da87670de0b6b3a7640000038a8b02670de0b6b3a764000060016144b8565b93506145f48760040285670de0b6b3a764000060016144b8565b925050505f5f84121561460f5761460a84615572565b614611565b835b90505f5f5f6ec097ce7bc90715b34b9f100000000084101561465d578384029250848301915061464082614874565b905081818202106146515780614656565b806001015b90506146dd565b5f614667856149d9565b905061467f61467682876154c6565b868360016144b8565b935061468b8180615482565b61469590876154c6565b61469f908561511c565b92506146aa83614874565b9150826146b78380615482565b106146c257816146cd565b6146cd82600161511c565b91506146d98183615482565b9150505b5f5f881361471f5761470d6146f2838761511c565b670de0b6b3a76400006147068d6002615482565b60016144b8565b61471890600161511c565b905061476c565b614729828661511c565b6001614735848861511c565b61473f919061512f565b61474a896002615482565b614754919061511c565b61475e91906154c6565b61476990600161511c565b90505b8b8110614783578b98505050505050505050611a36565b9750611a369650505050505050565b5f60028260038111156147a7576147a761565c565b6147b19190615689565b60ff166001149050919050565b5f838302815f1985870982811083820303915050805f036147f2578382816147e8576147e8615499565b0492505050611ab1565b808411614809576148096003851502601118614a28565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f60018211614881575090565b81600170010000000000000000000000000000000082106148a75760809190911c9060401b5b6801000000000000000082106148c25760409190911c9060201b5b64010000000082106148d95760209190911c9060101b5b6201000082106148ee5760109190911c9060081b5b61010082106149025760089190911c9060041b5b601082106149155760049190911c9060021b5b600482106149215760011b5b600302600190811c9081858161493957614939615499565b048201901c9050600181858161495157614951615499565b048201901c9050600181858161496957614969615499565b048201901c9050600181858161498157614981615499565b048201901c9050600181858161499957614999615499565b048201901c905060018185816149b1576149b1615499565b048201901c90506149d08185816149ca576149ca615499565b04821190565b90039392505050565b5f805b82156149fb5760019290921c91806149f3816156aa565b9150506149dc565b6080811115614a1d575f614a1060808361512f565b6001901b9250614a229050565b600191505b50919050565b634e487b715f52806020526024601cfd5b6001600160a01b0381168114614a4d575f5ffd5b50565b80356120f081614a39565b5f5f83601f840112614a6b575f5ffd5b50813567ffffffffffffffff811115614a82575f5ffd5b602083019150836020828501011115613cae575f5ffd5b5f5f5f5f5f60808688031215614aad575f5ffd5b85359450602086013593506040860135614ac681614a39565b9250606086013567ffffffffffffffff811115614ae1575f5ffd5b614aed88828901614a5b565b969995985093965092949392505050565b5f60a08284031215614a22575f5ffd5b5f60808284031215614a22575f5ffd5b5f5f5f5f5f6101608688031215614b33575f5ffd5b8535614b3e81614a39565b9450614b4d8760208801614afe565b9350614b5c8760c08801614b0e565b925061014086013567ffffffffffffffff811115614ae1575f5ffd5b5f6040828403128015614b89575f5ffd5b509092915050565b5f60608284031215614a22575f5ffd5b5f5f5f5f5f6101408688031215614bb6575f5ffd5b8535614bc181614a39565b9450614bd08760208801614afe565b9350614bdf8760c08801614b91565b925061012086013567ffffffffffffffff811115614ae1575f5ffd5b81516001600160a01b0316815261018081016020830151614c2760208401826001600160a01b03169052565b506040830151614c4260408401826001600160a01b03169052565b506060830151614c6460608401826dffffffffffffffffffffffffffff169052565b506080830151614c8660808401826dffffffffffffffffffffffffffff169052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100830151610100830152610120830151610120830152610140830151610140830152610160830151614ce56101608401826001600160a01b03169052565b5092915050565b5f5f5f5f5f5f5f6101a0888a031215614d03575f5ffd5b8735614d0e81614a39565b9650614d1d8960208a01614afe565b9550614d2c8960c08a01614b0e565b94506101408801359350610160880135925061018088013567ffffffffffffffff811115614d58575f5ffd5b614d648a828b01614a5b565b989b979a50959850939692959293505050565b8060020b8114614a4d575f5ffd5b5f5f5f5f6101008587031215614d99575f5ffd5b8435614da481614a39565b9350614db38660208701614afe565b925060c0850135614dc381614a39565b915060e0850135614dd381614d77565b939692955090935050565b8015158114614a4d575f5ffd5b5f5f5f5f60808587031215614dfe575f5ffd5b8435614e0981614a39565b93506020850135614e1981614a39565b9250604085013591506060850135614dd381614dde565b5f5f60408385031215614e41575f5ffd5b8235614e4c81614a39565b91506020830135614e5c81614a39565b809150509250929050565b5f5f5f5f5f5f6101608789031215614e7d575f5ffd5b8635614e8881614a39565b9550614e978860208901614afe565b9450614ea68860c08901614b91565b9350610120870135925061014087013567ffffffffffffffff811115614eca575f5ffd5b614ed689828a01614a5b565b979a9699509497509295939492505050565b5f5f5f5f5f5f6101208789031215614efe575f5ffd5b8635614f0981614a39565b9550614f188860208901614afe565b945060c0870135935060e0870135925061010087013567ffffffffffffffff811115614eca575f5ffd5b8151151581526101c081016020830151614f60602084018215159052565b506040830151614f74604084018215159052565b506060830151614f88606084018215159052565b506080830151614f9c608084018215159052565b5060a0830151614fb060a084018215159052565b5060c0830151614fc460c084018215159052565b5060e0830151614fd860e084018215159052565b50610100830151614fee61010084018215159052565b5061012083015161500461012084018215159052565b5061014083015161501a61014084018215159052565b5061016083015161503061016084018215159052565b5061018083015161504661018084018215159052565b506101a0830151614ce56101a084018215159052565b5f5f5f60e0848603121561506e575f5ffd5b833561507981614a39565b92506150888560208601614afe565b915060c084013561509881614a39565b809150509250925092565b6001600160a01b038616815284602082015283604082015260806060820152816080820152818360a08301375f81830160a090810191909152601f909201601f19160101949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b8082018082111561453f5761453f6150ef565b8181038181111561453f5761453f6150ef565b5f60208284031215615152575f5ffd5b8151611ab181614a39565b80356dffffffffffffffffffffffffffff811681146120f0575f5ffd5b5f6020828403121561518a575f5ffd5b611ab18261515d565b6dffffffffffffffffffffffffffff828116828216039081111561453f5761453f6150ef565b5f602082840312156151c9575f5ffd5b8151611ab181614dde565b5f5f858511156151e2575f5ffd5b838611156151ee575f5ffd5b5050820193919092039150565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b604051610180810167ffffffffffffffff8111828210171561524c5761524c6151fb565b60405290565b604051601f8201601f1916810167ffffffffffffffff8111828210171561527b5761527b6151fb565b604052919050565b5f610180828403128015615295575f5ffd5b5061529e615228565b6152a783614a50565b81526152b560208401614a50565b60208201526152c660408401614a50565b60408201526152d76060840161515d565b60608201526152e86080840161515d565b608082015260a0838101359082015260c0808401359082015260e080840135908201526101008084013590820152610120808401359082015261014080840135908201526153396101608401614a50565b6101608201529392505050565b5f60208284031215615356575f5ffd5b5051919050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6001600160a01b03851681526001600160a01b0384166020820152826040820152608060608201525f610c66608083018461535d565b5f602082840312156153d1575f5ffd5b815167ffffffffffffffff8111156153e7575f5ffd5b8201601f810184136153f7575f5ffd5b805167ffffffffffffffff811115615411576154116151fb565b6154246020601f19601f84011601615252565b818152856020838501011115615438575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f5f60408385031215615466575f5ffd5b825161547181614a39565b6020840151909250614e5c81614dde565b808202811582820484141761453f5761453f6150ef565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f826154d4576154d4615499565b500490565b805160208201517fffffffff0000000000000000000000000000000000000000000000000000000081169190600482101561553e577fffffffff00000000000000000000000000000000000000000000000000000000808360040360031b1b82161692505b5050919050565b602081525f611ab1602083018461535d565b5f60208284031215615567575f5ffd5b8151611ab181614d77565b5f7f800000000000000000000000000000000000000000000000000000000000000082036155a2576155a26150ef565b505f0390565b5f602082840312156155b8575f5ffd5b8135611ab181614dde565b5f81600f0b7fffffffffffffffffffffffffffffffff8000000000000000000000000000000081036155f7576155f76150ef565b5f0392915050565b5f6020828403121561560f575f5ffd5b8135611ab181614a39565b805161ffff811681146120f0575f5ffd5b5f5f6040838503121561563c575f5ffd5b6156458361561a565b91506156536020840161561a565b90509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b5f60ff83168061569b5761569b615499565b8060ff84160691505092915050565b5f5f1982036156bb576156bb6150ef565b506001019056fea264697066735822122005bd6d205fe61d11b8309ce774c3b690231375a8ad6e605d14a5715ba2012a0164736f6c634300081b00330000000000000000000000005301c7dd20bd945d2013b48ed0dee3a284ca8989000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b