34 txs
80 calls
constructor
constructor(string uri_, string name_)
functions
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getAllItemsOwnedByUser
viewfunction getAllItemsOwnedByUser(address user_) view returns (uint256[], uint256[], string[])
getAmountOfItem
viewfunction getAmountOfItem(uint256 tokenId_) view returns (uint256, uint256)
getIndexByTokenIdOfUser
viewfunction getIndexByTokenIdOfUser(address user_, uint256 tokenId_) view returns (uint256)
getMaxAmountOfItem
viewfunction getMaxAmountOfItem(uint256 tokenId_) view returns (uint256)
getMintedAmountOfItem
viewfunction getMintedAmountOfItem(uint256 tokenId_) view returns (uint256)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getTokenIdByIndexOfUser
viewfunction getTokenIdByIndexOfUser(address user_, uint256 index_) view returns (uint256)
getTotalItemTypeOwnedByUser
viewfunction getTotalItemTypeOwnedByUser(address user_) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
name
viewfunction name() view returns (string)
OPERATOR
viewfunction OPERATOR() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
uri
viewfunction uri(uint256 tokenId_) view returns (string)
addOperator
nonpayablefunction addOperator(address operator)
burnBatchItem
nonpayablefunction burnBatchItem(address from_, uint256[] tokenIds_, uint256[] amounts_)
burnItem
nonpayablefunction burnItem(address from_, uint256 tokenId_, uint256 amount_)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
mintBatchItem
nonpayablefunction mintBatchItem(address to_, uint256[] tokenIds_, uint256[] amounts_)
mintItem
nonpayablefunction mintItem(address to_, uint256 tokenId_, uint256 amount_)
removeOperator
nonpayablefunction removeOperator(address operator)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseUri
nonpayablefunction setBaseUri(string uri_)
setMaxAmountOfItems
nonpayablefunction setMaxAmountOfItems(uint256[] tokenIds_, uint256[] amounts_)
setName
nonpayablefunction setName(string name_)
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
URI
event URI(string value, uint256 indexed id)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b5060405162003692380380620036928339810160408190526200003491620001ef565b81818162000042816200006b565b506003620000518282620002e8565b5062000063915060009050336200007d565b5050620003b4565b6002620000798282620002e8565b5050565b60008281526008602090815260408083206001600160a01b038516845290915290205462000079908390839060ff16620000795760008281526008602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620000e63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200015257600080fd5b81516001600160401b03808211156200016f576200016f6200012a565b604051601f8301601f19908116603f011681019082821181831017156200019a576200019a6200012a565b81604052838152602092508683858801011115620001b757600080fd5b600091505b83821015620001db5785820183015181830184015290820190620001bc565b600093810190920192909252949350505050565b600080604083850312156200020357600080fd5b82516001600160401b03808211156200021b57600080fd5b620002298683870162000140565b935060208501519150808211156200024057600080fd5b506200024f8582860162000140565b9150509250929050565b600181811c908216806200026e57607f821691505b6020821081036200028f57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002e357600081815260208120601f850160051c81016020861015620002be5750805b601f850160051c820191505b81811015620002df57828155600101620002ca565b5050505b505050565b81516001600160401b038111156200030457620003046200012a565b6200031c8162000315845462000259565b8462000295565b602080601f8311600181146200035457600084156200033b5750858301515b600019600386901b1c1916600185901b178555620002df565b600085815260208120601f198616915b82811015620003855788860151825594840194600190910190840162000364565b5085821015620003a45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6132ce80620003c46000396000f3fe608060405234801561001057600080fd5b50600436106101ef5760003560e01c8063983d27371161010f578063c47f0027116100a2578063f242432a11610071578063f242432a14610488578063f698898c1461049b578063fb3182ff146104ae578063fd8721a2146104eb57600080fd5b8063c47f002714610413578063d258153514610426578063d547741f14610439578063e985e9c51461044c57600080fd5b8063a22cb465116100de578063a22cb465146103b8578063a3f1e574146103cb578063ac8a584a146103de578063b4e57834146103f157600080fd5b8063983d2737146103755780639870d7fe1461038a578063a0bcfc7f1461039d578063a217fddf146103b057600080fd5b80634130072411610187578063696a50b411610156578063696a50b41461031c5780636f7a83241461032f57806391d148541461034f5780639733a6ab1461036257600080fd5b806341300724146102c357806341df8d0d146102d657806346039dd9146102e95780634e1273f4146102fc57600080fd5b8063248a9ca3116101c3578063248a9ca3146102655780632eb2c2d6146102885780632f2ff15d1461029d57806336568abe146102b057600080fd5b8062fdd58e146101f457806301ffc9a71461021a57806306fdde031461023d5780630e89341c14610252575b600080fd5b6102076102023660046124be565b61050e565b6040519081526020015b60405180910390f35b61022d6102283660046124fe565b6105a7565b6040519015158152602001610211565b6102456105b2565b604051610211919061256b565b61024561026036600461257e565b610644565b61020761027336600461257e565b60009081526008602052604090206001015490565b61029b6102963660046126ea565b61067f565b005b61029b6102ab366004612793565b6106cb565b61029b6102be366004612793565b6106f5565b61029b6102d13660046127bf565b610773565b6102076102e4366004612822565b6107a4565b6102076102f73660046124be565b6107e8565b61030f61030a36600461283d565b610839565b604051610211919061292b565b61029b61032a36600461293e565b610962565b61020761033d36600461257e565b60009081526004602052604090205490565b61022d61035d366004612793565b6109b1565b6102076103703660046124be565b6109dc565b61020760008051602061327983398151915281565b61029b610398366004612822565b610a2d565b61029b6103ab366004612971565b610a6f565b610207600081565b61029b6103c63660046129c1565b610a9f565b61029b6103d93660046129fd565b610aaa565b61029b6103ec366004612822565b610ae9565b6104046103ff366004612822565b610b28565b60405161021193929190612a70565b61029b610421366004612971565b610d35565b61029b61043436600461293e565b610d65565b61029b610447366004612793565b610da4565b61022d61045a366004612af7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b61029b610496366004612b21565b610dc9565b61029b6104a93660046129fd565b610e0e565b6104d66104bc36600461257e565b600090815260046020526040902080546001909101549091565b60408051928352602083019190915201610211565b6102076104f936600461257e565b60009081526004602052604090206001015490565b60006001600160a01b03831661057e5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152602081815260408083206001600160a01b03861684529091529020545b92915050565b60006105a182610e5d565b6060600380546105c190612b85565b80601f01602080910402602001604051908101604052809291908181526020018280546105ed90612b85565b801561063a5780601f1061060f5761010080835404028352916020019161063a565b820191906000526020600020905b81548152906001019060200180831161061d57829003601f168201915b5050505050905090565b606061064f82610e82565b61065883610f16565b604051602001610669929190612bbf565b6040516020818303038152906040529050919050565b6001600160a01b03851633148061069b575061069b853361045a565b6106b75760405162461bcd60e51b815260040161057590612bee565b6106c48585858585610fa8565b5050505050565b6000828152600860205260409020600101546106e681611152565b6106f0838361115c565b505050565b6001600160a01b03811633146107655760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610575565b61076f82826111e2565b5050565b61077e6000336109b1565b61079a5760405162461bcd60e51b815260040161057590612c3c565b61076f8282611249565b60006001600160a01b0382166107cc5760405162461bcd60e51b815260040161057590612c73565b506001600160a01b031660009081526005602052604090205490565b60006001600160a01b0383166108105760405162461bcd60e51b815260040161057590612c73565b506001600160a01b03919091166000908152600760209081526040808320938352929052205490565b6060815183511461089e5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610575565b600083516001600160401b038111156108b9576108b9612597565b6040519080825280602002602001820160405280156108e2578160200160208202803683370190505b50905060005b845181101561095a5761092d85828151811061090657610906612cb4565b602002602001015185838151811061092057610920612cb4565b602002602001015161050e565b82828151811061093f5761093f612cb4565b602090810291909101015261095381612ce0565b90506108e8565b509392505050565b61097a600080516020613279833981519152336109b1565b6109965760405162461bcd60e51b815260040161057590612cf9565b6106f083838360405180602001604052806000815250611303565b60009182526008602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006001600160a01b038316610a045760405162461bcd60e51b815260040161057590612c73565b506001600160a01b03919091166000908152600660209081526040808320938352929052205490565b610a386000336109b1565b610a545760405162461bcd60e51b815260040161057590612c3c565b610a6c600080516020613279833981519152826113ec565b50565b610a7a6000336109b1565b610a965760405162461bcd60e51b815260040161057590612c3c565b610a6c816113f6565b61076f338383611402565b610ac2600080516020613279833981519152336109b1565b610ade5760405162461bcd60e51b815260040161057590612cf9565b6106f08383836114e2565b610af46000336109b1565b610b105760405162461bcd60e51b815260040161057590612c3c565b610a6c60008051602061327983398151915282610da4565b606080806001600160a01b038416610b525760405162461bcd60e51b815260040161057590612c73565b6001600160a01b03841660009081526005602052604081205490816001600160401b03811115610b8457610b84612597565b604051908082528060200260200182016040528015610bad578160200160208202803683370190505b5090506000826001600160401b03811115610bca57610bca612597565b604051908082528060200260200182016040528015610bfd57816020015b6060815260200190600190039081610be85790505b5090506000836001600160401b03811115610c1a57610c1a612597565b604051908082528060200260200182016040528015610c43578160200160208202803683370190505b50905060005b84811015610d27576001600160a01b038916600090815260066020526040812090610c75836001612d30565b815260200190815260200160002054848281518110610c9657610c96612cb4565b602002602001018181525050610cb88985838151811061092057610920612cb4565b828281518110610cca57610cca612cb4565b602002602001018181525050610cf8848281518110610ceb57610ceb612cb4565b6020026020010151610644565b838281518110610d0a57610d0a612cb4565b6020908102919091010152610d20600182612d30565b9050610c49565b509197919650945092505050565b610d406000336109b1565b610d5c5760405162461bcd60e51b815260040161057590612c3c565b610a6c81611680565b610d7d600080516020613279833981519152336109b1565b610d995760405162461bcd60e51b815260040161057590612cf9565b6106f083838361168c565b600082815260086020526040902060010154610dbf81611152565b6106f083836111e2565b6001600160a01b038516331480610de55750610de5853361045a565b610e015760405162461bcd60e51b815260040161057590612bee565b6106c485858585856117a4565b610e26600080516020613279833981519152336109b1565b610e425760405162461bcd60e51b815260040161057590612cf9565b6106f0838383604051806020016040528060008152506118dc565b60006001600160e01b03198216637965db0b60e01b14806105a157506105a182611a36565b606060028054610e9190612b85565b80601f0160208091040260200160405190810160405280929190818152602001828054610ebd90612b85565b8015610f0a5780601f10610edf57610100808354040283529160200191610f0a565b820191906000526020600020905b815481529060010190602001808311610eed57829003601f168201915b50505050509050919050565b60606000610f2383611a86565b60010190506000816001600160401b03811115610f4257610f42612597565b6040519080825280601f01601f191660200182016040528015610f6c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084610f7657509392505050565b8151835114610fc95760405162461bcd60e51b815260040161057590612d43565b6001600160a01b038416610fef5760405162461bcd60e51b815260040161057590612d8b565b33610ffe818787878787611b5e565b60005b84518110156110e457600085828151811061101e5761101e612cb4565b60200260200101519050600085838151811061103c5761103c612cb4565b602090810291909101810151600084815280835260408082206001600160a01b038e16835290935291909120549091508181101561108c5760405162461bcd60e51b815260040161057590612dd0565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906110c9908490612d30565b92505081905550505050806110dd90612ce0565b9050611001565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611134929190612e1a565b60405180910390a461114a818787878787611be0565b505050505050565b610a6c8133611d3b565b61116682826109b1565b61076f5760008281526008602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561119e3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111ec82826109b1565b1561076f5760008281526008602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b805182511461129a5760405162461bcd60e51b815260206004820152601a60248201527f54776f20617272617973206c656e677468206d69736d617463680000000000006044820152606401610575565b60005b82518110156106f0578181815181106112b8576112b8612cb4565b6020026020010151600460008584815181106112d6576112d6612cb4565b6020908102919091018101518252810191909152604001600020556112fc600182612d30565b905061129d565b6001600160a01b0384166113295760405162461bcd60e51b815260040161057590612e48565b33600061133585611d94565b9050600061134285611d94565b905061135383600089858589611b5e565b6000868152602081815260408083206001600160a01b038b16845290915281208054879290611383908490612d30565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46113e383600089898989611ddf565b50505050505050565b61076f828261115c565b600261076f8282612ecf565b816001600160a01b0316836001600160a01b0316036114755760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610575565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383166115085760405162461bcd60e51b815260040161057590612f8e565b80518251146115295760405162461bcd60e51b815260040161057590612d43565b600033905061154c81856000868660405180602001604052806000815250611b5e565b60005b835181101561161157600084828151811061156c5761156c612cb4565b60200260200101519050600084838151811061158a5761158a612cb4565b602090810291909101810151600084815280835260408082206001600160a01b038c1683529093529190912054909150818110156115da5760405162461bcd60e51b815260040161057590612fd1565b6000928352602083815260408085206001600160a01b038b168652909152909220910390558061160981612ce0565b91505061154f565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611662929190612e1a565b60405180910390a46040805160208101909152600090525b50505050565b600361076f8282612ecf565b6001600160a01b0383166116b25760405162461bcd60e51b815260040161057590612f8e565b3360006116be84611d94565b905060006116cb84611d94565b90506116eb83876000858560405180602001604052806000815250611b5e565b6000858152602081815260408083206001600160a01b038a1684529091529020548481101561172c5760405162461bcd60e51b815260040161057590612fd1565b6000868152602081815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46040805160208101909152600090526113e3565b6001600160a01b0384166117ca5760405162461bcd60e51b815260040161057590612d8b565b3360006117d685611d94565b905060006117e385611d94565b90506117f3838989858589611b5e565b6000868152602081815260408083206001600160a01b038c168452909152902054858110156118345760405162461bcd60e51b815260040161057590612dd0565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611871908490612d30565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46118d1848a8a8a8a8a611ddf565b505050505050505050565b6001600160a01b0384166119025760405162461bcd60e51b815260040161057590612e48565b81518351146119235760405162461bcd60e51b815260040161057590612d43565b3361193381600087878787611b5e565b60005b84518110156119ce5783818151811061195157611951612cb4565b602002602001015160008087848151811061196e5761196e612cb4565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546119b69190612d30565b909155508190506119c681612ce0565b915050611936565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611a1f929190612e1a565b60405180910390a46106c481600087878787611be0565b60006001600160e01b03198216636cdb3d1360e11b1480611a6757506001600160e01b031982166303a24d0760e21b145b806105a157506301ffc9a760e01b6001600160e01b03198316146105a1565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611ac55772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611af1576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611b0f57662386f26fc10000830492506010015b6305f5e1008310611b27576305f5e100830492506008015b6127108310611b3b57612710830492506004015b60648310611b4d576064830492506002015b600a83106105a15760010192915050565b6001600160a01b038516611b7b57611b768383611e9a565b611b9f565b836001600160a01b0316856001600160a01b031614611b9f57611b9f858484611fa7565b6001600160a01b038416611bbc57611bb783836120f4565b61114a565b846001600160a01b0316846001600160a01b03161461114a5761114a8484846121dc565b6001600160a01b0384163b1561114a5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611c249089908990889088908890600401613015565b6020604051808303816000875af1925050508015611c5f575060408051601f3d908101601f19168201909252611c5c91810190613073565b60015b611d0b57611c6b613090565b806308c379a003611ca45750611c7f6130ac565b80611c8a5750611ca6565b8060405162461bcd60e51b8152600401610575919061256b565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610575565b6001600160e01b0319811663bc197c8160e01b146113e35760405162461bcd60e51b815260040161057590613135565b611d4582826109b1565b61076f57611d52816122ee565b611d5d836020612300565b604051602001611d6e92919061317d565b60408051601f198184030181529082905262461bcd60e51b82526105759160040161256b565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110611dce57611dce612cb4565b602090810291909101015292915050565b6001600160a01b0384163b1561114a5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190611e2390899089908890889088906004016131f2565b6020604051808303816000875af1925050508015611e5e575060408051601f3d908101601f19168201909252611e5b91810190613073565b60015b611e6a57611c6b613090565b6001600160e01b0319811663f23a6e6160e01b146113e35760405162461bcd60e51b815260040161057590613135565b60005b82518110156106f0576000838281518110611eba57611eba612cb4565b602002602001015190506000838381518110611ed857611ed8612cb4565b60200260200101519050600080611f0384600090815260046020526040902080546001909101549091565b90925090508115611f675781611f198483612d30565b1115611f675760405162461bcd60e51b815260206004820181905260248201527f457863656564696e67206d6178696d756d206e756d626572206f66206974656d6044820152606401610575565b60008481526004602052604081206001018054859290611f88908490612d30565b9250508190555050505050600181611fa09190612d30565b9050611e9d565b60005b825181101561167a576000838281518110611fc757611fc7612cb4565b602002602001015190506000838381518110611fe557611fe5612cb4565b60200260200101519050611ff9868361050e565b81036120df576001600160a01b0386166000908152600560209081526040808320546007835281842086855290925290912054808214612075576001600160a01b038816600081815260066020908152604080832086845282528083205485845281842081905593835260078252808320938352929052208190555b6001600160a01b038816600090815260056020526040812080546001929061209e908490613237565b9091555050506001600160a01b0387166000818152600760209081526040808320878452825280832083905592825260068152828220938252929092528120555b506120ed9050600182612d30565b9050611faa565b60005b82518110156106f057600083828151811061211457612114612cb4565b60200260200101519050600083838151811061213257612132612cb4565b60200260200101519050806121568360009081526004602052604090206001015490565b10156121ae5760405162461bcd60e51b815260206004820152602160248201527f4275726e20616d6f756e742065786365656473206d696e74656420616d6f756e6044820152601d60fa1b6064820152608401610575565b60009182526004602052604090912060019081018054929092039091556121d59082612d30565b90506120f7565b60005b825181101561167a5760008382815181106121fc576121fc612cb4565b60200260200101519050600083838151811061221a5761221a612cb4565b6020026020010151905061222e868361050e565b15801561223b5750600081115b801561226857506001600160a01b0386166000908152600760209081526040808320858452909152902054155b156122d9576001600160a01b038616600090815260056020526040812054612291906001612d30565b6001600160a01b038816600081815260056020908152604080832085905560078252808320888452825280832085905592825260068152828220938252929092529020839055505b506122e79050600182612d30565b90506121df565b60606105a16001600160a01b03831660145b6060600061230f83600261324a565b61231a906002612d30565b6001600160401b0381111561233157612331612597565b6040519080825280601f01601f19166020018201604052801561235b576020820181803683370190505b509050600360fc1b8160008151811061237657612376612cb4565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106123a5576123a5612cb4565b60200101906001600160f81b031916908160001a90535060006123c984600261324a565b6123d4906001612d30565b90505b600181111561244c576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061240857612408612cb4565b1a60f81b82828151811061241e5761241e612cb4565b60200101906001600160f81b031916908160001a90535060049490941c9361244581613261565b90506123d7565b50831561249b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610575565b9392505050565b80356001600160a01b03811681146124b957600080fd5b919050565b600080604083850312156124d157600080fd5b6124da836124a2565b946020939093013593505050565b6001600160e01b031981168114610a6c57600080fd5b60006020828403121561251057600080fd5b813561249b816124e8565b60005b8381101561253657818101518382015260200161251e565b50506000910152565b6000815180845261255781602086016020860161251b565b601f01601f19169290920160200192915050565b60208152600061249b602083018461253f565b60006020828403121561259057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156125d2576125d2612597565b6040525050565b60006001600160401b038211156125f2576125f2612597565b5060051b60200190565b600082601f83011261260d57600080fd5b8135602061261a826125d9565b60405161262782826125ad565b83815260059390931b850182019282810191508684111561264757600080fd5b8286015b84811015612662578035835291830191830161264b565b509695505050505050565b60006001600160401b0383111561268657612686612597565b60405161269d601f8501601f1916602001826125ad565b8091508381528484840111156126b257600080fd5b83836020830137600060208583010152509392505050565b600082601f8301126126db57600080fd5b61249b8383356020850161266d565b600080600080600060a0868803121561270257600080fd5b61270b866124a2565b9450612719602087016124a2565b935060408601356001600160401b038082111561273557600080fd5b61274189838a016125fc565b9450606088013591508082111561275757600080fd5b61276389838a016125fc565b9350608088013591508082111561277957600080fd5b50612786888289016126ca565b9150509295509295909350565b600080604083850312156127a657600080fd5b823591506127b6602084016124a2565b90509250929050565b600080604083850312156127d257600080fd5b82356001600160401b03808211156127e957600080fd5b6127f5868387016125fc565b9350602085013591508082111561280b57600080fd5b50612818858286016125fc565b9150509250929050565b60006020828403121561283457600080fd5b61249b826124a2565b6000806040838503121561285057600080fd5b82356001600160401b038082111561286757600080fd5b818501915085601f83011261287b57600080fd5b81356020612888826125d9565b60405161289582826125ad565b83815260059390931b85018201928281019150898411156128b557600080fd5b948201945b838610156128da576128cb866124a2565b825294820194908201906128ba565b9650508601359250508082111561280b57600080fd5b600081518084526020808501945080840160005b8381101561292057815187529582019590820190600101612904565b509495945050505050565b60208152600061249b60208301846128f0565b60008060006060848603121561295357600080fd5b61295c846124a2565b95602085013595506040909401359392505050565b60006020828403121561298357600080fd5b81356001600160401b0381111561299957600080fd5b8201601f810184136129aa57600080fd5b6129b98482356020840161266d565b949350505050565b600080604083850312156129d457600080fd5b6129dd836124a2565b9150602083013580151581146129f257600080fd5b809150509250929050565b600080600060608486031215612a1257600080fd5b612a1b846124a2565b925060208401356001600160401b0380821115612a3757600080fd5b612a43878388016125fc565b93506040860135915080821115612a5957600080fd5b50612a66868287016125fc565b9150509250925092565b606081526000612a8360608301866128f0565b602083820381850152612a9682876128f0565b915083820360408501528185518084528284019150828160051b85010183880160005b83811015612ae757601f19878403018552612ad583835161253f565b94860194925090850190600101612ab9565b50909a9950505050505050505050565b60008060408385031215612b0a57600080fd5b612b13836124a2565b91506127b6602084016124a2565b600080600080600060a08688031215612b3957600080fd5b612b42866124a2565b9450612b50602087016124a2565b9350604086013592506060860135915060808601356001600160401b03811115612b7957600080fd5b612786888289016126ca565b600181811c90821680612b9957607f821691505b602082108103612bb957634e487b7160e01b600052602260045260246000fd5b50919050565b60008351612bd181846020880161251b565b835190830190612be581836020880161251b565b01949350505050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526017908201527f43616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b60208082526021908201527f41646472657373207a65726f206973206e6f7420612076616c6964206f776e656040820152603960f91b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201612cf257612cf2612cca565b5060010190565b6020808252601a908201527f43616c6c6572206973206e6f7420746865206f70657261746f72000000000000604082015260600190565b808201808211156105a1576105a1612cca565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000612e2d60408301856128f0565b8281036020840152612e3f81856128f0565b95945050505050565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b601f8211156106f057600081815260208120601f850160051c81016020861015612eb05750805b601f850160051c820191505b8181101561114a57828155600101612ebc565b81516001600160401b03811115612ee857612ee8612597565b612efc81612ef68454612b85565b84612e89565b602080601f831160018114612f315760008415612f195750858301515b600019600386901b1c1916600185901b17855561114a565b600085815260208120601f198616915b82811015612f6057888601518255948401946001909101908401612f41565b5085821015612f7e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090613041908301866128f0565b828103606084015261305381866128f0565b90508281036080840152613067818561253f565b98975050505050505050565b60006020828403121561308557600080fd5b815161249b816124e8565b600060033d11156130a95760046000803e5060005160e01c5b90565b600060443d10156130ba5790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156130e957505050505090565b82850191508151818111156131015750505050505090565b843d870101602082850101111561311b5750505050505090565b61312a602082860101876125ad565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516131b581601785016020880161251b565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516131e681602884016020880161251b565b01602801949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061322c9083018461253f565b979650505050505050565b818103818111156105a1576105a1612cca565b80820281158282048414176105a1576105a1612cca565b60008161327057613270612cca565b50600019019056fe523a704056dcd17bcf83bed8b68c59416dac1119be77755efe3bde0a64e46e0ca2646970667358221220b715b4f3146e38ba3314c45e168271f2fe5a1206a4d685b8c7c6c49d0fe3760664736f6c63430008110033000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000003268747470733a2f2f6170692d6d61726b65742e67656e736f2e67616d652f6170692f6d657461646174612f626c6f636b732f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b47454e534f2e426c6f636b000000000000000000000000000000000000000000