VeChain
Explorer
Mainnet
Search
Networks
Main
Test
Contract
0x0f3dE5…93f5
Summary
Transactions
Transfers
Address
0x0f3dE5B3aE6891936d7367E80011Ff8De6cE93f5
VET
0.00
VET
VTHO
0.00
VTHO
Master
0xa3568b1f8Eb9E56A01beAcAD660244BF46be18F5
Deployer
0xa3568b1f8Eb9E56A01beAcAD660244BF46be18F5
Code
0x6080604052600436106103285760003560e01c80637a9e5e4b116101a5578063a9059cbb116100ec578063d505accf11610095578063ec35bef31161006f578063ec35bef314610a5d578063f1127ed814610a7d578063f23a6e6114610ac9578063f6ecbf0414610b0f57600080fd5b8063d505accf146109b8578063dd62ed3e146109d8578063e2ceba6414610a3d57600080fd5b8063bf7e214f116100c6578063bf7e214f1461093b578063c0c53b8b14610978578063c3cda5201461099857600080fd5b8063a9059cbb1461088a578063ad3cb1cc146108aa578063bc197c81146108f357600080fd5b806391ddadf41161014e578063966a23bd11610128578063966a23bd146108285780639ab24eb01461083d578063a9048d071461085d57600080fd5b806391ddadf4146107ba578063950c7822146107e657806395d89b411461081357600080fd5b806384b0196e1161017f57806384b0196e1461075d5780638e539e8c146107855780638fb36037146107a557600080fd5b80637a9e5e4b146107085780637ecebe00146107285780638456cb591461074857600080fd5b806342966c68116102745780635c975abb1161021d57806370a08231116101f757806370a082311461069357806371ca337d146106b357806371ca44aa146106c857806379cc6790146106e857600080fd5b80635c975abb14610612578063629bf891146106495780636fcfff451461065e57600080fd5b806352d1902d1161024e57806352d1902d1461056d578063587cde1e146105825780635c19a95c146105f257600080fd5b806342966c68146105255780634bf5d7e9146105455780634f1ef2861461055a57600080fd5b806323b872dd116102d65780633a46b1a8116102b05780633a46b1a8146104d05780633f4ba83a146104f057806340c10f191461050557600080fd5b806323b872dd1461047f578063313ce5671461049f5780633644e515146104bb57600080fd5b8063095ea7b311610307578063095ea7b3146103ab578063150b7a02146103cb57806318160ddd1461044157600080fd5b806223de291461032d57806301ffc9a71461035457806306fdde0314610389575b600080fd5b34801561033957600080fd5b5061035261034836600461509e565b5050505050505050565b005b34801561036057600080fd5b5061037461036f36600461514f565b610b24565b60405190151581526020015b60405180910390f35b34801561039557600080fd5b5061039e610c09565b60405161038091906151e1565b3480156103b757600080fd5b506103746103c63660046151f4565b610cc4565b3480156103d757600080fd5b506104106103e6366004615220565b7f150b7a020000000000000000000000000000000000000000000000000000000095945050505050565b6040517fffffffff000000000000000000000000000000000000000000000000000000009091168152602001610380565b34801561044d57600080fd5b507f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace02545b604051908152602001610380565b34801561048b57600080fd5b5061037461049a366004615293565b610cdc565b3480156104ab57600080fd5b5060405160128152602001610380565b3480156104c757600080fd5b50610471610d02565b3480156104dc57600080fd5b506104716104eb3660046151f4565b610d11565b3480156104fc57600080fd5b50610352610dd4565b34801561051157600080fd5b506103526105203660046151f4565b610deb565b34801561053157600080fd5b506103526105403660046152d4565b610ede565b34801561055157600080fd5b5061039e610fb7565b610352610568366004615334565b611048565b34801561057957600080fd5b50610471611063565b34801561058e57600080fd5b506105da61059d3660046153dc565b6001600160a01b0390811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205260409020541690565b6040516001600160a01b039091168152602001610380565b3480156105fe57600080fd5b5061035261060d3660046153dc565b611092565b34801561061e57600080fd5b507fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610374565b34801561065557600080fd5b5061035261109d565b34801561066a57600080fd5b5061067e6106793660046153dc565b6112f0565b60405163ffffffff9091168152602001610380565b34801561069f57600080fd5b506104716106ae3660046153dc565b6112fb565b3480156106bf57600080fd5b50610471611340565b3480156106d457600080fd5b506103526106e336600461548c565b6113e0565b3480156106f457600080fd5b506103526107033660046151f4565b6117ad565b34801561071457600080fd5b506103526107233660046153dc565b61198b565b34801561073457600080fd5b506104716107433660046153dc565b611a6a565b34801561075457600080fd5b50610352611a75565b34801561076957600080fd5b50610772611a86565b6040516103809796959493929190615583565b34801561079157600080fd5b506104716107a03660046152d4565b611b82565b3480156107b157600080fd5b50610410611c29565b3480156107c657600080fd5b506107cf611c9e565b60405165ffffffffffff9091168152602001610380565b3480156107f257600080fd5b506108066108013660046153dc565b611ca8565b604051610380919061560d565b34801561081f57600080fd5b5061039e611da6565b34801561083457600080fd5b50610352611df7565b34801561084957600080fd5b506104716108583660046153dc565b611eb0565b34801561086957600080fd5b5061087d61087836600461566e565b611f22565b60405161038091906156a3565b34801561089657600080fd5b506103746108a53660046151f4565b612071565b3480156108b657600080fd5b5061039e6040518060400160405280600581526020017f352e302e3000000000000000000000000000000000000000000000000000000081525081565b3480156108ff57600080fd5b5061041061090e366004615723565b7fbc197c810000000000000000000000000000000000000000000000000000000098975050505050505050565b34801561094757600080fd5b507ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b03166105da565b34801561098457600080fd5b506103526109933660046157c1565b61207f565b3480156109a457600080fd5b506103526109b3366004615822565b612432565b3480156109c457600080fd5b506103526109d336600461587c565b612508565b3480156109e457600080fd5b506104716109f33660046158ea565b6001600160a01b0391821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b348015610a4957600080fd5b50610352610a583660046153dc565b612693565b348015610a6957600080fd5b506000546105da906001600160a01b031681565b348015610a8957600080fd5b50610a9d610a98366004615935565b6126d6565b60408051825165ffffffffffff1681526020928301516001600160d01b03169281019290925201610380565b348015610ad557600080fd5b50610410610ae4366004615963565b7ff23a6e61000000000000000000000000000000000000000000000000000000009695505050505050565b348015610b1b57600080fd5b506105da6126f4565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f150b7a02000000000000000000000000000000000000000000000000000000001480610bb757507fffffffff0000000000000000000000000000000000000000000000000000000082167f4e2312e000000000000000000000000000000000000000000000000000000000145b80610c0357507fffffffff0000000000000000000000000000000000000000000000000000000082167f01ffc9a700000000000000000000000000000000000000000000000000000000145b92915050565b606060007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b9050806003018054610c40906159df565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6c906159df565b8015610cb95780601f10610c8e57610100808354040283529160200191610cb9565b820191906000526020600020905b815481529060010190602001808311610c9c57829003601f168201915b505050505091505090565b600033610cd281858561278e565b5060019392505050565b600033610cea8582856127a0565b610cf5858585612856565b60019150505b9392505050565b6000610d0c6128e7565b905090565b60007fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0081610d3d611c9e565b90508065ffffffffffff168410610d96576040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004810185905265ffffffffffff821660248201526044015b60405180910390fd5b610dc2610da2856128f1565b6001600160a01b0387166000908152600185016020526040902090612941565b6001600160d01b031695945050505050565b610de1335b6000366129fa565b610de9612bc5565b565b610df3612c37565b600080546040517fda88d5410000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152306024820152604481018390527383a273eb9bd41f212ecf24bd0906a3ee961c29a29063da88d54190606401602060405180830381865af4158015610e76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9a9190615a19565b9050610ea68382612cb8565b610eb08384612d07565b50610eda60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050565b610ee6612c37565b6000546040517f85d9ba910000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152306024820152336044820152606481018290527383a273eb9bd41f212ecf24bd0906a3ee961c29a2906385d9ba919060840160006040518083038186803b158015610f6957600080fd5b505af4158015610f7d573d6000803e3d6000fd5b50505050610f8b3382612e19565b610fb460017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b50565b6060610fc1612e68565b65ffffffffffff16610fd1611c9e565b65ffffffffffff1614611010576040517f6ff0714000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5060408051808201909152601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c74000000602082015290565b611050612e73565b61105982612f43565b610eda8282612f4c565b600061106d61304d565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b33610eda8183612d07565b600080546040517f627447040000000000000000000000000000000000000000000000000000000081526001600160a01b03909116906362744704906111179060040160208082526004908201527f6170707300000000000000000000000000000000000000000000000000000000604082015260600190565b602060405180830381865afa158015611134573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111589190615a32565b90506000816001600160a01b031663c04cff196040518163ffffffff1660e01b8152600401600060405180830381865afa15801561119a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526111c29190810190615a4f565b90506000815167ffffffffffffffff8111156111e0576111e06152ed565b604051908082528060200260200182016040528015611209578160200160208202803683370190505b509050600061121783611f22565b905060005b83518110156112645783818151811061123757611237615ad5565b602002602001015183828151811061125157611251615ad5565b602090810291909101015260010161121c565b506000546040517f98c6b8a900000000000000000000000000000000000000000000000000000000815273b6e19c3ce9f09c8bc5ce219ba9f0c8c438893dfd916398c6b8a9916112c4916001600160a01b03169086908690600401615aeb565b60006040518083038186803b1580156112dc57600080fd5b505af4158015610348573d6000803e3d6000fd5b6000610c03826130af565b6000807f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace005b6001600160a01b0390931660009081526020939093525050604090205490565b600080546040517f61b614c30000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201523060248201527383a273eb9bd41f212ecf24bd0906a3ee961c29a2906361b614c390604401602060405180830381865af41580156113bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c9190615a19565b6113e8612c37565b8051825114611453576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4c656e677468206d69736d6174636800000000000000000000000000000000006044820152606401610d8d565b3360009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4602090815260408083208151815493840281016060908101845292810184815290939192849284918401828280156114d157602002820191906000526020600020905b8154815260200190600101908083116114bd575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561152957602002820191906000526020600020905b815481526020019060010190808311611515575b505050505081525050905060005b8151518110156115d3578160200151818151811061155757611557615ad5565b60200260200101516115867f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b6001016000846000015184815181106115a1576115a1615ad5565b6020026020010151815260200190815260200160002060008282546115c69190615b93565b9091555050600101611537565b506000805b8351811015611692578381815181106115f3576115f3615ad5565b6020026020010151826116069190615ba6565b915083818151811061161a5761161a615ad5565b60200260200101516116497f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b600101600087848151811061166057611660615ad5565b6020026020010151815260200190815260200160002060008282546116859190615ba6565b90915550506001016115d8565b5061169c336112fb565b811115611705576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f496e73756666696369656e742062616c616e636520666f7220766f74696e67006044820152606401610d8d565b6040518060400160405280858152602001848152506117417f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b33600090815260209182526040902082518051919261176592849290910190614fe9565b50602082810151805161177e9260018501920190614fe9565b509050505050610eda60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6117b5612c37565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0160209081526040808320338452909152902054811115611861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f4275726e20616d6f756e74206578636565647320616c6c6f77616e63650000006044820152606401610d8d565b6000546040517f85d9ba910000000000000000000000000000000000000000000000000000000081526001600160a01b0391821660048201523060248201529083166044820152606481018290527383a273eb9bd41f212ecf24bd0906a3ee961c29a2906385d9ba919060840160006040518083038186803b1580156118e657600080fd5b505af41580156118fa573d6000803e3d6000fd5b505050506119088282612e19565b6001600160a01b03821660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083203380855292529091205461196291849161195d908590615b93565b61278e565b610eda60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b336119bd7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b0316816001600160a01b031614611a12576040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610d8d565b816001600160a01b03163b600003611a61576040517fc2f31e5e0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610d8d565b610eda82613112565b6000610c038261319d565b611a7e33610dd9565b610de96131a8565b600060608082808083817fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008054909150158015611ac557506001810154155b611b2b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f4549503731323a20556e696e697469616c697a656400000000000000000000006044820152606401610d8d565b611b33613203565b611b3b613254565b604080516000808252602082019092527f0f000000000000000000000000000000000000000000000000000000000000009c939b5091995046985030975095509350915050565b60007fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0081611bae611c9e565b90508065ffffffffffff168410611c02576040517fecd3f81e0000000000000000000000000000000000000000000000000000000081526004810185905265ffffffffffff82166024820152604401610d8d565b611c18611c0e856128f1565b6002840190612941565b6001600160d01b0316949350505050565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546000919074010000000000000000000000000000000000000000900460ff16611c76576000611c98565b7f8fb36037000000000000000000000000000000000000000000000000000000005b91505090565b6000610d0c612e68565b604080518082018252606080825260208083018290526001600160a01b03851660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4825284902084518154928302810184018652948501828152939493909284928491840182828015611d3e57602002820191906000526020600020905b815481526020019060010190808311611d2a575b5050505050815260200160018201805480602002602001604051908101604052809291908181526020018280548015611d9657602002820191906000526020600020905b815481526020019060010190808311611d82575b5050505050815250509050919050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060917f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0091610c40906159df565b611dff612c37565b6000546040517fb3eb04060000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015273b6e19c3ce9f09c8bc5ce219ba9f0c8c438893dfd9063b3eb04069060240160006040518083038186803b158015611e6f57600080fd5b505af4158015611e83573d6000803e3d6000fd5b50505050610de960017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d01602052604081207fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0090611f129061327e565b6001600160d01b03169392505050565b60606000825167ffffffffffffffff811115611f4057611f406152ed565b604051908082528060200260200182016040528015611f69578160200160208202803683370190505b50905060005b835181101561206a5760007f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46001016000868481518110611fb257611fb2615ad5565b60200260200101518152602001908152602001600020549050600080611ff67f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b11612002576000612039565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025461202f836064615bb9565b6120399190615be6565b90508084848151811061204e5761204e615ad5565b60ff909216602092830291909101909101525050600101611f6f565b5092915050565b600033610cd2818585612856565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000810460ff16159067ffffffffffffffff166000811580156120ca5750825b905060008267ffffffffffffffff1660011480156120e75750303b155b9050811580156120f5575080155b1561212c576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b84547fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000166001178555831561218d5784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff16680100000000000000001785555b6122016040518060400160405280600681526020017f76654233545200000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f76654233545200000000000000000000000000000000000000000000000000008152506132ba565b6122096132cc565b6122116132d4565b61221a886132e4565b6122586040518060400160405280600681526020017f76654233545200000000000000000000000000000000000000000000000000008152506132f5565b6122606132cc565b6122686132cc565b61227061333c565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03888116919091179091556040517f02571be30000000000000000000000000000000000000000000000000000000081527f91d1777781884d03a6757a803996e38de2a42967fb37eeaca72729271025a9e26004820152908816906302571be390602401602060405180830381865afa15801561231e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123429190615a32565b6040517f1e83409a0000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b039190911690631e83409a906024016020604051808303816000875af11580156123a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c79190615a19565b5083156103485784547fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15050505050505050565b8342111561246f576040517f4683af0e00000000000000000000000000000000000000000000000000000000815260048101859052602401610d8d565b604080517fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60208201526001600160a01b0388169181019190915260608101869052608081018590526000906124e9906124e19060a0016040516020818303038152906040528051906020012061334c565b858585613394565b90506124f581876133c2565b6124ff8188612d07565b50505050505050565b83421115612545576040517f6279130200000000000000000000000000000000000000000000000000000000815260048101859052602401610d8d565b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886125b18c6001600160a01b031660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e001604051602081830303815290604052805190602001209050600061260c8261334c565b9050600061261c82878787613394565b9050896001600160a01b0316816001600160a01b03161461267c576040517f4b800e460000000000000000000000000000000000000000000000000000000081526001600160a01b0380831660048301528b166024820152604401610d8d565b6126878a8a8a61278e565b50505050505050505050565b61269c33610dd9565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6040805180820190915260008082526020820152610cfb838361344d565b600080546040517f539ff5a20000000000000000000000000000000000000000000000000000000081526001600160a01b03909116600482015273b6e19c3ce9f09c8bc5ce219ba9f0c8c438893dfd9063539ff5a290602401602060405180830381865af415801561276a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0c9190615a32565b61279b83838360016134ca565b505050565b6001600160a01b0383811660009081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace01602090815260408083209386168352929052205460001981146128505781811015612841576040517ffb8f41b20000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024810182905260448101839052606401610d8d565b612850848484840360006134ca565b50505050565b6001600160a01b038316612899576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b0382166128dc576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b61279b8383836135f6565b6000610d0c61366a565b600065ffffffffffff82111561293d576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526030600482015260248101839052604401610d8d565b5090565b8154600090818160058111156129a057600061295c846136de565b6129669085615b93565b60008881526020902090915081015465ffffffffffff90811690871610156129905780915061299e565b61299b816001615ba6565b92505b505b60006129ae878785856137c6565b905080156129ec576129d3876129c5600184615b93565b600091825260209091200190565b54660100000000000090046001600160d01b03166129ef565b60005b979650505050505050565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00600080612a70612a527ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b8730612a62600460008a8c615c08565b612a6b91615c32565b613828565b9150915081612bbd5763ffffffff811615612b805782547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000178355612af37ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00546001600160a01b031690565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b8152600401612b2293929190615c7a565b600060405180830381600087803b158015612b3c57600080fd5b505af1158015612b50573d6000803e3d6000fd5b505084547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16855550612bbd9050565b6040517f068ca9d80000000000000000000000000000000000000000000000000000000081526001600160a01b0387166004820152602401610d8d565b505050505050565b612bcd61397a565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0080547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01612cb2576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60029055565b6001600160a01b038216612cfb576040517fec442f0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b610eda600083836135f6565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006000612d6b846001600160a01b0390811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0060205260409020541690565b6001600160a01b0385811660008181526020869052604080822080547fffffffffffffffffffffffff000000000000000000000000000000000000000016898616908117909155905194955093928516927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a46128508184612dee876139d5565b6139e0565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b6001600160a01b038216612e5c576040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b610eda826000836135f6565b6000610d0c436128f1565b306001600160a01b037f0000000000000000000000000f3de5b3ae6891936d7367e80011ff8de6ce93f5161480612f0c57507f0000000000000000000000000f3de5b3ae6891936d7367e80011ff8de6ce93f56001600160a01b0316612f007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614155b15610de9576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fb433610dd9565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612fa6575060408051601f3d908101601f19168201909252612fa391810190615a19565b60015b612fe7576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401610d8d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114613043576040517faa1d49a400000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b61279b8383613b6c565b306001600160a01b037f0000000000000000000000000f3de5b3ae6891936d7367e80011ff8de6ce93f51614610de9576040517fe07c8dba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0160205260408120547fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d0090610cfb90613bc2565b7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0080546001600160a01b0383167fffffffffffffffffffffffff00000000000000000000000000000000000000009091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b6000610c0382613c0c565b6131b0613c35565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833612c19565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060917fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10091610c40906159df565b606060007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100610c2f565b805460009080156132b157613298836129c5600184615b93565b54660100000000000090046001600160d01b0316610cfb565b60009392505050565b6132c2613c91565b610eda8282613cf8565b610de9613c91565b6132dc613c91565b610de9613d5b565b6132ec613c91565b610fb481613d8e565b6132fd613c91565b610fb4816040518060400160405280600181526020017f3100000000000000000000000000000000000000000000000000000000000000815250613d9f565b613344613c91565b610de9613e12565b6000610c036133596128e7565b836040517f19010000000000000000000000000000000000000000000000000000000000008152600281019290925260228201526042902090565b6000806000806133a688888888613e1a565b9250925092506133b68282613ee9565b50909695505050505050565b6001600160a01b03821660009081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915581811461279b576040517f752d88c00000000000000000000000000000000000000000000000000000000081526001600160a01b038416600482015260248101829052604401610d8d565b604080518082018252600080825260208083018290526001600160a01b03861682527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d019052919091207fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00906134c29084613fed565b949350505050565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b03851661352e576040517fe602df0500000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b038416613571576040517f94280d6200000000000000000000000000000000000000000000000000000000815260006004820152602401610d8d565b6001600160a01b038086166000908152600183016020908152604080832093881683529290522083905581156135ef57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925856040516135e691815260200190565b60405180910390a35b5050505050565b613601838383614060565b6001600160a01b0382161580159061365057506001600160a01b0382811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d00602052604090205416155b1561365f5761365f8283612d07565b61279b8383836140ff565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6136956147c4565b61369d614840565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000816000036136f057506000919050565b600060016136fd84614896565b901c6001901b9050600181848161371657613716615bd0565b048201901c9050600181848161372e5761372e615bd0565b048201901c9050600181848161374657613746615bd0565b048201901c9050600181848161375e5761375e615bd0565b048201901c9050600181848161377657613776615bd0565b048201901c9050600181848161378e5761378e615bd0565b048201901c905060018184816137a6576137a6615bd0565b048201901c9050610cfb818285816137c0576137c0615bd0565b0461492a565b60005b818310156138205760006137dd8484614940565b60008781526020902090915065ffffffffffff86169082015465ffffffffffff16111561380c5780925061381a565b613817816001615ba6565b93505b506137c9565b509392505050565b6040516001600160a01b03848116602483015283811660448301527fffffffff000000000000000000000000000000000000000000000000000000008316606483015260009182918291829189169060840160408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb700961300000000000000000000000000000000000000000000000000000000179052516138dd9190615cb9565b600060405180830381855afa9150503d8060008114613918576040519150601f19603f3d011682016040523d82523d6000602084013e61391d565b606091505b5091509150811561396f57604081511061394f57808060200190518101906139459190615ce5565b909450925061396f565b602081511061396f578080602001905181019061396c9190615d11565b93505b505094509492505050565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff16610de9576040517f8dfc202b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000610c03826112fb565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006001600160a01b0384811690841614801590613a1d5750600082115b15612850576001600160a01b03841615613ac7576001600160a01b038416600090815260018201602052604081208190613a629061495b613a5d87614967565b6149b4565b6001600160d01b031691506001600160d01b03169150856001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613abc929190918252602082015260400190565b60405180910390a250505b6001600160a01b03831615612850576001600160a01b038316600090815260018201602052604081208190613b02906149ed613a5d87614967565b6001600160d01b031691506001600160d01b03169150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051613b5c929190918252602082015260400190565b60405180910390a2505050505050565b613b75826149f9565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a2805115613bba5761279b8282614aa1565b610eda614b17565b600063ffffffff82111561293d576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401610d8d565b6000807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00611320565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f033005460ff1615610de9576040517fd93c066500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005468010000000000000000900460ff16610de9576040517fd7e6bcf800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613d00613c91565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace007f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03613d4c8482615d74565b50600481016128508382615d74565b613d63613c91565b7fcd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300805460ff19169055565b613d96613c91565b610fb481613112565b613da7613c91565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102613df38482615d74565b5060038101613e028382615d74565b5060008082556001909101555050565b612df3613c91565b600080807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115613e555750600091506003905082613edf565b604080516000808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015613ea9573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116613ed557506000925060019150829050613edf565b9250600091508190505b9450945094915050565b6000826003811115613efd57613efd615e34565b03613f06575050565b6001826003811115613f1a57613f1a615e34565b03613f51576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002826003811115613f6557613f65615e34565b03613f9f576040517ffce698f700000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b6003826003811115613fb357613fb3615e34565b03610eda576040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260048101829052602401610d8d565b6040805180820190915260008082526020820152826000018263ffffffff168154811061401c5761401c615ad5565b60009182526020918290206040805180820190915291015465ffffffffffff81168252660100000000000090046001600160d01b0316918101919091529392505050565b61406b838383614b4f565b6001600160a01b0383166140f45760006140a37f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace025490565b90506001600160d01b03808211156140f1576040517f1cb15d260000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d8d565b50505b61279b838383614b62565b6001600160a01b03831660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46020908152604080832081518154938402810160609081018452928101848152909391928492849184018282801561418657602002820191906000526020600020905b815481526020019060010190808311614172575b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156141de57602002820191906000526020600020905b8154815260200190600101908083116141ca575b50505050508152505090506000805b82602001515181101561422d578260200151818151811061421057614210615ad5565b6020026020010151826142239190615ba6565b91506001016141ed565b5060005b82602001515181101561439d5760008261424b8682615b93565b8560200151848151811061426157614261615ad5565b60200260200101516142739190615bb9565b61427d9190615be6565b90508360200151828151811061429557614295615ad5565b60200260200101516142c47f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b6001016000866000015185815181106142df576142df615ad5565b6020026020010151815260200190815260200160002060008282546143049190615b93565b92505081905550808460200151838151811061432257614322615ad5565b6020908102919091010152807f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba460010160008660000151858151811061436a5761436a615ad5565b60200260200101518152602001908152602001600020600082825461438f9190615ba6565b909155505050600101614231565b506001600160a01b03851660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4602090815260409091208351805185936143ec928492910190614fe9565b5060208281015180516144059260018501920190614fe9565b5050506001600160a01b0384166144be5760005b8260200151518110156144b8578260200151818151811061443c5761443c615ad5565b602002602001015161446b7f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008560000151848151811061448657614486615ad5565b6020026020010151815260200190815260200160002060008282546144ab9190615b93565b9091555050600101614419565b506135ef565b6001600160a01b03841660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba46020908152604080832081518154938402810160609081018452928101848152909391928492849184018282801561454557602002820191906000526020600020905b815481526020019060010190808311614531575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561459d57602002820191906000526020600020905b815481526020019060010190808311614589575b50505050508152505090506000805b8260200151518110156145ec57826020015181815181106145cf576145cf615ad5565b6020026020010151826145e29190615ba6565b91506001016145ac565b5060005b82602001515181101561475c5760008261460a8882615ba6565b8560200151848151811061462057614620615ad5565b60200260200101516146329190615bb9565b61463c9190615be6565b90508360200151828151811061465457614654615ad5565b60200260200101516146837f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba490565b60010160008660000151858151811061469e5761469e615ad5565b6020026020010151815260200190815260200160002060008282546146c39190615b93565b9250508190555080846020015183815181106146e1576146e1615ad5565b6020908102919091010152807f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba460010160008660000151858151811061472957614729615ad5565b60200260200101518152602001908152602001600020600082825461474e9190615ba6565b9091555050506001016145f0565b506001600160a01b03861660009081527f9b415c02b7befb759552a9b6d8734c72ff48825e08833aa8390b015748747ba4602090815260409091208351805185936147ab928492910190614fe9565b5060208281015180516126879260018501920190614fe9565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100816147f0613203565b80519091501561480857805160209091012092915050565b81548015614817579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b60007fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d1008161486c613254565b80519091501561488457805160209091012092915050565b60018201548015614817579392505050565b600080608083901c156148ab57608092831c92015b604083901c156148bd57604092831c92015b602083901c156148cf57602092831c92015b601083901c156148e157601092831c92015b600883901c156148f357600892831c92015b600483901c1561490557600492831c92015b600283901c1561491757600292831c92015b600183901c15610c035760010192915050565b60008183106149395781610cfb565b5090919050565b600061494f6002848418615be6565b610cfb90848416615ba6565b6000610cfb8284615e4a565b60006001600160d01b0382111561293d576040517f6dfcc65000000000000000000000000000000000000000000000000000000000815260d0600482015260248101839052604401610d8d565b6000806149e06149c2611c9e565b6149d86149ce8861327e565b868863ffffffff16565b879190614c1c565b915091505b935093915050565b6000610cfb8284615e6a565b806001600160a01b03163b600003614a48576040517f4c9c8ce30000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602401610d8d565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6060600080846001600160a01b031684604051614abe9190615cb9565b600060405180830381855af49150503d8060008114614af9576040519150601f19603f3d011682016040523d82523d6000602084013e614afe565b606091505b5091509150614b0e858383614c2a565b95945050505050565b3415610de9576040517fb398979f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614b57613c35565b61279b838383614c9f565b7fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006001600160a01b038416614ba757614ba4816002016149ed613a5d85614967565b50505b6001600160a01b038316614bcb57614bc88160020161495b613a5d85614967565b50505b6001600160a01b0384811660009081527fe8b26c30fad74198956032a3533d903385d56dd795af560196f9c78d4af40d006020526040808220548684168352912054612850929182169116846139e0565b6000806149e0858585614e08565b606082614c3f57614c3a82614fa7565b610cfb565b8151158015614c5657506001600160a01b0384163b155b15614c98576040517f9996b3150000000000000000000000000000000000000000000000000000000081526001600160a01b0385166004820152602401610d8d565b5080610cfb565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace006001600160a01b038416614ced5781816002016000828254614ce29190615ba6565b90915550614d789050565b6001600160a01b03841660009081526020829052604090205482811015614d59576040517fe450d38c0000000000000000000000000000000000000000000000000000000081526001600160a01b03861660048201526024810182905260448101849052606401610d8d565b6001600160a01b03851660009081526020839052604090209083900390555b6001600160a01b038316614d96576002810180548390039055614db5565b6001600160a01b03831660009081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051614dfa91815260200190565b60405180910390a350505050565b825460009081908015614f49576000614e26876129c5600185615b93565b60408051808201909152905465ffffffffffff80821680845266010000000000009092046001600160d01b031660208401529192509087161015614e96576040517f2520601d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805165ffffffffffff808816911603614ee55784614eb9886129c5600186615b93565b80546001600160d01b039290921666010000000000000265ffffffffffff909216919091179055614f39565b6040805180820190915265ffffffffffff80881682526001600160d01b0380881660208085019182528b54600181018d5560008d815291909120945191519092166601000000000000029216919091179101555b6020015192508391506149e59050565b50506040805180820190915265ffffffffffff80851682526001600160d01b0380851660208085019182528854600181018a5560008a81529182209551925190931666010000000000000291909316179201919091559050816149e5565b805115614fb75780518082602001fd5b6040517f1425ea4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828054828255906000526020600020908101928215615024579160200282015b82811115615024578251825591602001919060010190615009565b5061293d9291505b8082111561293d576000815560010161502c565b6001600160a01b0381168114610fb457600080fd5b60008083601f84011261506757600080fd5b50813567ffffffffffffffff81111561507f57600080fd5b60208301915083602082850101111561509757600080fd5b9250929050565b60008060008060008060008060c0898b0312156150ba57600080fd5b88356150c581615040565b975060208901356150d581615040565b965060408901356150e581615040565b955060608901359450608089013567ffffffffffffffff8082111561510957600080fd5b6151158c838d01615055565b909650945060a08b013591508082111561512e57600080fd5b5061513b8b828c01615055565b999c989b5096995094979396929594505050565b60006020828403121561516157600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610cfb57600080fd5b60005b838110156151ac578181015183820152602001615194565b50506000910152565b600081518084526151cd816020860160208601615191565b601f01601f19169290920160200192915050565b602081526000610cfb60208301846151b5565b6000806040838503121561520757600080fd5b823561521281615040565b946020939093013593505050565b60008060008060006080868803121561523857600080fd5b853561524381615040565b9450602086013561525381615040565b935060408601359250606086013567ffffffffffffffff81111561527657600080fd5b61528288828901615055565b969995985093965092949392505050565b6000806000606084860312156152a857600080fd5b83356152b381615040565b925060208401356152c381615040565b929592945050506040919091013590565b6000602082840312156152e657600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561532c5761532c6152ed565b604052919050565b6000806040838503121561534757600080fd5b823561535281615040565b915060208381013567ffffffffffffffff8082111561537057600080fd5b818601915086601f83011261538457600080fd5b813581811115615396576153966152ed565b6153a884601f19601f84011601615303565b915080825287848285010111156153be57600080fd5b80848401858401376000848284010152508093505050509250929050565b6000602082840312156153ee57600080fd5b8135610cfb81615040565b600067ffffffffffffffff821115615413576154136152ed565b5060051b60200190565b600082601f83011261542e57600080fd5b8135602061544361543e836153f9565b615303565b8083825260208201915060208460051b87010193508684111561546557600080fd5b602086015b84811015615481578035835291830191830161546a565b509695505050505050565b6000806040838503121561549f57600080fd5b823567ffffffffffffffff808211156154b757600080fd5b6154c38683870161541d565b93506020915081850135818111156154da57600080fd5b85019050601f810186136154ed57600080fd5b80356154fb61543e826153f9565b81815260059190911b8201830190838101908883111561551a57600080fd5b928401925b828410156155385783358252928401929084019061551f565b80955050505050509250929050565b60008151808452602080850194506020840160005b838110156155785781518752958201959082019060010161555c565b509495945050505050565b7fff000000000000000000000000000000000000000000000000000000000000008816815260e0602082015260006155be60e08301896151b5565b82810360408401526155d081896151b5565b90508660608401526001600160a01b03861660808401528460a084015282810360c08401526155ff8185615547565b9a9950505050505050505050565b6020808252825160408383015280516060840181905260009291820190839060808601905b808310156156525783518252928401926001929092019190840190615632565b5092860151858403601f19016040870152926129ef8185615547565b60006020828403121561568057600080fd5b813567ffffffffffffffff81111561569757600080fd5b6134c28482850161541d565b6020808252825182820181905260009190848201906040850190845b818110156133b657835160ff16835292840192918401916001016156bf565b60008083601f8401126156f057600080fd5b50813567ffffffffffffffff81111561570857600080fd5b6020830191508360208260051b850101111561509757600080fd5b60008060008060008060008060a0898b03121561573f57600080fd5b883561574a81615040565b9750602089013561575a81615040565b9650604089013567ffffffffffffffff8082111561577757600080fd5b6157838c838d016156de565b909850965060608b013591508082111561579c57600080fd5b6157a88c838d016156de565b909650945060808b013591508082111561512e57600080fd5b6000806000606084860312156157d657600080fd5b83356157e181615040565b925060208401356157f181615040565b9150604084013561580181615040565b809150509250925092565b803560ff8116811461581d57600080fd5b919050565b60008060008060008060c0878903121561583b57600080fd5b863561584681615040565b955060208701359450604087013593506158626060880161580c565b92506080870135915060a087013590509295509295509295565b600080600080600080600060e0888a03121561589757600080fd5b87356158a281615040565b965060208801356158b281615040565b955060408801359450606088013593506158ce6080890161580c565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156158fd57600080fd5b823561590881615040565b9150602083013561591881615040565b809150509250929050565b63ffffffff81168114610fb457600080fd5b6000806040838503121561594857600080fd5b823561595381615040565b9150602083013561591881615923565b60008060008060008060a0878903121561597c57600080fd5b863561598781615040565b9550602087013561599781615040565b94506040870135935060608701359250608087013567ffffffffffffffff8111156159c157600080fd5b6159cd89828a01615055565b979a9699509497509295939492505050565b600181811c908216806159f357607f821691505b602082108103615a1357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215615a2b57600080fd5b5051919050565b600060208284031215615a4457600080fd5b8151610cfb81615040565b60006020808385031215615a6257600080fd5b825167ffffffffffffffff811115615a7957600080fd5b8301601f81018513615a8a57600080fd5b8051615a9861543e826153f9565b81815260059190911b82018301908381019087831115615ab757600080fd5b928401925b828410156129ef57835182529284019290840190615abc565b634e487b7160e01b600052603260045260246000fd5b6000606082016001600160a01b03861683526020606081850152818651808452608086019150828801935060005b81811015615b3557845183529383019391830191600101615b19565b50508481036040860152855180825290820192508186019060005b81811015615b6f57825160ff1685529383019391830191600101615b50565b509298975050505050505050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610c0357610c03615b7d565b80820180821115610c0357610c03615b7d565b8082028115828204841417610c0357610c03615b7d565b634e487b7160e01b600052601260045260246000fd5b600082615c0357634e487b7160e01b600052601260045260246000fd5b500490565b60008085851115615c1857600080fd5b83861115615c2557600080fd5b5050820193919092039150565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015615c725780818660040360031b1b83161692505b505092915050565b6001600160a01b038416815260406020820152816040820152818360608301376000818301606090810191909152601f909201601f1916010192915050565b60008251615ccb818460208701615191565b9190910192915050565b8051801515811461581d57600080fd5b60008060408385031215615cf857600080fd5b615d0183615cd5565b9150602083015161591881615923565b600060208284031215615d2357600080fd5b610cfb82615cd5565b601f82111561279b576000816000526020600020601f850160051c81016020861015615d555750805b601f850160051c820191505b81811015612bbd57828155600101615d61565b815167ffffffffffffffff811115615d8e57615d8e6152ed565b615da281615d9c84546159df565b84615d2c565b602080601f831160018114615dd75760008415615dbf5750858301515b600019600386901b1c1916600185901b178555612bbd565b600085815260208120601f198616915b82811015615e0657888601518255948401946001909101908401615de7565b5085821015615e245787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052602160045260246000fd5b6001600160d01b0382811682821603908082111561206a5761206a615b7d565b6001600160d01b0381811683821601908082111561206a5761206a615b7d56fea2646970667358221220531cb16d5b8a386d52004842079c28883d3002ed158486f50aa2cd8a2852c47764736f6c63430008180033