[ { "inputs": [ { "internalType": "address", "name": "dbAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256[]", "name": "nftInfo", "type": "uint256[]" }, { "indexed": false, "internalType": "string", "name": "name", "type": "string" }, { "indexed": false, "internalType": "address", "name": "payment", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "Mint", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "enum ILYNKNFT.Attribute", "name": "attr", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "point", "type": "uint256" } ], "name": "Upgrade", "type": "event" }, { "inputs": [], "name": "BLACK_HOLE", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DB_CONTRACT", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "__LYNKNFT_init", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "addedVAInfoOf", "outputs": [ { "internalType": "uint128", "name": "lastAddedTime", "type": "uint128" }, { "internalType": "uint128", "name": "addedInDuration", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "earlyBirdCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "earlyBirdMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "earlyBirdMintedOf", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "earlyBirdWlCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "earlyMintInfo", "outputs": [ { "internalType": "uint256", "name": "_totalNum", "type": "uint256" }, { "internalType": "uint256", "name": "_remainNum", "type": "uint256" }, { "internalType": "uint256", "name": "_nextId", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" } ], "name": "isReverseName", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_payment", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "mintInfoOf", "outputs": [ { "internalType": "uint128", "name": "lastMintTime", "type": "uint128" }, { "internalType": "uint128", "name": "mintNumInDuration", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_payment", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "mintWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "", "type": "string" } ], "name": "nameUsed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "nftInfo", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "nftInfoOf", "outputs": [ { "internalType": "uint256[]", "name": "_nftInfo", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_refAddress", "type": "address" } ], "name": "refEarlyBirdMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum ILYNKNFT.Attribute", "name": "_attr", "type": "uint8" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_point", "type": "uint256" }, { "internalType": "address", "name": "_payment", "type": "address" } ], "name": "upgrade", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum ILYNKNFT.Attribute", "name": "_attr", "type": "uint8" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_point", "type": "uint256" }, { "internalType": "address", "name": "_payment", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "upgradeWithPermit", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60a06040523480156200001157600080fd5b506040516200537e3803806200537e833981016040819052620000349162000046565b6001600160a01b031660805262000078565b6000602082840312156200005957600080fd5b81516001600160a01b03811681146200007157600080fd5b9392505050565b6080516152036200017b60003960008181610427015281816107a60152818161095201528181610bd901528181610d8f01528181610e3401528181610f9a015281816115160152818161167a015281816118000152818161192e015281816119de01528181611f99015281816121310152818161220a015281816124fd015281816125c4015281816127d3015281816129b001528181612a5b01528181612b8901528181612c6101528181612dbe01528181612e9c015281816130140152818161312e015281816133160152818161349c0152818161361301528181613931015281816139dc01528181613b3701528181613bf60152613c4e01526152036000f3fe608060405234801561001057600080fd5b506004361061021c5760003560e01c806370a0823111610125578063c87b56dd116100ad578063dcefcebc1161007c578063dcefcebc14610500578063dfa2eec014610520578063e1621a0714610533578063e67e402c14610556578063e985e9c51461056957600080fd5b8063c87b56dd146104b4578063cabaa177146104c7578063cb97200e146104da578063d49cf8e3146104ed57600080fd5b8063a22cb465116100f4578063a22cb46514610449578063a70687ae1461045c578063b6fc133a14610465578063b77c055514610499578063b88d4fde146104a157600080fd5b806370a08231146103ff5780637f6c7bc71461041257806395d89b411461041a5780639ccea0cd1461042257600080fd5b80633f8336e3116101a85780634f6ccce7116101775780634f6ccce7146103a457806355eda4e8146103b757806357e1f309146103c05780636352211e146103e35780636bc3d0a0146103f657600080fd5b80633f8336e31461031757806342842e0e1461036b578063496680761461037e5780634f558e791461039157600080fd5b80630b9b6e8b116101ef5780630b9b6e8b1461029e57806312bf27b0146102cc57806318160ddd146102df57806323b872dd146102f15780632f745c591461030457600080fd5b806301ffc9a71461022157806306fdde0314610249578063081812fc1461025e578063095ea7b314610289575b600080fd5b61023461022f36600461456c565b6105a5565b60405190151581526020015b60405180910390f35b6102516105d0565b60405161024091906145e1565b61027161026c3660046145f4565b610662565b6040516001600160a01b039091168152602001610240565b61029c610297366004614622565b610689565b005b6102346102ac3660046146fb565b805160208183018101805160cc8252928201919093012091525460ff1681565b61029c6102da366004614744565b6107a4565b6099545b604051908152602001610240565b61029c6102ff366004614761565b610a30565b6102e3610312366004614622565b610a61565b61034b6103253660046145f4565b60cd602052600090815260409020546001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610240565b61029c610379366004614761565b610af7565b61023461038c3660046146fb565b610b12565b61023461039f3660046145f4565b610b1d565b6102e36103b23660046145f4565b610b3c565b61027161dead81565b6103c8610bcf565b60408051938452602084019290925290820152606001610240565b6102716103f13660046145f4565b610c9f565b6102e360ce5481565b6102e361040d366004614744565b610cff565b61029c610d85565b610251611030565b6102717f000000000000000000000000000000000000000000000000000000000000000081565b61029c6104573660046147b0565b61103f565b6102e360cf5481565b61034b610473366004614744565b60cb602052600090815260409020546001600160801b0380821691600160801b90041682565b61029c61104e565b61029c6104af3660046147e9565b6111b6565b6102516104c23660046145f4565b6111ee565b61029c6104d53660046148c1565b611255565b61029c6104e836600461496f565b6112d6565b61029c6104fb3660046149f3565b61134c565b61051361050e3660046145f4565b611358565b6040516102409190614a3b565b6102e361052e366004614a7f565b6113ba565b610234610541366004614744565b60d06020526000908152604090205460ff1681565b61029c610564366004614aa1565b6113eb565b610234610577366004614afd565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006001600160e01b0319821663780e9d6360e01b14806105ca57506105ca826113f7565b92915050565b6060606580546105df90614b2b565b80601f016020809104026020016040519081016040528092919081815260200182805461060b90614b2b565b80156106585780601f1061062d57610100808354040283529160200191610658565b820191906000526020600020905b81548152906001019060200180831161063b57829003601f168201915b5050505050905090565b600061066d82611447565b506000908152606960205260409020546001600160a01b031690565b600061069482610c9f565b9050806001600160a01b0316836001600160a01b031614156107075760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061072357506107238133610577565b6107955760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c000060648201526084016106fe565b61079f83836114a6565b505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa1785fe6040518163ffffffff1660e01b815260040160206040518083038186803b1580156107fd57600080fd5b505afa158015610811573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108359190614b66565b6001600160a01b031663f3c95c60336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561088357600080fd5b505afa158015610897573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108bb9190614b83565b15806108d6575033600090815260d0602052604090205460ff165b6109335760405162461bcd60e51b815260206004820152602860248201527f4c594e4b4e46543a20706c656173652063616c6c2077697468206561726c794260448201526734b93226b4b73a1760c11b60648201526084016106fe565b6040516354c1498d60e01b81526001600160a01b0382811660048301527f000000000000000000000000000000000000000000000000000000000000000016906354c1498d9060240160206040518083038186803b15801561099457600080fd5b505afa1580156109a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109cc9190614b83565b610a245760405162461bcd60e51b815260206004820152602360248201527f4c594e4b4e46543a207265662061646472657373206e6f7420696e20746865206044820152623bb61760e91b60648201526084016106fe565b610a2d81611514565b50565b610a3a3382611b01565b610a565760405162461bcd60e51b81526004016106fe90614ba0565b61079f838383611b80565b6000610a6c83610cff565b8210610ace5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b60648201526084016106fe565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b61079f838383604051806020016040528060008152506111b6565b60006105ca82611d27565b6000818152606760205260408120546001600160a01b031615156105ca565b6000610b4760995490565b8210610baa5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b60648201526084016106fe565b60998281548110610bbd57610bbd614bee565b90600052602060002001549050919050565b60008060008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be1888116040518163ffffffff1660e01b8152600401604080518083038186803b158015610c2f57600080fd5b505afa158015610c43573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c679190614c04565b9092509050610c768282614c3e565b945060ce5485610c869190614c3e565b935060ce5482610c969190614c55565b92505050909192565b6000818152606760205260408120546001600160a01b0316806105ca5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106fe565b60006001600160a01b038216610d695760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b60648201526084016106fe565b506001600160a01b031660009081526068602052604090205490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166354c1498d336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610df457600080fd5b505afa158015610e08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2c9190614b83565b80610f4957507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa1785fe6040518163ffffffff1660e01b815260040160206040518083038186803b158015610e8b57600080fd5b505afa158015610e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ec39190614b66565b6001600160a01b031663f3c95c60336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b158015610f1157600080fd5b505afa158015610f25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f499190614b83565b610f955760405162461bcd60e51b815260206004820152601d60248201527f4c594e4b4e46543a206e6f7420612076616c696420616464726573732e00000060448201526064016106fe565b61102e7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663aaa2b8c86040518163ffffffff1660e01b815260040160206040518083038186803b158015610ff157600080fd5b505afa158015611005573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110299190614b66565b611514565b565b6060606680546105df90614b2b565b61104a338383611e2b565b5050565b600054610100900460ff161580801561106e5750600054600160ff909116105b806110885750303b158015611088575060005460ff166001145b6110eb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106fe565b6000805460ff19166001179055801561110e576000805461ff0019166101001790555b611116611efa565b61111e611f02565b6111666040518060400160405280600781526020016613165392d3919560ca1b8152506040518060400160405280600781526020016613165392d3919560ca1b815250611f29565b61116e611f5a565b8015610a2d576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b6111c03383611b01565b6111dc5760405162461bcd60e51b81526004016106fe90614ba0565b6111e884848484611f62565b50505050565b60606111f982611447565b6000611203611f95565b90506000815111611223576040518060200160405280600081525061124e565b8061122d84612031565b60405160200161123e929190614c6d565b6040516020818303038152906040525b9392505050565b60405163d505accf60e01b81526001600160a01b0389169063d505accf9061128d90339030908a908a908a908a908a90600401614c9c565b600060405180830381600087803b1580156112a757600080fd5b505af11580156112bb573d6000803e3d6000fd5b505050506112cb8989898961212f565b505050505050505050565b60405163d505accf60e01b81526001600160a01b0387169063d505accf9061130e90339030908a908a908a908a908a90600401614c9c565b600060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b505050506112cb898989896127d1565b6111e8848484846127d1565b600081815260ca60209081526040918290208054835181840281018401909452808452606093928301828280156113ae57602002820191906000526020600020905b81548152602001906001019080831161139a575b50505050509050919050565b60ca60205281600052604060002081815481106113d657600080fd5b90600052602060002001600091509150505481565b6111e88484848461212f565b60006001600160e01b031982166380ac58cd60e01b148061142857506001600160e01b03198216635b5e139f60e01b145b806105ca57506301ffc9a760e01b6001600160e01b03198316146105ca565b6000818152606760205260409020546001600160a01b0316610a2d5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b60448201526064016106fe565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906114db82610c9f565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ea0d14656040518163ffffffff1660e01b815260040160206040518083038186803b15801561156d57600080fd5b505afa158015611581573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a59190614b83565b6115ed5760405162461bcd60e51b8152602060048201526019602482015278262ca725a7232a1d1031b0b73737ba1036b4b73a103cb2ba1760391b60448201526064016106fe565b33600090815260d0602052604090205460ff161561164d5760405162461bcd60e51b815260206004820152601860248201527f4c594e4b4e46543a20616c7265616479206d696e7465642e000000000000000060448201526064016106fe565b33600090815260d060209081526040808320805460ff191660011790558051637d0bc2ff60e11b815290517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169263fa1785fe9260048082019391829003018186803b1580156116c457600080fd5b505afa1580156116d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116fc9190614b66565b90506001600160a01b03811663f3c95c60336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b15801561174d57600080fd5b505afa158015611761573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117859190614b83565b6117fb576001600160a01b0381166323b3f2a5336040516001600160e01b031960e084901b1681526001600160a01b0391821660048201529085166024820152604401600060405180830381600087803b1580156117e257600080fd5b505af11580156117f6573d6000803e3d6000fd5b505050505b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663be1888116040518163ffffffff1660e01b8152600401604080518083038186803b15801561185657600080fd5b505afa15801561186a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061188e9190614c04565b91509150600060ce54836118a29190614c55565b90508181106118e85760405162461bcd60e51b8152602060048201526012602482015271262ca725a7232a1d1039b7b6321037baba1760711b60448201526064016106fe565b60ce80549060006118f883614cdd565b9190505550600061190882612031565b6040516020016119189190614cf8565b60405160208183030381529060405290506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316637af0cac36040518163ffffffff1660e01b8152600401604080518083038186803b15801561198457600080fd5b505afa158015611998573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bc9190614d21565b915091506119d1826119cb3390565b8361343a565b60405180608001604052807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166364db03b86040518163ffffffff1660e01b815260040160206040518083038186803b158015611a3557600080fd5b505afa158015611a49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a6d9190614d4f565b8152600060208083018290526040808401839052606090930182905287825260ca905220611a9c916004614483565b50611aa733856136b4565b837f43332af98367d01c3bc9be42717917c42e1bd0084f4cdad927e9b4c06471d35160ca6000878152602001908152602001600020858585604051611aef9493929190614d68565b60405180910390a25050505050505050565b600080611b0d83610c9f565b9050806001600160a01b0316846001600160a01b03161480611b5457506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b80611b785750836001600160a01b0316611b6d84610662565b6001600160a01b0316145b949350505050565b826001600160a01b0316611b9382610c9f565b6001600160a01b031614611bf75760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b60648201526084016106fe565b6001600160a01b038216611c595760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b60648201526084016106fe565b611c648383836136ce565b611c6f6000826114a6565b6001600160a01b0383166000908152606860205260408120805460019290611c98908490614c3e565b90915550506001600160a01b0382166000908152606860205260408120805460019290611cc6908490614c55565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60008181805b8251811015611e1e5780158015611d5e5750828181518110611d5157611d51614bee565b60209101015160f81c6030145b8015611d6b575060008351115b15611d7b57506000949350505050565b6030838281518110611d8f57611d8f614bee565b016020015160f81c1080611dbc57506039838281518110611db257611db2614bee565b016020015160f81c115b15611dcc57506000949350505050565b6030838281518110611de057611de0614bee565b0160200151611df2919060f81c614ddb565b60ff16611e0083600a614dfe565b611e0a9190614c55565b915080611e1681614cdd565b915050611d2d565b50620186a0119392505050565b816001600160a01b0316836001600160a01b03161415611e8d5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c65720000000000000060448201526064016106fe565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610a2d613786565b600054610100900460ff1661102e5760405162461bcd60e51b81526004016106fe90614e1d565b600054610100900460ff16611f505760405162461bcd60e51b81526004016106fe90614e1d565b61104a82826137c8565b61102e611f02565b611f6d848484611b80565b611f7984848484613816565b6111e85760405162461bcd60e51b81526004016106fe90614e68565b60607f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d547cfb76040518163ffffffff1660e01b815260040160006040518083038186803b158015611ff057600080fd5b505afa158015612004573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261202c9190810190614eba565b905090565b6060816120555750506040805180820190915260018152600360fc1b602082015290565b8160005b811561207f578061206981614cdd565b91506120789050600a83614f47565b9150612059565b60008167ffffffffffffffff81111561209a5761209a61464e565b6040519080825280601f01601f1916602001820160405280156120c4576020820181803683370190505b5090505b8415611b78576120d9600183614c3e565b91506120e6600a86614f5b565b6120f1906030614c55565b60f81b81838151811061210657612106614bee565b60200101906001600160f81b031916908160001a905350612128600a86614f47565b94506120c8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166366227eb96040518163ffffffff1660e01b815260040160206040518083038186803b15801561218857600080fd5b505afa15801561219c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121c09190614b83565b6122085760405162461bcd60e51b8152602060048201526019602482015278262ca725a7232a1d1031b0b73737ba1036b4b73a103cb2ba1760391b60448201526064016106fe565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa1785fe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561226157600080fd5b505afa158015612275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122999190614b66565b6001600160a01b031663f3c95c60336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156122e757600080fd5b505afa1580156122fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061231f9190614b83565b61236b5760405162461bcd60e51b815260206004820152601a60248201527f4c594e4b4e46543a206e6f7420612076616c696420757365722e00000000000060448201526064016106fe565b60cc828260405161237d929190614f6f565b9081526040519081900360200190205460ff16156123dd5760405162461bcd60e51b815260206004820152601e60248201527f4c594e4b4e46543a206e616d6520616c726561647920696e20757365642e000060448201526064016106fe565b61241c82828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611d2792505050565b156124695760405162461bcd60e51b815260206004820152601760248201527f4c594e4b4e46543a207265766572736564206e616d652e00000000000000000060448201526064016106fe565b600160cc838360405161247d929190614f6f565b908152604051908190036020019020805491151560ff19909216919091179055600060cb816124a93390565b6001600160a01b03908116825260208083019390935260409182016000208251808401845290546001600160801b038082168352600160801b909104168185015282516303ed69ad60e21b815292519094507f000000000000000000000000000000000000000000000000000000000000000090911692630fb5a6b49260048082019391829003018186803b15801561254157600080fd5b505afa158015612555573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125799190614d4f565b815161258e906001600160801b031642614c3e565b106125c2576000602082810182905233825260cb90526040902080546001600160801b031916426001600160801b03161790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663600a2f826040518163ffffffff1660e01b815260040160206040518083038186803b15801561261b57600080fd5b505afa15801561262f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126539190614d4f565b81602001516001600160801b0316106126ba5760405162461bcd60e51b815260206004820152602360248201527f4c594e4b4e46543a2063616e6e6f74206d696e74206d6f726520696e2061206460448201526230bc9760e91b60648201526084016106fe565b60208101516126ca906001614f7f565b33600090815260cb6020526040812080546001600160801b03938416600160801b029316929092179091556126ff8686613923565b905061270b85336119cb565b60008061271733613d82565b91509150604051806080016040528060008152602001838152602001828152602001600081525060ca60008a815260200190815260200160002090600461275f929190614483565b5061276a33896136b4565b877f43332af98367d01c3bc9be42717917c42e1bd0084f4cdad927e9b4c06471d35160ca60008b815260200190815260200160002088886040516020016127b2929190614fa1565b60408051601f1981840301815290829052611aef92918c908990614d68565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa1785fe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561282a57600080fd5b505afa15801561283e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128629190614b66565b6001600160a01b031663f3c95c60336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015260240160206040518083038186803b1580156128b057600080fd5b505afa1580156128c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128e89190614b83565b6129345760405162461bcd60e51b815260206004820152601a60248201527f4c594e4b4e46543a206e6f7420612076616c696420757365722e00000000000060448201526064016106fe565b323314801561295357503361294884610c9f565b6001600160a01b0316145b6129985760405162461bcd60e51b8152602060048201526016602482015275262ca725a7232a1d103737ba103a34329037bbb732b960511b60448201526064016106fe565b8360038111156129aa576129aa614fbb565b612b20577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166377b330c96040518163ffffffff1660e01b815260040160206040518083038186803b158015612a0757600080fd5b505afa158015612a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a3f9190614b66565b6001600160a01b0316816001600160a01b03161480612aff57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b87436b6040518163ffffffff1660e01b815260040160206040518083038186803b158015612ab257600080fd5b505afa158015612ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aea9190614b66565b6001600160a01b0316816001600160a01b0316145b612b1b5760405162461bcd60e51b81526004016106fe90614fd1565b6131ed565b836003811115612b3257612b32614fbb565b60011415612d9857600083815260cd60209081526040918290208251808401845290546001600160801b038082168352600160801b909104168183015282516303ed69ad60e21b8152925190926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692630fb5a6b492600480840193829003018186803b158015612bca57600080fd5b505afa158015612bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c029190614d4f565b8151612c17906001600160801b031642614c3e565b10612c4b576000602082810182905285825260cd90526040902080546001600160801b0319166001600160801b0342161790555b60405163317369c560e11b8152600481018590527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906362e6d38a9060240160206040518083038186803b158015612cab57600080fd5b505afa158015612cbf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ce39190614d4f565b8382602001516001600160801b0316612cfc9190614c55565b1115612d595760405162461bcd60e51b815260206004820152602660248201527f4c594e4b4e46543a2063616e6e6f742075706772616465206d6f726520696e2060448201526530903230bc9760d11b60648201526084016106fe565b828160200151612d699190614f7f565b600085815260cd6020526040902080546001600160801b03928316600160801b0292169190911790555061312c565b60006001856003811115612dae57612dae614fbb565b612db89190614c3e565b905060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2cd99af836003811115612dfd57612dfd614fbb565b600088815260ca60205260409020805486908110612e1d57612e1d614bee565b90600052602060002001546040518363ffffffff1660e01b8152600401612e45929190615008565b604080518083038186803b158015612e5c57600080fd5b505afa158015612e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e949190614c04565b5090506000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b2cd99af8960ca60008b81526020019081526020016000208b6003811115612eef57612eef614fbb565b81548110612eff57612eff614bee565b906000526020600020015489612f159190614c55565b6040518363ffffffff1660e01b8152600401612f32929190615008565b604080518083038186803b158015612f4957600080fd5b505afa158015612f5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f819190614c04565b9150915081831180612f9b57508183148015612f9b575080155b612fe25760405162461bcd60e51b8152602060048201526018602482015277262ca725a7232a1d103632bb32b61037bb32b9333637bb9760411b60448201526064016106fe565b876003811115612ff457612ff4614fbb565b6002141561312757600087815260ca602052604081206001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063b2cd99af908390818154811061304e5761304e614bee565b90600052602060002001546040518363ffffffff1660e01b8152600401613076929190615008565b604080518083038186803b15801561308d57600080fd5b505afa1580156130a1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130c59190614c04565b509050828111806130de575082811480156130de575081155b6131255760405162461bcd60e51b8152602060048201526018602482015277262ca725a7232a1d103632bb32b61037bb32b9333637bb9760411b60448201526064016106fe565b505b505050505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c2e30dd06040518163ffffffff1660e01b815260040160206040518083038186803b15801561318557600080fd5b505afa158015613199573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131bd9190614b66565b6001600160a01b0316816001600160a01b0316146131ed5760405162461bcd60e51b81526004016106fe90614fd1565b6000816001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b15801561322857600080fd5b505afa15801561323c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132609190615034565b60ff169050600061327282600a615135565b61327c9085614dfe565b905061328883336119cb565b600085815260ca6020526040902084908760038111156132aa576132aa614fbb565b815481106132ba576132ba614bee565b9060005260206000200160008282546132d39190614c55565b92505081905550847f6a4348800167e375a04ba455a3563b96544c3d4a8662a4ca79307485fb6dbfc1878660405161330c929190615008565b60405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fa1785fe6040518163ffffffff1660e01b815260040160206040518083038186803b15801561336d57600080fd5b505afa158015613381573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133a59190614b66565b6001600160a01b031663562afdf5338860038111156133c6576133c6614fbb565b156133d25760006133d4565b865b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561341a57600080fd5b505af115801561342e573d6000803e3d6000fd5b50505050505050505050565b6001600160a01b038316613531578034146134975760405162461bcd60e51b815260206004820152601c60248201527f62617365436f6e74726163743a20696e76616c69642076616c75652e0000000060448201526064016106fe565b61079f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b00fd546040518163ffffffff1660e01b815260040160206040518083038186803b1580156134f357600080fd5b505afa158015613507573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061352b9190614b66565b82613e19565b604051636eb1769f60e11b81526001600160a01b03838116600483015230602483015282919085169063dd62ed3e9060440160206040518083038186803b15801561357b57600080fd5b505afa15801561358f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135b39190614d4f565b101561360d5760405162461bcd60e51b8152602060048201526024808201527f62617365436f6e74726163743a20696e73756666696369656e7420616c6c6f77604482015263616e636560e01b60648201526084016106fe565b61079f827f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b00fd546040518163ffffffff1660e01b815260040160206040518083038186803b15801561366a57600080fd5b505afa15801561367e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a29190614b66565b6001600160a01b038616919084613f32565b61104a828260405180602001604052806000815250613f8c565b6001600160a01b0383166137295761372481609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b61374c565b816001600160a01b0316836001600160a01b03161461374c5761374c8382613fbf565b6001600160a01b0382166137635761079f8161405c565b826001600160a01b0316826001600160a01b03161461079f5761079f828261410b565b60c954604080516020810192909252429082015244606082015260009060800160408051601f19818403018152919052805160209091012060c9819055919050565b600054610100900460ff166137ef5760405162461bcd60e51b81526004016106fe90614e1d565b81516138029060659060208501906144ce565b50805161079f9060669060208401906144ce565b60006001600160a01b0384163b1561391857604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061385a903390899088908890600401615141565b602060405180830381600087803b15801561387457600080fd5b505af19250505080156138a4575060408051601f3d908101601f191682019092526138a19181019061517e565b60015b6138fe573d8080156138d2576040519150601f19603f3d011682016040523d82523d6000602084013e6138d7565b606091505b5080516138f65760405162461bcd60e51b81526004016106fe90614e68565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611b78565b506001949350505050565b6000816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633b87436b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561398857600080fd5b505afa15801561399c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139c09190614b66565b6001600160a01b03161480613a765750816001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166377b330c96040518163ffffffff1660e01b815260040160206040518083038186803b158015613a3357600080fd5b505afa158015613a47573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a6b9190614b66565b6001600160a01b0316145b613a925760405162461bcd60e51b81526004016106fe90614fd1565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b815260040160206040518083038186803b158015613acd57600080fd5b505afa158015613ae1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613b059190615034565b60ff1690506000620493e08510613bcb57613b2182600a615135565b6040516330c3d99f60e11b8152600260048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636187b33e906024015b60206040518083038186803b158015613b8257600080fd5b505afa158015613b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613bba9190614d4f565b613bc49190614dfe565b9050613cdd565b62030d408510613c2d57613be082600a615135565b6040516330c3d99f60e11b8152600160048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636187b33e90602401613b6a565b613c3882600a615135565b6040516330c3d99f60e11b8152600060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636187b33e9060240160206040518083038186803b158015613c9857600080fd5b505afa158015613cac573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613cd09190614d4f565b613cda9190614dfe565b90505b620186a0851015613d305760405162461bcd60e51b815260206004820152601a60248201527f4c594e4b4e46543a207265766572736520746f6b656e2069642e00000000000060448201526064016106fe565b62061a808510611b785760405162461bcd60e51b815260206004820152601c60248201527f4c594e4b4e46543a20746f6b656e20696420746f6f206c617267652e0000000060448201526064016106fe565b6000806000613d8f613786565b90508084604051602001613dbf92919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60408051601f1981840301815291905280516020909101209050613de7600560ff8316614f5b565b613df2906001614c55565b9250613e06600360ff608084901c16614f5b565b613e11906001614c55565b915050915091565b80471015613e695760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e636500000060448201526064016106fe565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613eb6576040519150601f19603f3d011682016040523d82523d6000602084013e613ebb565b606091505b505090508061079f5760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d6179206861766520726576657274656400000000000060648201526084016106fe565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526111e890859061414f565b613f968383614221565b613fa36000848484613816565b61079f5760405162461bcd60e51b81526004016106fe90614e68565b60006001613fcc84610cff565b613fd69190614c3e565b600083815260986020526040902054909150808214614029576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b60995460009061406e90600190614c3e565b6000838152609a60205260408120546099805493945090928490811061409657614096614bee565b9060005260206000200154905080609983815481106140b7576140b7614bee565b6000918252602080832090910192909255828152609a909152604080822084905585825281205560998054806140ef576140ef61519b565b6001900381819060005260206000200160009055905550505050565b600061411683610cff565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b60006141a4826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661436f9092919063ffffffff16565b80519091501561079f57808060200190518101906141c29190614b83565b61079f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b60648201526084016106fe565b6001600160a01b0382166142775760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f206164647265737360448201526064016106fe565b6000818152606760205260409020546001600160a01b0316156142dc5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000060448201526064016106fe565b6142e8600083836136ce565b6001600160a01b0382166000908152606860205260408120805460019290614311908490614c55565b909155505060008181526067602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6060611b788484600085856001600160a01b0385163b6143d15760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016106fe565b600080866001600160a01b031685876040516143ed91906151b1565b60006040518083038185875af1925050503d806000811461442a576040519150601f19603f3d011682016040523d82523d6000602084013e61442f565b606091505b509150915061443f82828661444a565b979650505050505050565b6060831561445957508161124e565b8251156144695782518084602001fd5b8160405162461bcd60e51b81526004016106fe91906145e1565b8280548282559060005260206000209081019282156144be579160200282015b828111156144be5782518255916020019190600101906144a3565b506144ca929150614541565b5090565b8280546144da90614b2b565b90600052602060002090601f0160209004810192826144fc57600085556144be565b82601f1061451557805160ff19168380011785556144be565b828001600101855582156144be57918201828111156144be5782518255916020019190600101906144a3565b5b808211156144ca5760008155600101614542565b6001600160e01b031981168114610a2d57600080fd5b60006020828403121561457e57600080fd5b813561124e81614556565b60005b838110156145a457818101518382015260200161458c565b838111156111e85750506000910152565b600081518084526145cd816020860160208601614589565b601f01601f19169290920160200192915050565b60208152600061124e60208301846145b5565b60006020828403121561460657600080fd5b5035919050565b6001600160a01b0381168114610a2d57600080fd5b6000806040838503121561463557600080fd5b82356146408161460d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561468d5761468d61464e565b604052919050565b600067ffffffffffffffff8211156146af576146af61464e565b50601f01601f191660200190565b60006146d06146cb84614695565b614664565b90508281528383830111156146e457600080fd5b828260208301376000602084830101529392505050565b60006020828403121561470d57600080fd5b813567ffffffffffffffff81111561472457600080fd5b8201601f8101841361473557600080fd5b611b78848235602084016146bd565b60006020828403121561475657600080fd5b813561124e8161460d565b60008060006060848603121561477657600080fd5b83356147818161460d565b925060208401356147918161460d565b929592945050506040919091013590565b8015158114610a2d57600080fd5b600080604083850312156147c357600080fd5b82356147ce8161460d565b915060208301356147de816147a2565b809150509250929050565b600080600080608085870312156147ff57600080fd5b843561480a8161460d565b9350602085013561481a8161460d565b925060408501359150606085013567ffffffffffffffff81111561483d57600080fd5b8501601f8101871361484e57600080fd5b61485d878235602084016146bd565b91505092959194509250565b60008083601f84011261487b57600080fd5b50813567ffffffffffffffff81111561489357600080fd5b6020830191508360208285010111156148ab57600080fd5b9250929050565b60ff81168114610a2d57600080fd5b60008060008060008060008060006101008a8c0312156148e057600080fd5b8935985060208a01356148f28161460d565b975060408a013567ffffffffffffffff81111561490e57600080fd5b61491a8c828d01614869565b90985096505060608a0135945060808a0135935060a08a013561493c816148b2565b8093505060c08a0135915060e08a013590509295985092959850929598565b80356004811061496a57600080fd5b919050565b60008060008060008060008060006101208a8c03121561498e57600080fd5b6149978a61495b565b985060208a0135975060408a0135965060608a01356149b58161460d565b955060808a0135945060a08a0135935060c08a01356149d3816148b2565b8093505060e08a013591506101008a013590509295985092959850929598565b60008060008060808587031215614a0957600080fd5b614a128561495b565b935060208501359250604085013591506060850135614a308161460d565b939692955090935050565b6020808252825182820181905260009190848201906040850190845b81811015614a7357835183529284019291840191600101614a57565b50909695505050505050565b60008060408385031215614a9257600080fd5b50508035926020909101359150565b60008060008060608587031215614ab757600080fd5b843593506020850135614ac98161460d565b9250604085013567ffffffffffffffff811115614ae557600080fd5b614af187828801614869565b95989497509550505050565b60008060408385031215614b1057600080fd5b8235614b1b8161460d565b915060208301356147de8161460d565b600181811c90821680614b3f57607f821691505b60208210811415614b6057634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215614b7857600080fd5b815161124e8161460d565b600060208284031215614b9557600080fd5b815161124e816147a2565b6020808252602e908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526d1c881b9bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b60008060408385031215614c1757600080fd5b505080516020909101519092909150565b634e487b7160e01b600052601160045260246000fd5b600082821015614c5057614c50614c28565b500390565b60008219821115614c6857614c68614c28565b500190565b60008351614c7f818460208801614589565b835190830190614c93818360208801614589565b01949350505050565b6001600160a01b0397881681529590961660208601526040850193909352606084019190915260ff16608083015260a082015260c081019190915260e00190565b6000600019821415614cf157614cf1614c28565b5060010190565b60008251614d0a818460208701614589565b642e6c796e6b60d81b920191825250600501919050565b60008060408385031215614d3457600080fd5b8251614d3f8161460d565b6020939093015192949293505050565b600060208284031215614d6157600080fd5b5051919050565b6000608082016080835280875480835260a08501915088600052602092508260002060005b82811015614da957815484529284019260019182019101614d8d565b50505083810382850152614dbd81886145b5565b6001600160a01b039690961660408501525050506060015292915050565b600060ff821660ff841680821015614df557614df5614c28565b90039392505050565b6000816000190483118215151615614e1857614e18614c28565b500290565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600060208284031215614ecc57600080fd5b815167ffffffffffffffff811115614ee357600080fd5b8201601f81018413614ef457600080fd5b8051614f026146cb82614695565b818152856020838501011115614f1757600080fd5b614f28826020830160208601614589565b95945050505050565b634e487b7160e01b600052601260045260246000fd5b600082614f5657614f56614f31565b500490565b600082614f6a57614f6a614f31565b500690565b8183823760009101908152919050565b60006001600160801b03808316818516808303821115614c9357614c93614c28565b81838237642e6c796e6b60d81b9101908152600501919050565b634e487b7160e01b600052602160045260246000fd5b6020808252601d908201527f4c594e4b4e46543a20756e737570706f72746564207061796d656e742e000000604082015260600190565b604081016004841061502a57634e487b7160e01b600052602160045260246000fd5b9281526020015290565b60006020828403121561504657600080fd5b815161124e816148b2565b600181815b8085111561508c57816000190482111561507257615072614c28565b8085161561507f57918102915b93841c9390800290615056565b509250929050565b6000826150a3575060016105ca565b816150b0575060006105ca565b81600181146150c657600281146150d0576150ec565b60019150506105ca565b60ff8411156150e1576150e1614c28565b50506001821b6105ca565b5060208310610133831016604e8410600b841016171561510f575081810a6105ca565b6151198383615051565b806000190482111561512d5761512d614c28565b029392505050565b600061124e8383615094565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090615174908301846145b5565b9695505050505050565b60006020828403121561519057600080fd5b815161124e81614556565b634e487b7160e01b600052603160045260246000fd5b600082516151c3818460208701614589565b919091019291505056fea2646970667358221220e9b4c41bafd950d8d597f8377109f1f46d3c21dcade5ccbdc3dd889d7465147064736f6c63430008090033000000000000000000000000a9d28f8b259700ef85bf4b08b6f2e96924641af8