3 txs
884 calls
constructor
constructor(address _assimFactory, address _config, address _weth, address _verifier)
functions
assimilatorFactory
viewfunction assimilatorFactory() view returns (address)
config
viewfunction config() view returns (address)
curves
viewfunction curves(bytes32) view returns (address)
curveVerifier
viewfunction curveVerifier() view returns (address)
generateCurveID
purefunction generateCurveID(address _base, address _quote) pure returns (tuple)
getCurve
viewfunction getCurve(address _baseCurrency, address _quoteCurrency) view returns (address)
getProtocolFee
viewfunction getProtocolFee() view returns (int128)
getProtocolTreasury
viewfunction getProtocolTreasury() view returns (address)
isKnownCurve
viewfunction isKnownCurve(address) view returns (bool)
owner
viewfunction owner() view returns (address)
wETH
viewfunction wETH() view returns (address)
newCurve
nonpayablefunction newCurve(tuple _info, bool overwrite) returns (address)
newCurve
nonpayablefunction newCurve(tuple _info) returns (address)
renounceOwnership
nonpayablefunction renounceOwnership()
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
NewCurve
event NewCurve(address indexed caller, bytes32 indexed id, address indexed curve)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x610100604052348015610010575f5ffd5b50604051615f18380380615f1883398101604081905261002f916101c3565b61003833610159565b6001600160a01b0384163b6100945760405162461bcd60e51b815260206004820152601460248201527f696e76616c69642d617373696d466163746f727900000000000000000000000060448201526064015b60405180910390fd5b6001600160a01b0384811660805283163b6100e25760405162461bcd60e51b815260206004820152600e60248201526d696e76616c69642d636f6e66696760901b604482015260640161008b565b6001600160a01b0380841660a05282811660e05281166101445760405162461bcd60e51b815260206004820152601560248201527f696e76616c69642d637572766556657269666965720000000000000000000000604482015260640161008b565b6001600160a01b031660c05250610214915050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146101be575f5ffd5b919050565b5f5f5f5f608085870312156101d6575f5ffd5b6101df856101a8565b93506101ed602086016101a8565b92506101fb604086016101a8565b9150610209606086016101a8565b905092959194509250565b60805160a05160c05160e051615c936102855f395f61028901525f8181610150015281816106080152610ed401525f81816101a901528181610302015281816103880152610d6f01525f818160f901528181610742015281816107bf0152818161091501526109900152615c935ff3fe608060405234801561000f575f5ffd5b50600436106100f0575f3560e01c80639611f3d911610093578063b89c0ba911610063578063b89c0ba914610243578063d8e3215314610271578063f242862114610284578063f2fde38b146102ab575f5ffd5b80639611f3d9146101db578063a5a41031146101e3578063a960c120146101fe578063b483079b14610230575f5ffd5b806366903e80116100ce57806366903e8014610172578063715018a61461019a57806379502c55146101a45780638da5cb5b146101cb575f5ffd5b80630d82a78d146100f45780634ca98f68146101385780635381eec81461014b575b5f5ffd5b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61011b6101463660046110c4565b6102be565b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b61011b6101803660046110fb565b60016020525f90815260409020546001600160a01b031681565b6101a26102ec565b005b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b5f546001600160a01b031661011b565b61011b6102ff565b6101eb610385565b604051600f9190910b815260200161012f565b61022061020c366004611112565b60026020525f908152604090205460ff1681565b604051901515815260200161012f565b61011b61023e3660046112ff565b610406565b6102566102513660046110c4565b610411565b6040805182518152602092830151928101929092520161012f565b61011b61027f366004611346565b610498565b61011b7f000000000000000000000000000000000000000000000000000000000000000081565b6101a26102b9366004611112565b610f72565b5f5f6102ca8484610411565b515f908152600160205260409020546001600160a01b03169150505b92915050565b6102f4610feb565b6102fd5f611044565b565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561035c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610380919061138a565b905090565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a5a410316040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103e2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038091906113a5565b5f6102e6825f610498565b6040805180820182525f80825260209182018190528251808401845281815280830191825283516001600160a01b039687168185018190529590961686850181905284518088038601815260609788018652805190850120825284518085019190915280850195909552835180860385018152949095019092528251920191909120905290565b60608201515f906001600160a01b03166104f95760405162461bcd60e51b815260206004820152601b60248201527f71756f74652d63757272656e63792d7a65726f2d61646472657373000000000060448201526064015b60405180910390fd5b82606001516001600160a01b031683604001516001600160a01b0316036105625760405162461bcd60e51b815260206004820152601a60248201527f71756f74652d626173652d63757272656e636965732d73616d6500000000000060448201526064016104f0565b8260a00151836080015161057691906113c5565b670de0b6b3a7640000146105be5760405162461bcd60e51b815260206004820152600f60248201526e696e76616c69642d7765696768747360881b60448201526064016104f0565b60408084015160c0850151606086015160e08701519351633927bf9960e21b81526001600160a01b03938416600482015291831660248301528216604482015291811660648301527f0000000000000000000000000000000000000000000000000000000000000000169063e49efe6490608401602060405180830381865afa15801561064d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061067191906113e4565b610679575f5ffd5b5f61068c84604001518560600151610411565b90508261070f5780515f908152600160205260409020546001600160a01b03161515806106d457506020808201515f908152600190915260409020546001600160a01b031615155b1561070f5760405162461bcd60e51b815260206004820152600b60248201526a706169722d65786973747360a81b60448201526064016104f0565b60408481015160608601519151634206a40560e11b81526001600160a01b03918216600482015291811660248301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063840d480a90604401602060405180830381865afa158015610789573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad919061138a565b90506001600160a01b0381166108e2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6ff16b286606001518760c00151886040015189604001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561083b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061085f91906113ff565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260ff90911660648201526084016020604051808303815f875af11580156108bb573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108df919061138a565b90505b60608501516040808701519051634206a40560e11b81526001600160a01b03928316600482015290821660248201525f917f0000000000000000000000000000000000000000000000000000000000000000169063840d480a90604401602060405180830381865afa15801561095a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061097e919061138a565b90506001600160a01b038116610ab3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d6ff16b287604001518860e0015189606001518a606001516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a0c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3091906113ff565b6040516001600160e01b031960e087901b1681526001600160a01b03948516600482015292841660248401529216604482015260ff90911660648201526084016020604051808303815f875af1158015610a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab0919061138a565b90505b60408051600a80825261016082019092525f91602082016101408036833750506040805160028082526060820183529394505f93909250906020830190803683370190505090508760400151825f81518110610b1157610b1161141f565b60200260200101906001600160a01b031690816001600160a01b0316815250508382600181518110610b4557610b4561141f565b60200260200101906001600160a01b031690816001600160a01b031681525050876040015182600281518110610b7d57610b7d61141f565b60200260200101906001600160a01b031690816001600160a01b0316815250508382600381518110610bb157610bb161141f565b60200260200101906001600160a01b031690816001600160a01b031681525050876040015182600481518110610be957610be961141f565b60200260200101906001600160a01b031690816001600160a01b031681525050876060015182600581518110610c2157610c2161141f565b60200260200101906001600160a01b031690816001600160a01b0316815250508282600681518110610c5557610c5561141f565b60200260200101906001600160a01b031690816001600160a01b031681525050876060015182600781518110610c8d57610c8d61141f565b60200260200101906001600160a01b031690816001600160a01b0316815250508282600881518110610cc157610cc161141f565b60200260200101906001600160a01b031690816001600160a01b031681525050876060015182600981518110610cf957610cf961141f565b60200260200101906001600160a01b031690816001600160a01b0316815250508760800151815f81518110610d3057610d3061141f565b6020026020010181815250508760a0015181600181518110610d5457610d5461141f565b6020026020010181815250505f885f015189602001518484307f0000000000000000000000000000000000000000000000000000000000000000604051610d9a90611093565b610da99695949392919061149b565b604051809103905ff080158015610dc2573d5f5f3e3d5ffd5b506101008a01516101208b01516101408c01516101608d01516101808e0151604051631b05177160e31b8152600481019590955260248501939093526044840191909152606483015260848201529091506001600160a01b0382169063d828bb889060a4015f604051808303815f87803b158015610e3e575f5ffd5b505af1158015610e50573d5f5f3e3d5ffd5b505087515f90815260016020818152604080842080546001600160a01b03199081166001600160a01b038a8116918217909355848f01518752838720805490921681179091558552600290925292839020805460ff19169092179091558c82015160608e01519251631deb447f60e21b8152908216600482015291811660248301527f00000000000000000000000000000000000000000000000000000000000000001692506377ad11fc91506044015f604051808303815f87803b158015610f17575f5ffd5b505af1158015610f29573d5f5f3e3d5ffd5b505087516040516001600160a01b038516935090915033907fe7a19de9e8788cc07c144818f2945144acd6234f790b541aa1010371c8b2a73b905f90a498975050505050505050565b610f7a610feb565b6001600160a01b038116610fdf5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104f0565b610fe881611044565b50565b5f546001600160a01b031633146102fd5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104f0565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6147168061154883390190565b6001600160a01b0381168114610fe8575f5ffd5b80356110bf816110a0565b919050565b5f5f604083850312156110d5575f5ffd5b82356110e0816110a0565b915060208301356110f0816110a0565b809150509250929050565b5f6020828403121561110b575f5ffd5b5035919050565b5f60208284031215611122575f5ffd5b813561112d816110a0565b9392505050565b634e487b7160e01b5f52604160045260245ffd5b6040516101a0810167ffffffffffffffff8111828210171561116c5761116c611134565b60405290565b5f82601f830112611181575f5ffd5b813567ffffffffffffffff81111561119b5761119b611134565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156111ca576111ca611134565b6040528181528382016020018510156111e1575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6101a0828403121561120e575f5ffd5b611216611148565b9050813567ffffffffffffffff81111561122e575f5ffd5b61123a84828501611172565b825250602082013567ffffffffffffffff811115611256575f5ffd5b61126284828501611172565b602083015250611274604083016110b4565b6040820152611285606083016110b4565b60608201526080828101359082015260a080830135908201526112aa60c083016110b4565b60c08201526112bb60e083016110b4565b60e082015261010082810135908201526101208083013590820152610140808301359082015261016080830135908201526101809182013591810191909152919050565b5f6020828403121561130f575f5ffd5b813567ffffffffffffffff811115611325575f5ffd5b611331848285016111fd565b949350505050565b8015158114610fe8575f5ffd5b5f5f60408385031215611357575f5ffd5b823567ffffffffffffffff81111561136d575f5ffd5b611379858286016111fd565b92505060208301356110f081611339565b5f6020828403121561139a575f5ffd5b815161112d816110a0565b5f602082840312156113b5575f5ffd5b815180600f0b811461112d575f5ffd5b808201808211156102e657634e487b7160e01b5f52601160045260245ffd5b5f602082840312156113f4575f5ffd5b815161112d81611339565b5f6020828403121561140f575f5ffd5b815160ff8116811461112d575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b5f8151808452602084019350602083015f5b82811015611491578151865260209586019590910190600101611473565b5093949350505050565b60c081525f6114ad60c0830189611433565b82810360208401526114bf8189611433565b838103604085015287518082526020808a019350909101905f5b818110156115005783516001600160a01b03168352602093840193909201916001016114d9565b505083810360608501526115148188611461565b9250505061152d60808301856001600160a01b03169052565b6001600160a01b03831660a083015297965050505050505056fe60c06040526010805462ffffff191662010000179055348015610020575f5ffd5b5060405161471638038061471683398101604081905261003f916103e1565b306080526001600160a01b0382166100a75760405162461bcd60e51b815260206004820152602160248201527f43757276652f637572766520666163746f7279207a65726f20616464726573736044820152602160f81b606482015260840160405180910390fd5b600a80546001600160a01b03191633179055600b6100c5878261053f565b50600c6100d2868261053f565b50601080546301000000600160b81b03191663010000006001600160a01b038581169190910291909117909155601180546001600160a01b03191691831691909117905560405133905f907f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee67908290a3816001600160a01b031663f24286216040518163ffffffff1660e01b8152600401602060405180830381865afa15801561017e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101a291906105f9565b6001600160a01b031660a052604051635931eef160e11b81527322222fd8fd35c8ff1a416dc47fd92540c06fb35d9063b263dde2906101f2905f90600e90600f90600d908b908b90600401610653565b5f6040518083038186803b158015610208575f5ffd5b505af415801561021a573d5f5f3e3d5ffd5b505050505050505050506106d1565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b038111828210171561026557610265610229565b604052919050565b5f82601f83011261027c575f5ffd5b81516001600160401b0381111561029557610295610229565b6102a8601f8201601f191660200161023d565b8181528460208386010111156102bc575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b5f6001600160401b038211156102f0576102f0610229565b5060051b60200190565b80516001600160a01b0381168114610310575f5ffd5b919050565b5f82601f830112610324575f5ffd5b8151610337610332826102d8565b61023d565b8082825260208201915060208360051b860101925085831115610358575f5ffd5b602085015b8381101561037c5761036e816102fa565b83526020928301920161035d565b5095945050505050565b5f82601f830112610395575f5ffd5b81516103a3610332826102d8565b8082825260208201915060208360051b8601019250858311156103c4575f5ffd5b602085015b8381101561037c5780518352602092830192016103c9565b5f5f5f5f5f5f60c087890312156103f6575f5ffd5b86516001600160401b0381111561040b575f5ffd5b61041789828a0161026d565b602089015190975090506001600160401b03811115610434575f5ffd5b61044089828a0161026d565b604089015190965090506001600160401b0381111561045d575f5ffd5b61046989828a01610315565b606089015190955090506001600160401b03811115610486575f5ffd5b61049289828a01610386565b9350506104a1608088016102fa565b91506104af60a088016102fa565b90509295509295509295565b600181811c908216806104cf57607f821691505b6020821081036104ed57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561053a57805f5260205f20601f840160051c810160208510156105185750805b601f840160051c820191505b81811015610537575f8155600101610524565b50505b505050565b81516001600160401b0381111561055857610558610229565b61056c8161056684546104bb565b846104f3565b6020601f82116001811461059e575f83156105875750848201515b5f19600385901b1c1916600184901b178455610537565b5f84815260208120601f198516915b828110156105cd57878501518255602094850194600190920191016105ad565b50848210156105ea57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60208284031215610609575f5ffd5b610612826102fa565b9392505050565b5f8151808452602084019350602083015f5b8281101561064957815186526020958601959091019060010161062b565b5093949350505050565b5f60c0820188835287602084015286604084015285606084015260c0608084015280855180835260e0850191506020870192505f5b818110156106af5783516001600160a01b0316835260209384019390920191600101610688565b505083810360a08501526106c38186610619565b9a9950505050505050505050565b60805160a051613fde6107385f395f8181610335015281816112f30152818161136d015281816115d9015281816116b4015281816117dd0152818161181b01528181612035015281816120a0015281816120e0015261300c01525f6133ae0152613fde5ff3fe608060405260043610610241575f3560e01c806370a0823111610134578063a8e9d528116100b3578063caa6fea411610078578063caa6fea414610760578063d828bb881461077e578063dd62ed3e1461079d578063de3e2e24146107e1578063e5cf8a5c14610800578063f2fde38b1461081f575f5ffd5b8063a8e9d528146106c5578063a9059cbb146106e4578063c0046e3914610703578063c7cdea3714610722578063c912ff7a14610741575f5ffd5b80638334278d116100f95780638334278d14610635578063838e6a22146106545780638da5cb5b1461067357806395d89b4114610692578063a3f5d8cc146106a6575f5ffd5b806370a08231146105295780637165485d1461055d57806372b4129a146105d857806379a390a5146105f75780637e932d3214610616575f5ffd5b806323b872dd116101c0578063525d0da711610185578063525d0da71461047d5780635872278a1461049c578063595520c7146104bb5780636919ba27146104f75780636f2ef95b1461050a575f5ffd5b806323b872dd146103cf578063313ce567146103ee5780633cae77f714610414578063441a3e701461044b5780634fe5da711461046a575f5ffd5b80630b2583c8116102065780630b2583c8146102fa578063107c279f1461032757806318160ddd1461036d5780631a686502146103815780631f276b6e146103a3575f5ffd5b806301ffc9a71461024c5780630501d55614610280578063054f7d9c146102a157806306fdde03146102ba578063095ea7b3146102db575f5ffd5b3661024857005b5f5ffd5b348015610257575f5ffd5b5061026b6102663660046136ec565b61083e565b60405190151581526020015b60405180910390f35b34801561028b575f5ffd5b5061029f61029a366004613723565b61088f565b005b3480156102ac575f5ffd5b5060105461026b9060ff1681565b3480156102c5575f5ffd5b506102ce6109a0565b604051610277919061373e565b3480156102e6575f5ffd5b5061026b6102f5366004613787565b610a2c565b348015610305575f5ffd5b506103196103143660046137b1565b610b0a565b604051908152602001610277565b348015610332575f5ffd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b039091168152602001610277565b348015610378575f5ffd5b50600754610319565b34801561038c575f5ffd5b50610395610e24565b604051610277929190613838565b3480156103ae575f5ffd5b506103c26103bd366004613850565b610ea5565b6040516102779190613870565b3480156103da575f5ffd5b5061026b6103e9366004613882565b610fc7565b3480156103f9575f5ffd5b50610402601281565b60405160ff9091168152602001610277565b34801561041f575f5ffd5b5061035561042e3660046138c0565b6001600160a01b039081165f908152600560205260409020541690565b348015610456575f5ffd5b506103c2610465366004613850565b6110d5565b6103956104783660046138db565b61115b565b348015610488575f5ffd5b50610319610497366004613882565b611932565b3480156104a7575f5ffd5b506103956104b63660046138db565b611a75565b3480156104c6575f5ffd5b506104cf611e54565b604080519586526020860194909452928401919091526060830152608082015260a001610277565b61031961050536600461391a565b611ee2565b348015610515575f5ffd5b5061039561052436600461394c565b6121db565b348015610534575f5ffd5b506103196105433660046138c0565b6001600160a01b03165f9081526008602052604090205490565b348015610568575f5ffd5b505f5460015460025460075461059b93600f81810b94600160801b92839004820b9481830b9493909104820b92910b9086565b60408051600f97880b815295870b602087015293860b9385019390935290840b606084015290920b608082015260a081019190915260c001610277565b3480156105e3575f5ffd5b506103196105f23660046137b1565b612421565b348015610602575f5ffd5b5061029f610611366004613963565b61267b565b348015610621575f5ffd5b5061029f610630366004613723565b6127bf565b348015610640575f5ffd5b5061035561064f36600461394c565b6128c0565b34801561065f575f5ffd5b5061031961066e366004613882565b6128e8565b34801561067e575f5ffd5b50600a54610355906001600160a01b031681565b34801561069d575f5ffd5b506102ce6129e8565b3480156106b1575f5ffd5b5060105461026b9062010000900460ff1681565b3480156106d0575f5ffd5b506103556106df36600461394c565b6129f5565b3480156106ef575f5ffd5b5061026b6106fe366004613787565b612a04565b34801561070e575f5ffd5b5061035561071d36600461394c565b612ab7565b34801561072d575f5ffd5b506103c261073c366004613850565b612ac6565b34801561074c575f5ffd5b5061029f61075b3660046138c0565b612b91565b34801561076b575f5ffd5b5060105461026b90610100900460ff1681565b348015610789575f5ffd5b5061029f6107983660046139bc565b612d77565b3480156107a8575f5ffd5b506103196107b73660046139f3565b6001600160a01b039182165f90815260096020908152604080832093909416825291909152205490565b3480156107ec575f5ffd5b506103196107fb366004613a2a565b612eb8565b34801561080b575f5ffd5b506103c261081a36600461394c565b613104565b34801561082a575f5ffd5b5061029f6108393660046138c0565b61322a565b5f6301ffc9a760e01b6001600160e01b03198316148061086e57506307f5828d60e41b6001600160e01b03198316145b8061088957506336372b0760e01b6001600160e01b03198316145b92915050565b600a546001600160a01b031633148061092c575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108f3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109179190613a62565b6001600160a01b0316336001600160a01b0316145b6109515760405162461bcd60e51b815260040161094890613a7d565b60405180910390fd5b60405181151581527fa44450e52bea871e50cfee059fbe027c26ff43fd7534c06b7de61d90b58ab3c19060200160405180910390a1601080549115156101000261ff0019909216919091179055565b600b80546109ad90613ab4565b80601f01602080910402602001604051908101604052809291908181526020018280546109d990613ab4565b8015610a245780601f106109fb57610100808354040283529160200191610a24565b820191905f5260205f20905b815481529060010190602001808311610a0757829003601f168201915b505050505081565b6010545f9062010000900460ff16610a565760405162461bcd60e51b815260040161094890613aec565b6010805462ff000019169055610a6a6133a3565b60405163e60ac42960e01b81525f60048201526001600160a01b038416602482015260448101839052736ee60644b83bc048d9137b0fe328744546bfb1359063e60ac429906064015b602060405180830381865af4158015610ace573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af29190613b16565b6010805462ff00001916620100001790559392505050565b5f81804210610b2b5760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b7b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9f9190613b16565b15610bbc5760405162461bcd60e51b815260040161094890613b68565b60105460ff1615610bdf5760405162461bcd60e51b815260040161094890613bc5565b610be76133a3565b601054610100900460ff1615610c0f5760405162461bcd60e51b815260040161094890613c15565b60105462010000900460ff16610c375760405162461bcd60e51b815260040161094890613aec565b6010805462ff00001916908190556040805160a0810182526001600160a01b038a8116825289811660208084018290528385018b905233606085018190526301000000909604909216608084015283516370a0823160e01b81526004810195909552925191935f93926370a08231926024808401939192918290030181865afa158015610cc6573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610cea9190613c72565b60405163fd17568b60e01b81529091507351fdb00985168ffee4033ec99286eb1bc29b76c19063fd17568b90610d28905f9086908290600401613cc6565b602060405180830381865af4158015610d43573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d679190613c72565b5060608201516040516370a0823160e01b81526001600160a01b0391821660048201525f918a16906370a0823190602401602060405180830381865afa158015610db3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dd79190613c72565b9050610de38282613cfe565b945086851015610e055760405162461bcd60e51b815260040161094890613d11565b50506010805462ff000019166201000017905550909695505050505050565b604051633745793960e11b81525f600482018190529060609073d6a079fb361624d9021816b694b6a0b3f58a0f3690636e8af272906024015f60405180830381865af4158015610e76573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610e9d9190810190613df8565b915091509091565b601054606090610100900460ff16610ecf5760405162461bcd60e51b815260040161094890613c15565b81804210610eef5760405162461bcd60e51b815260040161094890613b31565b60105462010000900460ff16610f175760405162461bcd60e51b815260040161094890613aec565b6010805462ff000019169055610f2b6133a3565b60405163eaadf2b560e01b81525f6004820181905260248201869052604482015273cef1faf438fde21c253afead5e8709f8a3cc17039063eaadf2b5906064015b5f60405180830381865af4158015610f86573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610fad9190810190613e3d565b9150506010805462ff000019166201000017905592915050565b6010545f9062010000900460ff16610ff15760405162461bcd60e51b815260040161094890613aec565b6010805462ff0000191690556110056133a3565b601054610100900460ff161561102d5760405162461bcd60e51b815260040161094890613c15565b6040516303a90f6960e31b81525f60048201526001600160a01b0380861660248301528416604482015260648101839052736ee60644b83bc048d9137b0fe328744546bfb13590631d487b4890608401602060405180830381865af4158015611098573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110bc9190613b16565b6010805462ff0000191662010000179055949350505050565b6060818042106110f75760405162461bcd60e51b815260040161094890613b31565b60105462010000900460ff1661111f5760405162461bcd60e51b815260040161094890613aec565b6010805462ff0000191690556111336133a3565b601054610100900460ff1615610f2b5760405162461bcd60e51b815260040161094890613c15565b5f60608280421061117e5760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111ce573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f29190613b16565b1561120f5760405162461bcd60e51b815260040161094890613b68565b60105460ff16156112325760405162461bcd60e51b815260040161094890613bc5565b60105462010000900460ff1661125a5760405162461bcd60e51b815260040161094890613aec565b6010805462ff00001916905561126e6133a3565b601054610100900460ff16156112965760405162461bcd60e51b815260040161094890613c15565b5f89116112e05760405162461bcd60e51b815260206004820152601860248201527743757276652f6465706f7369745f62656c6f775f7a65726f60401b6044820152606401610948565b6112e9896121db565b80935081945050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004015f604051808303818588803b15801561134a575f5ffd5b505af115801561135c573d5f5f3e3d5ffd5b506113999350506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016915030905033346133d9565b6113a161369a565b89815260208101899052604081018890526080810187905260a08101869052825183905f906113d2576113d2613e6f565b60200260200101518160c0018181525050826001815181106113f6576113f6613e6f565b6020026020010151816060018181525050600f5f8154811061141a5761141a613e6f565b5f9182526020822001546001600160a01b031660e0830152600f805490919061144557611445613e6f565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611493573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906114b79190613c72565b610100820152600f805460019081106114d2576114d2613e6f565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611520573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115449190613c72565b610120820152604051629d2ea960e41b815273cef1faf438fde21c253afead5e8709f8a3cc1703906309d2ea9090611582905f908590600401613e83565b5f60405180830381865af415801561159c573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526115c39190810190613df8565b600480549296509094505f916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190839061160957611609613e6f565b5f918252602091829020015460408051632495a59960e01b815290516001600160a01b0390921692632495a599926004808401938290030181865afa158015611654573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116789190613a62565b6001600160a01b0316036116b257835f8151811061169857611698613e6f565b6020026020010151346116ab9190613cfe565b90506117ca565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165f6004016001815481106116f2576116f2613e6f565b5f918252602091829020015460408051632495a59960e01b815290516001600160a01b0390921692632495a599926004808401938290030181865afa15801561173d573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117619190613a62565b6001600160a01b031603611782578360018151811061169857611698613e6f565b60405162461bcd60e51b815260206004820152601860248201527f43757276652f4465706f73697420455448206661696c656400000000000000006044820152606401610948565b8015611911576118056001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163330846133d9565b604051632e1a7d4d60e01b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d906024015f604051808303815f87803b158015611864575f5ffd5b505af1158015611876573d5f5f3e3d5ffd5b50506040515f925033915083908381818185875af1925050503d805f81146118b9576040519150601f19603f3d011682016040523d82523d5f602084013e6118be565b606091505b505090508061190f5760405162461bcd60e51b815260206004820152601960248201527f43757276652f455448207472616e73666572206661696c6564000000000000006044820152606401610948565b505b5050506010805462ff00001916620100001790559097909650945050505050565b601154604080516306a8e1cd60e41b815290515f926001600160a01b031691636a8e1cd09160048083019260209291908290030181865afa158015611979573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061199d9190613b16565b156119ba5760405162461bcd60e51b815260040161094890613b68565b60105460ff16156119dd5760405162461bcd60e51b815260040161094890613bc5565b6040516315be82e960e21b81525f60048201526001600160a01b03808616602483015284166044820152606481018390527351fdb00985168ffee4033ec99286eb1bc29b76c1906356fa0ba4906084015b602060405180830381865af4158015611a49573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a6d9190613c72565b949350505050565b5f606082804210611a985760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ae8573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b0c9190613b16565b15611b295760405162461bcd60e51b815260040161094890613b68565b60105460ff1615611b4c5760405162461bcd60e51b815260040161094890613bc5565b60105462010000900460ff16611b745760405162461bcd60e51b815260040161094890613aec565b6010805462ff000019169055611b886133a3565b601054610100900460ff1615611bb05760405162461bcd60e51b815260040161094890613c15565b5f8911611bfa5760405162461bcd60e51b815260206004820152601860248201527743757276652f6465706f7369745f62656c6f775f7a65726f60401b6044820152606401610948565b611c03896121db565b9093509150611c1061369a565b89815260208101899052604081018890526080810187905260a08101869052825183905f90611c4157611c41613e6f565b60200260200101518160c001818152505082600181518110611c6557611c65613e6f565b6020026020010151816060018181525050600f5f81548110611c8957611c89613e6f565b5f9182526020822001546001600160a01b031660e0830152600f8054909190611cb457611cb4613e6f565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611d02573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d269190613c72565b610100820152600f80546001908110611d4157611d41613e6f565b5f918252602090912001546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015611d8f573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611db39190613c72565b610120820152604051629d2ea960e41b815273cef1faf438fde21c253afead5e8709f8a3cc1703906309d2ea9090611df1905f908590600401613e83565b5f60405180830381865af4158015611e0b573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e329190810190613df8565b6010805462ff0000191662010000179055909b909a5098505050505050505050565b5f5f5f5f5f7322222fd8fd35c8ff1a416dc47fd92540c06fb35d63faa50b5d5f6040518263ffffffff1660e01b8152600401611e9291815260200190565b60a060405180830381865af4158015611ead573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611ed19190613f0c565b945094509450945094509091929394565b5f81804210611f035760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f53573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190613b16565b15611f945760405162461bcd60e51b815260040161094890613b68565b60105460ff1615611fb75760405162461bcd60e51b815260040161094890613bc5565b611fbf6133a3565b601054610100900460ff1615611fe75760405162461bcd60e51b815260040161094890613c15565b60105462010000900460ff1661200f5760405162461bcd60e51b815260040161094890613aec565b6010805462ff00001916905560408051630d0e30db60e41b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163d0e30db09134916004808201925f9290919082900301818588803b15801561207d575f5ffd5b505af115801561208f573d5f5f3e3d5ffd5b506120cc9350506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016915030905033346133d9565b6040805160a0810182526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811682528781166020830152348284015233606083015260105463010000009004166080820152905163fd17568b60e01b81527351fdb00985168ffee4033ec99286eb1bc29b76c19063fd17568b90612160905f9085908290600401613cc6565b602060405180830381865af415801561217b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061219f9190613c72565b9250848310156121c15760405162461bcd60e51b815260040161094890613d11565b50506010805462ff00001916620100001790559392505050565b5f606060115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa15801561222e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906122529190613b16565b1561226f5760405162461bcd60e51b815260040161094890613b68565b60105460ff16156122925760405162461bcd60e51b815260040161094890613bc5565b6040805160028082526060820183525f92839291906020830190803683370190505060405163822f39d560e01b81525f60048201526024810187905290915073cef1faf438fde21c253afead5e8709f8a3cc17039063822f39d5906044015f60405180830381865af415801561230a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526123319190810190613df8565b90925090505f82612351876ec097ce7bc90715b34b9f1000000000613f48565b61235b9190613f5f565b90506ec097ce7bc90715b34b9f100000000081835f8151811061238057612380613e6f565b60200260200101516123929190613f48565b61239c9190613f5f565b825f815181106123ae576123ae613e6f565b6020026020010181815250506ec097ce7bc90715b34b9f100000000081836001815181106123de576123de613e6f565b60200260200101516123f09190613f48565b6123fa9190613f5f565b8260018151811061240d5761240d613e6f565b602090810291909101015250939492505050565b5f818042106124425760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612492573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906124b69190613b16565b156124d35760405162461bcd60e51b815260040161094890613b68565b60105460ff16156124f65760405162461bcd60e51b815260040161094890613bc5565b6124fe6133a3565b601054610100900460ff16156125265760405162461bcd60e51b815260040161094890613c15565b60105462010000900460ff1661254e5760405162461bcd60e51b815260040161094890613aec565b6010805462ff00001916908190556040805160a0810182526001600160a01b038a811682528981166020830152818301889052336060830152630100000090930490921660808301525163498e2a2560e11b81527351fdb00985168ffee4033ec99286eb1bc29b76c19063931c544a906125ce905f908590600401613f7e565b602060405180830381865af41580156125e9573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061260d9190613c72565b92508583111561265f5760405162461bcd60e51b815260206004820152601d60248201527f43757276652f61626f76652d6d61782d6f726967696e2d616d6f756e740000006044820152606401610948565b50506010805462ff000019166201000017905595945050505050565b600a546001600160a01b0316331480612718575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126df573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127039190613a62565b6001600160a01b0316336001600160a01b0316145b6127345760405162461bcd60e51b815260040161094890613a7d565b604051632e6ce08560e11b81525f60048201526001600160a01b03808616602483015280851660448301528084166064830152821660848201527322222fd8fd35c8ff1a416dc47fd92540c06fb35d90635cd9c10a9060a4015f6040518083038186803b1580156127a3575f5ffd5b505af41580156127b5573d5f5f3e3d5ffd5b5050505050505050565b600a546001600160a01b031633148061285c575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612823573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128479190613a62565b6001600160a01b0316336001600160a01b0316145b6128785760405162461bcd60e51b815260040161094890613a7d565b60405181151581527f7c029deaca9b6c66abb68e5f874a812822f0fcaa52a890f980a7ab1afb5edba69060200160405180910390a16010805460ff1916911515919091179055565b600f81815481106128cf575f80fd5b5f918252602090912001546001600160a01b0316905081565b601154604080516306a8e1cd60e41b815290515f926001600160a01b031691636a8e1cd09160048083019260209291908290030181865afa15801561292f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129539190613b16565b156129705760405162461bcd60e51b815260040161094890613b68565b60105460ff16156129935760405162461bcd60e51b815260040161094890613bc5565b604051637dba2aed60e11b81525f60048201526001600160a01b03808616602483015284166044820152606481018390527351fdb00985168ffee4033ec99286eb1bc29b76c19063fb7455da90608401611a2e565b600c80546109ad90613ab4565b600e81815481106128cf575f80fd5b6010545f9062010000900460ff16612a2e5760405162461bcd60e51b815260040161094890613aec565b6010805462ff000019169055612a426133a3565b601054610100900460ff1615612a6a5760405162461bcd60e51b815260040161094890613c15565b60405163a4bcd45960e01b81525f60048201526001600160a01b038416602482015260448101839052736ee60644b83bc048d9137b0fe328744546bfb1359063a4bcd45990606401610ab3565b600d81815481106128cf575f80fd5b606081804210612ae85760405162461bcd60e51b815260040161094890613b31565b60105462010000900460ff16612b105760405162461bcd60e51b815260040161094890613aec565b6010805462ff000019169055612b246133a3565b601054610100900460ff1615612b4c5760405162461bcd60e51b815260040161094890613c15565b60405163eaadf2b560e01b81525f6004820152602481018590526001604482015273cef1faf438fde21c253afead5e8709f8a3cc17039063eaadf2b590606401610f6c565b600a546001600160a01b0316331480612c2e575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612bf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612c199190613a62565b6001600160a01b0316336001600160a01b0316145b612c4a5760405162461bcd60e51b815260040161094890613a7d565b5f5b600e54811015612d5057600e8181548110612c6957612c69613e6f565b5f918252602090912001546001600160a01b0390811690831603612ccf5760405162461bcd60e51b815260206004820152601d60248201527f43757276652f63616e6e6f742d64656c6574652d6e756d6572616972650000006044820152606401610948565b600f8181548110612ce257612ce2613e6f565b5f918252602090912001546001600160a01b0390811690831603612d485760405162461bcd60e51b815260206004820152601b60248201527f43757276652f63616e6e6f742d64656c6574652d7265736572766500000000006044820152606401610948565b600101612c4c565b506001600160a01b03165f90815260056020526040902080546001600160a81b0319169055565b600a546001600160a01b0316331480612e14575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa158015612ddb573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dff9190613a62565b6001600160a01b0316336001600160a01b0316145b612e305760405162461bcd60e51b815260040161094890613a7d565b60405163231888b760e01b81525f60048201526024810186905260448101859052606481018490526084810183905260a481018290527322222fd8fd35c8ff1a416dc47fd92540c06fb35d9063231888b79060c4015f6040518083038186803b158015612e9b575f5ffd5b505af4158015612ead573d5f5f3e3d5ffd5b505050505050505050565b5f81804210612ed95760405162461bcd60e51b815260040161094890613b31565b60115f9054906101000a90046001600160a01b03166001600160a01b0316636a8e1cd06040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f29573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f4d9190613b16565b15612f6a5760405162461bcd60e51b815260040161094890613b68565b60105460ff1615612f8d5760405162461bcd60e51b815260040161094890613bc5565b612f956133a3565b601054610100900460ff1615612fbd5760405162461bcd60e51b815260040161094890613c15565b60105462010000900460ff16612fe55760405162461bcd60e51b815260040161094890613aec565b6010805462ff00001916908190556040805160a0810182526001600160a01b0389811682527f000000000000000000000000000000000000000000000000000000000000000081166020830152818301899052336060830152630100000090930490921660808301525163fd17568b60e01b81527351fdb00985168ffee4033ec99286eb1bc29b76c19063fd17568b90613088905f908590600190600401613cc6565b602060405180830381865af41580156130a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130c79190613c72565b9250848310156130e95760405162461bcd60e51b815260040161094890613d11565b50506010805462ff0000191662010000179055949350505050565b601154604080516306a8e1cd60e41b815290516060926001600160a01b031691636a8e1cd09160048083019260209291908290030181865afa15801561314c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131709190613b16565b1561318d5760405162461bcd60e51b815260040161094890613b68565b60105460ff16156131b05760405162461bcd60e51b815260040161094890613bc5565b6040516330771ac760e11b81525f60048201526024810183905273cef1faf438fde21c253afead5e8709f8a3cc1703906360ee358e906044015f60405180830381865af4158015613203573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526108899190810190613e3d565b600a546001600160a01b03163314806132c7575060115f9054906101000a90046001600160a01b03166001600160a01b0316639611f3d96040518163ffffffff1660e01b8152600401602060405180830381865afa15801561328e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b29190613a62565b6001600160a01b0316336001600160a01b0316145b6132e35760405162461bcd60e51b815260040161094890613a7d565b6001600160a01b0381166133485760405162461bcd60e51b815260206004820152602660248201527f43757276652f6e65772d6f776e65722d63616e6e6f742d62652d7a65726f2d6160448201526564647265737360d01b6064820152608401610948565b600a546040516001600160a01b038084169216907f0d18b5fd22306e373229b9439188228edca81207d1667f604daf6cef8aa3ee67905f90a3600a80546001600160a01b0319166001600160a01b0392909216919091179055565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146133d7575f5ffd5b565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052613433908590613439565b50505050565b5f61348d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135119092919063ffffffff16565b905080515f14806134ad5750808060200190518101906134ad9190613b16565b61350c5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610948565b505050565b6060611a6d84845f85613526565b9392505050565b6060824710156135875760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610948565b5f5f866001600160a01b031685876040516135a29190613f92565b5f6040518083038185875af1925050503d805f81146135dc576040519150601f19603f3d011682016040523d82523d5f602084013e6135e1565b606091505b50915091506135f2878383876135fd565b979650505050505050565b6060831561366b5782515f03613664576001600160a01b0385163b6136645760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610948565b5081611a6d565b611a6d83838151156136805781518083602001fd5b8060405162461bcd60e51b8152600401610948919061373e565b6040518061014001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f81526020015f6001600160a01b031681526020015f81526020015f81525090565b5f602082840312156136fc575f5ffd5b81356001600160e01b03198116811461351f575f5ffd5b8015158114613720575f5ffd5b50565b5f60208284031215613733575f5ffd5b813561351f81613713565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6001600160a01b0381168114613720575f5ffd5b5f5f60408385031215613798575f5ffd5b82356137a381613773565b946020939093013593505050565b5f5f5f5f5f60a086880312156137c5575f5ffd5b85356137d081613773565b945060208601356137e081613773565b94979496505050506040830135926060810135926080909101359150565b5f8151808452602084019350602083015f5b8281101561382e578151865260209586019590910190600101613810565b5093949350505050565b828152604060208201525f611a6d60408301846137fe565b5f5f60408385031215613861575f5ffd5b50508035926020909101359150565b602081525f61351f60208301846137fe565b5f5f5f60608486031215613894575f5ffd5b833561389f81613773565b925060208401356138af81613773565b929592945050506040919091013590565b5f602082840312156138d0575f5ffd5b813561351f81613773565b5f5f5f5f5f5f60c087890312156138f0575f5ffd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b5f5f5f6060848603121561392c575f5ffd5b833561393781613773565b95602085013595506040909401359392505050565b5f6020828403121561395c575f5ffd5b5035919050565b5f5f5f5f60808587031215613976575f5ffd5b843561398181613773565b9350602085013561399181613773565b925060408501356139a181613773565b915060608501356139b181613773565b939692955090935050565b5f5f5f5f5f60a086880312156139d0575f5ffd5b505083359560208501359550604085013594606081013594506080013592509050565b5f5f60408385031215613a04575f5ffd5b8235613a0f81613773565b91506020830135613a1f81613773565b809150509250929050565b5f5f5f5f60808587031215613a3d575f5ffd5b8435613a4881613773565b966020860135965060408601359560600135945092505050565b5f60208284031215613a72575f5ffd5b815161351f81613773565b60208082526019908201527f43757276652f63616c6c65722d69732d6e6f742d6f776e657200000000000000604082015260600190565b600181811c90821680613ac857607f821691505b602082108103613ae657634e487b7160e01b5f52602260045260245ffd5b50919050565b60208082526010908201526f10dd5c9d994bdc994b595b9d195c995960821b604082015260600190565b5f60208284031215613b26575f5ffd5b815161351f81613713565b60208082526018908201527f43757276652f74782d646561646c696e652d7061737365640000000000000000604082015260600190565b60208082526039908201527f43757276652f66726f7a656e2d676c6f62616c6c792d6f6e6c792d616c6c6f7760408201527f696e672d70726f706f7274696f6e616c2d776974686472617700000000000000606082015260800190565b60208082526030908201527f43757276652f66726f7a656e2d6f6e6c792d616c6c6f77696e672d70726f706f60408201526f7274696f6e616c2d776974686472617760801b606082015260800190565b6020808252603d908201527f43757276652f656d657267656e63792d6f6e6c792d616c6c6f77696e672d656d60408201527f657267656e63792d70726f706f7274696f6e616c2d7769746864726177000000606082015260800190565b5f60208284031215613c82575f5ffd5b5051919050565b80516001600160a01b0390811683526020808301518216908401526040808301519084015260608083015182169084015260809182015116910152565b83815260e08101613cda6020830185613c89565b82151560c0830152949350505050565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561088957610889613cea565b6020808252601d908201527f43757276652f62656c6f772d6d696e2d7461726765742d616d6f756e74000000604082015260600190565b634e487b7160e01b5f52604160045260245ffd5b5f82601f830112613d6b575f5ffd5b815167ffffffffffffffff811115613d8557613d85613d48565b8060051b604051601f19603f830116810181811067ffffffffffffffff82111715613db257613db2613d48565b604052918252602081850181019290810186841115613dcf575f5ffd5b6020860192505b83831015613dee578251815260209283019201613dd6565b5095945050505050565b5f5f60408385031215613e09575f5ffd5b8251602084015190925067ffffffffffffffff811115613e27575f5ffd5b613e3385828601613d5c565b9150509250929050565b5f60208284031215613e4d575f5ffd5b815167ffffffffffffffff811115613e63575f5ffd5b611a6d84828501613d5c565b634e487b7160e01b5f52603260045260245ffd5b5f6101608201905083825282516020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015160c083015260c083015160e083015260e0830151613eec6101008401826001600160a01b03169052565b506101008301516101208301526101208301516101408301529392505050565b5f5f5f5f5f60a08688031215613f20575f5ffd5b5050835160208501516040860151606087015160809097015192989197509594509092509050565b808202811582820484141761088957610889613cea565b5f82613f7957634e487b7160e01b5f52601260045260245ffd5b500490565b82815260c0810161351f6020830184613c89565b5f82518060208501845e5f92019182525091905056fea2646970667358221220da77d3df8adb211ba23dbd595f0c84763de5e4633e3b339b3c1500ffa0ebafee64736f6c634300081b0033a2646970667358221220f9cafd8035816ec307f560fc2d069f72146364d26e953ebd9e7e2768101f54a364736f6c634300081b0033000000000000000000000000b401cdb088066b928d4459ef5a67fe86b068168f00000000000000000000000090a3913ff4c5149e6c4eb808687e595f258ce499000000000000000000000000420000000000000000000000000000000000000600000000000000000000000021f878ed69f2945d6bf157f6fdbdd473ab93b79b