{"abi":[{"type":"constructor","inputs":[{"name":"_bridge","type":"address","internalType":"address"},{"name":"_remoteChainId","type":"uint256","internalType":"uint256"},{"name":"_remoteToken","type":"address","internalType":"address"},{"name":"_name","type":"string","internalType":"string"},{"name":"_symbol","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"BRIDGE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"REMOTE_TOKEN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"baseTokenURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"bridge","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"_from","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"remoteChainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"remoteToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"safeMint","inputs":[{"name":"_to","type":"address","internalType":"address"},{"name":"_tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"_interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenByIndex","inputs":[{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenOfOwnerByIndex","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"index","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"version","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"Burn","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Mint","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60e06040523480156200001157600080fd5b50604051620031bf380380620031bf83398101604081905262000034916200062d565b8181600062000044838262000756565b50600162000053828262000756565b5050506001600160a01b038516620000d85760405162461bcd60e51b815260206004820152603360248201527f4f7074696d69736d4d696e7461626c654552433732313a20627269646765206360448201527f616e6e6f7420626520616464726573732830290000000000000000000000000060648201526084015b60405180910390fd5b83600003620001505760405162461bcd60e51b815260206004820152603660248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465206360448201527f6861696e2069642063616e6e6f74206265207a65726f000000000000000000006064820152608401620000cf565b6001600160a01b038316620001ce5760405162461bcd60e51b815260206004820152603960248201527f4f7074696d69736d4d696e7461626c654552433732313a2072656d6f7465207460448201527f6f6b656e2063616e6e6f742062652061646472657373283029000000000000006064820152608401620000cf565b60808490526001600160a01b0383811660a081905290861660c0526200020290601462000256602090811b62000eed17901c565b62000218856200041660201b620011301760201c565b6040516020016200022b92919062000822565b604051602081830303815290604052600a90816200024a919062000756565b50505050505062000993565b6060600062000267836002620008ac565b62000274906002620008ce565b6001600160401b038111156200028e576200028e62000553565b6040519080825280601f01601f191660200182016040528015620002b9576020820181803683370190505b509050600360fc1b81600081518110620002d757620002d7620008e9565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110620003095762000309620008e9565b60200101906001600160f81b031916908160001a90535060006200032f846002620008ac565b6200033c906001620008ce565b90505b6001811115620003be576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110620003745762000374620008e9565b1a60f81b8282815181106200038d576200038d620008e9565b60200101906001600160f81b031916908160001a90535060049490941c93620003b681620008ff565b90506200033f565b5083156200040f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620000cf565b9392505050565b6060816000036200043e5750506040805180820190915260018152600360fc1b602082015290565b8160005b81156200046e5780620004558162000919565b9150620004669050600a836200094b565b915062000442565b6000816001600160401b038111156200048b576200048b62000553565b6040519080825280601f01601f191660200182016040528015620004b6576020820181803683370190505b5090505b84156200052e57620004ce60018362000962565b9150620004dd600a866200097c565b620004ea906030620008ce565b60f81b818381518110620005025762000502620008e9565b60200101906001600160f81b031916908160001a90535062000526600a866200094b565b9450620004ba565b949350505050565b80516001600160a01b03811681146200054e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015620005865781810151838201526020016200056c565b8381111562000596576000848401525b50505050565b600082601f830112620005ae57600080fd5b81516001600160401b0380821115620005cb57620005cb62000553565b604051601f8301601f19908116603f01168101908282118183101715620005f657620005f662000553565b816040528381528660208588010111156200061057600080fd5b6200062384602083016020890162000569565b9695505050505050565b600080600080600060a086880312156200064657600080fd5b620006518662000536565b945060208601519350620006686040870162000536565b60608701519093506001600160401b03808211156200068657600080fd5b6200069489838a016200059c565b93506080880151915080821115620006ab57600080fd5b50620006ba888289016200059c565b9150509295509295909350565b600181811c90821680620006dc57607f821691505b602082108103620006fd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200075157600081815260208120601f850160051c810160208610156200072c5750805b601f850160051c820191505b818110156200074d5782815560010162000738565b5050505b505050565b81516001600160401b0381111562000772576200077262000553565b6200078a81620007838454620006c7565b8462000703565b602080601f831160018114620007c25760008415620007a95750858301515b600019600386901b1c1916600185901b1785556200074d565b600085815260208120601f198616915b82811015620007f357888601518255948401946001909101908401620007d2565b5085821015620008125787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6832ba3432b932bab69d60b91b8152600083516200084881600985016020880162000569565b600160fe1b60099184019182015283516200086b81600a84016020880162000569565b712f746f6b656e5552493f75696e743235363d60701b600a9290910191820152601c01949350505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615620008c957620008c962000896565b500290565b60008219821115620008e457620008e462000896565b500190565b634e487b7160e01b600052603260045260246000fd5b60008162000911576200091162000896565b506000190190565b6000600182016200092e576200092e62000896565b5060010190565b634e487b7160e01b600052601260045260246000fd5b6000826200095d576200095d62000935565b500490565b60008282101562000977576200097762000896565b500390565b6000826200098e576200098e62000935565b500690565b60805160a05160c0516127d9620009e6600039600081816103e20152818161047a01528181610b210152610c430152600081816101e001526103bc015260008181610329015261040801526127d96000f3fe608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103e0578063e951819614610406578063e985e9c51461042c578063ee9a31a21461047557600080fd5b8063c87b56dd1461039f578063d547cfb7146103b2578063d6c0b2c4146103ba57600080fd5b8063a1448194116100c8578063a144819414610366578063a22cb46514610379578063b88d4fde1461038c57600080fd5b80637d1d0c5b1461032457806395d89b411461034b5780639dc29fac1461035357600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102af57806354fd4d50146102c25780636352211e146102fe57806370a082311461031157600080fd5b806323b872dd146102765780632f745c591461028957806342842e0e1461029c57600080fd5b8063081812fc1161018c578063081812fc1461023c578063095ea7b31461024f57806318160ddd1461026457600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde0314610227575b600080fd5b6101c66101c1366004612226565b61049c565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d2565b61022f6104fa565b6040516101d291906122b9565b61020261024a3660046122cc565b61058c565b61026261025d36600461230e565b6105c0565b005b6008545b6040519081526020016101d2565b610262610284366004612338565b610751565b61026861029736600461230e565b6107f2565b6102626102aa366004612338565b6108c1565b6102686102bd3660046122cc565b6108dc565b61022f6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61020261030c3660046122cc565b61099a565b61026861031f366004612374565b610a2c565b6102687f000000000000000000000000000000000000000000000000000000000000000081565b61022f610afa565b61026261036136600461230e565b610b09565b61026261037436600461230e565b610c2b565b61026261038736600461238f565b610d42565b61026261039a3660046123fa565b610d51565b61022f6103ad3660046122cc565b610df9565b61022f610e5f565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610268565b6101c661043a3660046124f4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007f74259ebf000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104f357506104f38361126d565b9392505050565b60606000805461050990612527565b80601f016020809104026020016040519081016040528092919081815260200182805461053590612527565b80156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b5050505050905090565b6000610597826112c3565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006105cb8261099a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806106b657506106b6813361043a565b610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610684565b61074c8383611351565b505050565b61075b33826113f1565b6107e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610684565b61074c8383836114b0565b60006107fd83610a2c565b821061088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610684565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b61074c83838360405180602001604052806000815250610d51565b60006108e760085490565b8210610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610684565b600882815481106109885761098861257a565b90600052602060002001549050919050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610684565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610684565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461050990612527565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610684565b610bd781611722565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610c1f91815260200190565b60405180910390a25050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610cf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610684565b610cfa82826117fb565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610c1f91815260200190565b610d4d338383611815565b5050565b610d5b33836113f1565b610de7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610684565b610df384848484611942565b50505050565b6060610e04826112c3565b6000610e0e6119e5565b90506000815111610e2e57604051806020016040528060008152506104f3565b80610e3884611130565b604051602001610e499291906125a9565b6040516020818303038152906040529392505050565b600a8054610e6c90612527565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9890612527565b8015610ee55780601f10610eba57610100808354040283529160200191610ee5565b820191906000526020600020905b815481529060010190602001808311610ec857829003601f168201915b505050505081565b60606000610efc836002612607565b610f07906002612644565b67ffffffffffffffff811115610f1f57610f1f6123cb565b6040519080825280601f01601f191660200182016040528015610f49576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610f8057610f8061257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610fe357610fe361257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061101f846002612607565b61102a906001612644565b90505b60018111156110c7577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061106b5761106b61257a565b1a60f81b8282815181106110815761108161257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936110c08161265c565b905061102d565b5083156104f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610684565b60608160000361117357505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561119d578061118781612691565b91506111969050600a836126f8565b9150611177565b60008167ffffffffffffffff8111156111b8576111b86123cb565b6040519080825280601f01601f1916602001820160405280156111e2576020820181803683370190505b5090505b8415611265576111f760018361270c565b9150611204600a86612723565b61120f906030612644565b60f81b8183815181106112245761122461257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061125e600a866126f8565b94506111e6565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610a265750610a26826119f4565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1661134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610684565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906113ab8261099a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806113fd8361099a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061146b575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061126557508373ffffffffffffffffffffffffffffffffffffffff166114918461058c565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166114d08261099a565b73ffffffffffffffffffffffffffffffffffffffff1614611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610684565b73ffffffffffffffffffffffffffffffffffffffff8216611615576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610684565b611620838383611ad7565b61162b600082611351565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080546001929061166190849061270c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080546001929061169c908490612644565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061172d8261099a565b905061173b81600084611ad7565b611746600083611351565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080546001929061177c90849061270c565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610d4d828260405180602001604052806000815250611bdd565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610684565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61194d8484846114b0565b61195984848484611c80565b610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b6060600a805461050990612527565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480611a8757507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610a2657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a26565b73ffffffffffffffffffffffffffffffffffffffff8316611b3f57611b3a81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611b7c565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b7c57611b7c8382611e73565b73ffffffffffffffffffffffffffffffffffffffff8216611ba05761074c81611f2a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461074c5761074c8282611fd9565b611be7838361202a565b611bf46000848484611c80565b61074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611e68576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611cf7903390899088908890600401612737565b6020604051808303816000875af1925050508015611d50575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d4d91810190612780565b60015b611e1d573d808015611d7e576040519150601f19603f3d011682016040523d82523d6000602084013e611d83565b606091505b508051600003611e15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611265565b506001949350505050565b60006001611e8084610a2c565b611e8a919061270c565b600083815260076020526040902054909150808214611eea5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b50600091825260076020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600681528383209183525290812055565b600854600090611f3c9060019061270c565b60008381526009602052604081205460088054939450909284908110611f6457611f6461257a565b906000526020600020015490508060088381548110611f8557611f8561257a565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611fbd57611fbd61279d565b6001900381819060005260206000200160009055905550505050565b6000611fe483610a2c565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b73ffffffffffffffffffffffffffffffffffffffff82166120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610684565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610684565b61213f60008383611ad7565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290612175908490612644565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461134e57600080fd5b60006020828403121561223857600080fd5b81356104f3816121f8565b60005b8381101561225e578181015183820152602001612246565b83811115610df35750506000910152565b60008151808452612287816020860160208601612243565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104f3602083018461226f565b6000602082840312156122de57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461230957600080fd5b919050565b6000806040838503121561232157600080fd5b61232a836122e5565b946020939093013593505050565b60008060006060848603121561234d57600080fd5b612356846122e5565b9250612364602085016122e5565b9150604084013590509250925092565b60006020828403121561238657600080fd5b6104f3826122e5565b600080604083850312156123a257600080fd5b6123ab836122e5565b9150602083013580151581146123c057600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561241057600080fd5b612419856122e5565b9350612427602086016122e5565b925060408501359150606085013567ffffffffffffffff8082111561244b57600080fd5b818701915087601f83011261245f57600080fd5b813581811115612471576124716123cb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156124b7576124b76123cb565b816040528281528a60208487010111156124d057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561250757600080fd5b612510836122e5565b915061251e602084016122e5565b90509250929050565b600181811c9082168061253b57607f821691505b602082108103612574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516125bb818460208801612243565b8351908301906125cf818360208801612243565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561263f5761263f6125d8565b500290565b60008219821115612657576126576125d8565b500190565b60008161266b5761266b6125d8565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126c2576126c26125d8565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612707576127076126c9565b500490565b60008282101561271e5761271e6125d8565b500390565b600082612732576127326126c9565b500690565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612776608083018461226f565b9695505050505050565b60006020828403121561279257600080fd5b81516104f3816121f8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a","sourceMap":"843:3602:275:-:0;;;1948:1014;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2128:5;2135:7;1456:5:58;:13;2128:5:275;1456::58;:13;:::i;:::-;-1:-1:-1;1479:7:58;:17;1489:7;1479;:17;:::i;:::-;-1:-1:-1;;;;;;;;2166:21:275;::::1;2158:85;;;::::0;-1:-1:-1;;;2158:85:275;;4873:2:416;2158:85:275::1;::::0;::::1;4855:21:416::0;4912:2;4892:18;;;4885:30;4951:34;4931:18;;;4924:62;5022:21;5002:18;;;4995:49;5061:19;;2158:85:275::1;;;;;;;;;2261:14;2279:1;2261:19:::0;2253:86:::1;;;::::0;-1:-1:-1;;;2253:86:275;;5293:2:416;2253:86:275::1;::::0;::::1;5275:21:416::0;5332:2;5312:18;;;5305:30;5371:34;5351:18;;;5344:62;5442:24;5422:18;;;5415:52;5484:19;;2253:86:275::1;5091:418:416::0;2253:86:275::1;-1:-1:-1::0;;;;;2357:26:275;::::1;2349:96;;;::::0;-1:-1:-1;;;2349:96:275;;5716:2:416;2349:96:275::1;::::0;::::1;5698:21:416::0;5755:2;5735:18;;;5728:30;5794:34;5774:18;;;5767:62;5865:27;5845:18;;;5838:55;5910:19;;2349:96:275::1;5514:421:416::0;2349:96:275::1;2456:32;::::0;;;-1:-1:-1;;;;;2498:27:275;;::::1;;::::0;;;2535:16;;::::1;;::::0;2776:46:::1;::::0;2819:2:::1;2776:19;;::::0;;::::1;;;:46:::0;::::1;:::i;:::-;2861:32;2878:14;2861:16;;;;;:32;;:::i;:::-;2713:232;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2678:12;:277;;;;;;:::i;:::-;;1948:1014:::0;;;;;843:3602;;1652:441:67;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;-1:-1:-1;;;;;1774:25:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:67;;1752:47;;-1:-1:-1;;;1809:6:67;1816:1;1809:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1809:15:67;;;;;;;;;-1:-1:-1;;;1834:6:67;1841:1;1834:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1834:15:67;;;;;;;;-1:-1:-1;1864:9:67;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;-1:-1:-1;;;1943:5:67;1951:3;1943:11;1930:25;;;;;;;:::i;:::-;;;;1918:6;1925:1;1918:9;;;;;;;;:::i;:::-;;;;:37;-1:-1:-1;;;;;1918:37:67;;;;;;;;-1:-1:-1;1979:1:67;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:67;;2000:55;;;;-1:-1:-1;;;2000:55:67;;7784:2:416;2000:55:67;;;7766:21:416;;;7803:18;;;7796:30;7862:34;7842:18;;;7835:62;7914:18;;2000:55:67;7582:356:416;2000:55:67;2079:6;1652:441;-1:-1:-1;;;1652:441:67:o;392:703::-;448:13;665:5;674:1;665:10;661:51;;-1:-1:-1;;691:10:67;;;;;;;;;;;;-1:-1:-1;;;691:10:67;;;;;392:703::o;661:51::-;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:67;;-1:-1:-1;837:2:67;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;-1:-1:-1;;;;;881:17:67;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:67;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:67;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;;;:::i;:::-;;;;:56;-1:-1:-1;;;;;966:56:67;;;;;;;;-1:-1:-1;1036:11:67;1045:2;1036:11;;:::i;:::-;;;908:150;;;1081:6;392:703;-1:-1:-1;;;;392:703:67:o;14:177:416:-;93:13;;-1:-1:-1;;;;;135:31:416;;125:42;;115:70;;181:1;178;171:12;115:70;14:177;;;:::o;196:127::-;257:10;252:3;248:20;245:1;238:31;288:4;285:1;278:15;312:4;309:1;302:15;328:258;400:1;410:113;424:6;421:1;418:13;410:113;;;500:11;;;494:18;481:11;;;474:39;446:2;439:10;410:113;;;541:6;538:1;535:13;532:48;;;576:1;567:6;562:3;558:16;551:27;532:48;;328:258;;;:::o;591:686::-;645:5;698:3;691:4;683:6;679:17;675:27;665:55;;716:1;713;706:12;665:55;739:13;;-1:-1:-1;;;;;801:10:416;;;798:36;;;814:18;;:::i;:::-;889:2;883:9;857:2;943:13;;-1:-1:-1;;939:22:416;;;963:2;935:31;931:40;919:53;;;987:18;;;1007:22;;;984:46;981:72;;;1033:18;;:::i;:::-;1073:10;1069:2;1062:22;1108:2;1100:6;1093:18;1154:3;1147:4;1142:2;1134:6;1130:15;1126:26;1123:35;1120:55;;;1171:1;1168;1161:12;1120:55;1184:63;1244:2;1237:4;1229:6;1225:17;1218:4;1210:6;1206:17;1184:63;:::i;:::-;1265:6;591:686;-1:-1:-1;;;;;;591:686:416:o;1282:795::-;1408:6;1416;1424;1432;1440;1493:3;1481:9;1472:7;1468:23;1464:33;1461:53;;;1510:1;1507;1500:12;1461:53;1533:40;1563:9;1533:40;:::i;:::-;1523:50;;1613:2;1602:9;1598:18;1592:25;1582:35;;1636:49;1681:2;1670:9;1666:18;1636:49;:::i;:::-;1729:2;1714:18;;1708:25;1626:59;;-1:-1:-1;;;;;;1782:14:416;;;1779:34;;;1809:1;1806;1799:12;1779:34;1832:61;1885:7;1876:6;1865:9;1861:22;1832:61;:::i;:::-;1822:71;;1939:3;1928:9;1924:19;1918:26;1902:42;;1969:2;1959:8;1956:16;1953:36;;;1985:1;1982;1975:12;1953:36;;2008:63;2063:7;2052:8;2041:9;2037:24;2008:63;:::i;:::-;1998:73;;;1282:795;;;;;;;;:::o;2082:380::-;2161:1;2157:12;;;;2204;;;2225:61;;2279:4;2271:6;2267:17;2257:27;;2225:61;2332:2;2324:6;2321:14;2301:18;2298:38;2295:161;;2378:10;2373:3;2369:20;2366:1;2359:31;2413:4;2410:1;2403:15;2441:4;2438:1;2431:15;2295:161;;2082:380;;;:::o;2593:545::-;2695:2;2690:3;2687:11;2684:448;;;2731:1;2756:5;2752:2;2745:17;2801:4;2797:2;2787:19;2871:2;2859:10;2855:19;2852:1;2848:27;2842:4;2838:38;2907:4;2895:10;2892:20;2889:47;;;-1:-1:-1;2930:4:416;2889:47;2985:2;2980:3;2976:12;2973:1;2969:20;2963:4;2959:31;2949:41;;3040:82;3058:2;3051:5;3048:13;3040:82;;;3103:17;;;3084:1;3073:13;3040:82;;;3044:3;;;2684:448;2593:545;;;:::o;3314:1352::-;3434:10;;-1:-1:-1;;;;;3456:30:416;;3453:56;;;3489:18;;:::i;:::-;3518:97;3608:6;3568:38;3600:4;3594:11;3568:38;:::i;:::-;3562:4;3518:97;:::i;:::-;3670:4;;3734:2;3723:14;;3751:1;3746:663;;;;4453:1;4470:6;4467:89;;;-1:-1:-1;4522:19:416;;;4516:26;4467:89;-1:-1:-1;;3271:1:416;3267:11;;;3263:24;3259:29;3249:40;3295:1;3291:11;;;3246:57;4569:81;;3716:944;;3746:663;2540:1;2533:14;;;2577:4;2564:18;;-1:-1:-1;;3782:20:416;;;3900:236;3914:7;3911:1;3908:14;3900:236;;;4003:19;;;3997:26;3982:42;;4095:27;;;;4063:1;4051:14;;;;3930:19;;3900:236;;;3904:3;4164:6;4155:7;4152:19;4149:201;;;4225:19;;;4219:26;-1:-1:-1;;4308:1:416;4304:14;;;4320:3;4300:24;4296:37;4292:42;4277:58;4262:74;;4149:201;-1:-1:-1;;;;;4396:1:416;4380:14;;;4376:22;4363:36;;-1:-1:-1;3314:1352:416:o;5940:926::-;-1:-1:-1;;;6447:3:416;6440:24;6422:3;6493:6;6487:13;6509:61;6563:6;6559:1;6554:3;6550:11;6543:4;6535:6;6531:17;6509:61;:::i;:::-;-1:-1:-1;;;6629:1:416;6589:16;;;6621:10;;;6614:23;6662:13;;6684:63;6662:13;6733:2;6725:11;;6718:4;6706:17;;6684:63;:::i;:::-;-1:-1:-1;;;6807:2:416;6766:17;;;;6799:11;;;6792:41;6857:2;6849:11;;5940:926;-1:-1:-1;;;;5940:926:416:o;6871:127::-;6932:10;6927:3;6923:20;6920:1;6913:31;6963:4;6960:1;6953:15;6987:4;6984:1;6977:15;7003:168;7043:7;7109:1;7105;7101:6;7097:14;7094:1;7091:21;7086:1;7079:9;7072:17;7068:45;7065:71;;;7116:18;;:::i;:::-;-1:-1:-1;7156:9:416;;7003:168::o;7176:128::-;7216:3;7247:1;7243:6;7240:1;7237:13;7234:39;;;7253:18;;:::i;:::-;-1:-1:-1;7289:9:416;;7176:128::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:136;7480:3;7508:5;7498:39;;7517:18;;:::i;:::-;-1:-1:-1;;;7553:18:416;;7441:136::o;7943:135::-;7982:3;8003:17;;;8000:43;;8023:18;;:::i;:::-;-1:-1:-1;8070:1:416;8059:13;;7943:135::o;8083:127::-;8144:10;8139:3;8135:20;8132:1;8125:31;8175:4;8172:1;8165:15;8199:4;8196:1;8189:15;8215:120;8255:1;8281;8271:35;;8286:18;;:::i;:::-;-1:-1:-1;8320:9:416;;8215:120::o;8340:125::-;8380:4;8408:1;8405;8402:8;8399:34;;;8413:18;;:::i;:::-;-1:-1:-1;8450:9:416;;8340:125::o;8470:112::-;8502:1;8528;8518:35;;8533:18;;:::i;:::-;-1:-1:-1;8567:9:416;;8470:112::o;:::-;843:3602:275;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101ae5760003560e01c80637d1d0c5b116100ee578063c87b56dd11610097578063e78cea9211610071578063e78cea92146103e0578063e951819614610406578063e985e9c51461042c578063ee9a31a21461047557600080fd5b8063c87b56dd1461039f578063d547cfb7146103b2578063d6c0b2c4146103ba57600080fd5b8063a1448194116100c8578063a144819414610366578063a22cb46514610379578063b88d4fde1461038c57600080fd5b80637d1d0c5b1461032457806395d89b411461034b5780639dc29fac1461035357600080fd5b806323b872dd1161015b5780634f6ccce7116101355780634f6ccce7146102af57806354fd4d50146102c25780636352211e146102fe57806370a082311461031157600080fd5b806323b872dd146102765780632f745c591461028957806342842e0e1461029c57600080fd5b8063081812fc1161018c578063081812fc1461023c578063095ea7b31461024f57806318160ddd1461026457600080fd5b806301ffc9a7146101b3578063033964be146101db57806306fdde0314610227575b600080fd5b6101c66101c1366004612226565b61049c565b60405190151581526020015b60405180910390f35b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101d2565b61022f6104fa565b6040516101d291906122b9565b61020261024a3660046122cc565b61058c565b61026261025d36600461230e565b6105c0565b005b6008545b6040519081526020016101d2565b610262610284366004612338565b610751565b61026861029736600461230e565b6107f2565b6102626102aa366004612338565b6108c1565b6102686102bd3660046122cc565b6108dc565b61022f6040518060400160405280600581526020017f312e332e3000000000000000000000000000000000000000000000000000000081525081565b61020261030c3660046122cc565b61099a565b61026861031f366004612374565b610a2c565b6102687f000000000000000000000000000000000000000000000000000000000000000081565b61022f610afa565b61026261036136600461230e565b610b09565b61026261037436600461230e565b610c2b565b61026261038736600461238f565b610d42565b61026261039a3660046123fa565b610d51565b61022f6103ad3660046122cc565b610df9565b61022f610e5f565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610202565b7f0000000000000000000000000000000000000000000000000000000000000000610268565b6101c661043a3660046124f4565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260056020908152604080832093909416825291909152205460ff1690565b6102027f000000000000000000000000000000000000000000000000000000000000000081565b60007f74259ebf000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083168114806104f357506104f38361126d565b9392505050565b60606000805461050990612527565b80601f016020809104026020016040519081016040528092919081815260200182805461053590612527565b80156105825780601f1061055757610100808354040283529160200191610582565b820191906000526020600020905b81548152906001019060200180831161056557829003601f168201915b5050505050905090565b6000610597826112c3565b5060009081526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006105cb8261099a565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361068d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff821614806106b657506106b6813361043a565b610742576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c00006064820152608401610684565b61074c8383611351565b505050565b61075b33826113f1565b6107e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610684565b61074c8383836114b0565b60006107fd83610a2c565b821061088b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e64730000000000000000000000000000000000000000006064820152608401610684565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600660209081526040808320938352929052205490565b61074c83838360405180602001604052806000815250610d51565b60006108e760085490565b8210610975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e647300000000000000000000000000000000000000006064820152608401610684565b600882815481106109885761098861257a565b90600052602060002001549050919050565b60008181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610a26576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610684565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff8216610ad1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e657200000000000000000000000000000000000000000000006064820152608401610684565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526003602052604090205490565b60606001805461050990612527565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610bce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610684565b610bd781611722565b8173ffffffffffffffffffffffffffffffffffffffff167fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca582604051610c1f91815260200190565b60405180910390a25050565b3373ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610cf0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f4f7074696d69736d4d696e7461626c654552433732313a206f6e6c792062726960448201527f6467652063616e2063616c6c20746869732066756e6374696f6e0000000000006064820152608401610684565b610cfa82826117fb565b8173ffffffffffffffffffffffffffffffffffffffff167f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688582604051610c1f91815260200190565b610d4d338383611815565b5050565b610d5b33836113f1565b610de7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f7665640000000000000000000000000000000000006064820152608401610684565b610df384848484611942565b50505050565b6060610e04826112c3565b6000610e0e6119e5565b90506000815111610e2e57604051806020016040528060008152506104f3565b80610e3884611130565b604051602001610e499291906125a9565b6040516020818303038152906040529392505050565b600a8054610e6c90612527565b80601f0160208091040260200160405190810160405280929190818152602001828054610e9890612527565b8015610ee55780601f10610eba57610100808354040283529160200191610ee5565b820191906000526020600020905b815481529060010190602001808311610ec857829003601f168201915b505050505081565b60606000610efc836002612607565b610f07906002612644565b67ffffffffffffffff811115610f1f57610f1f6123cb565b6040519080825280601f01601f191660200182016040528015610f49576020820181803683370190505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110610f8057610f8061257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110610fe357610fe361257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600061101f846002612607565b61102a906001612644565b90505b60018111156110c7577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061106b5761106b61257a565b1a60f81b8282815181106110815761108161257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936110c08161265c565b905061102d565b5083156104f3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610684565b60608160000361117357505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b811561119d578061118781612691565b91506111969050600a836126f8565b9150611177565b60008167ffffffffffffffff8111156111b8576111b86123cb565b6040519080825280601f01601f1916602001820160405280156111e2576020820181803683370190505b5090505b8415611265576111f760018361270c565b9150611204600a86612723565b61120f906030612644565b60f81b8183815181106112245761122461257a565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535061125e600a866126f8565b94506111e6565b949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d63000000000000000000000000000000000000000000000000000000001480610a265750610a26826119f4565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1661134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606401610684565b50565b600081815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906113ab8261099a565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806113fd8361099a565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061146b575073ffffffffffffffffffffffffffffffffffffffff80821660009081526005602090815260408083209388168352929052205460ff165b8061126557508373ffffffffffffffffffffffffffffffffffffffff166114918461058c565b73ffffffffffffffffffffffffffffffffffffffff1614949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166114d08261099a565b73ffffffffffffffffffffffffffffffffffffffff1614611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610684565b73ffffffffffffffffffffffffffffffffffffffff8216611615576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f72657373000000000000000000000000000000000000000000000000000000006064820152608401610684565b611620838383611ad7565b61162b600082611351565b73ffffffffffffffffffffffffffffffffffffffff8316600090815260036020526040812080546001929061166190849061270c565b909155505073ffffffffffffffffffffffffffffffffffffffff8216600090815260036020526040812080546001929061169c908490612644565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b600061172d8261099a565b905061173b81600084611ad7565b611746600083611351565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260036020526040812080546001929061177c90849061270c565b909155505060008281526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b610d4d828260405180602001604052806000815250611bdd565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610684565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61194d8484846114b0565b61195984848484611c80565b610df3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b6060600a805461050990612527565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480611a8757507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b80610a2657507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614610a26565b73ffffffffffffffffffffffffffffffffffffffff8316611b3f57611b3a81600880546000838152600960205260408120829055600182018355919091527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30155565b611b7c565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611b7c57611b7c8382611e73565b73ffffffffffffffffffffffffffffffffffffffff8216611ba05761074c81611f2a565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461074c5761074c8282611fd9565b611be7838361202a565b611bf46000848484611c80565b61074c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611e68576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611cf7903390899088908890600401612737565b6020604051808303816000875af1925050508015611d50575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d4d91810190612780565b60015b611e1d573d808015611d7e576040519150601f19603f3d011682016040523d82523d6000602084013e611d83565b606091505b508051600003611e15576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610684565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611265565b506001949350505050565b60006001611e8084610a2c565b611e8a919061270c565b600083815260076020526040902054909150808214611eea5773ffffffffffffffffffffffffffffffffffffffff841660009081526006602090815260408083208584528252808320548484528184208190558352600790915290208190555b50600091825260076020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600681528383209183525290812055565b600854600090611f3c9060019061270c565b60008381526009602052604081205460088054939450909284908110611f6457611f6461257a565b906000526020600020015490508060088381548110611f8557611f8561257a565b6000918252602080832090910192909255828152600990915260408082208490558582528120556008805480611fbd57611fbd61279d565b6001900381819060005260206000200160009055905550505050565b6000611fe483610a2c565b73ffffffffffffffffffffffffffffffffffffffff9093166000908152600660209081526040808320868452825280832085905593825260079052919091209190915550565b73ffffffffffffffffffffffffffffffffffffffff82166120a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610684565b60008181526002602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612133576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610684565b61213f60008383611ad7565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600360205260408120805460019290612175908490612644565b909155505060008181526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461134e57600080fd5b60006020828403121561223857600080fd5b81356104f3816121f8565b60005b8381101561225e578181015183820152602001612246565b83811115610df35750506000910152565b60008151808452612287816020860160208601612243565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b6020815260006104f3602083018461226f565b6000602082840312156122de57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461230957600080fd5b919050565b6000806040838503121561232157600080fd5b61232a836122e5565b946020939093013593505050565b60008060006060848603121561234d57600080fd5b612356846122e5565b9250612364602085016122e5565b9150604084013590509250925092565b60006020828403121561238657600080fd5b6104f3826122e5565b600080604083850312156123a257600080fd5b6123ab836122e5565b9150602083013580151581146123c057600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000806080858703121561241057600080fd5b612419856122e5565b9350612427602086016122e5565b925060408501359150606085013567ffffffffffffffff8082111561244b57600080fd5b818701915087601f83011261245f57600080fd5b813581811115612471576124716123cb565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156124b7576124b76123cb565b816040528281528a60208487010111156124d057600080fd5b82602086016020830137600060208483010152809550505050505092959194509250565b6000806040838503121561250757600080fd5b612510836122e5565b915061251e602084016122e5565b90509250929050565b600181811c9082168061253b57607f821691505b602082108103612574577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600083516125bb818460208801612243565b8351908301906125cf818360208801612243565b01949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561263f5761263f6125d8565b500290565b60008219821115612657576126576125d8565b500190565b60008161266b5761266b6125d8565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036126c2576126c26125d8565b5060010190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612707576127076126c9565b500490565b60008282101561271e5761271e6125d8565b500390565b600082612732576127326126c9565b500690565b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152612776608083018461226f565b9695505050505050565b60006020828403121561279257600080fd5b81516104f3816121f8565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea164736f6c634300080f000a","sourceMap":"843:3602:275:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3987:263;;;;;;:::i;:::-;;:::i;:::-;;;611:14:416;;604:22;586:41;;574:2;559:18;3987:263:275;;;;;;;;1070:37;;;;;;;;814:42:416;802:55;;;784:74;;772:2;757:18;1070:37:275;638:226:416;2470:98:58;;;:::i;:::-;;;;;;;:::i;3935:167::-;;;;;;:::i;:::-;;:::i;3467:407::-;;;;;;:::i;:::-;;:::i;:::-;;1615:111:61;1702:10;:17;1615:111;;;2470:25:416;;;2458:2;2443:18;1615:111:61;2324:177:416;4612:327:58;;;;;;:::i;:::-;;:::i;1291:253:61:-;;;;;;:::i;:::-;;:::i;5005:179:58:-;;;;;;:::i;:::-;;:::i;1798:230:61:-;;;;;;:::i;:::-;;:::i;1582:40:275:-;;;;;;;;;;;;;;;;;;;;;2190:218:58;;;;;;:::i;:::-;;:::i;1929:204::-;;;;;;:::i;:::-;;:::i;979:40:275:-;;;;;2632:102:58;;;:::i;3632:144:275:-;;;;;;:::i;:::-;;:::i;3429:153::-;;;;;;:::i;:::-;;:::i;4169::58:-;;;;;;:::i;:::-;;:::i;5250:315::-;;;;;;:::i;:::-;;:::i;2800:276::-;;;;;;:::i;:::-;;:::i;1243:26:275:-;;;:::i;3158:91::-;3230:12;3158:91;;3299:80;3366:6;3299:80;;3012:96;3086:15;3012:96;;4388:162:58;;;;;;:::i;:::-;4508:25;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4388:162;1158:31:275;;;;;3987:263;4092:4;4123:41;4181:21;;;;;;:62;;;4206:37;4230:12;4206:23;:37::i;:::-;4174:69;3987:263;-1:-1:-1;;;3987:263:275:o;2470:98:58:-;2524:13;2556:5;2549:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2470:98;:::o;3935:167::-;4011:7;4030:23;4045:7;4030:14;:23::i;:::-;-1:-1:-1;4071:24:58;;;;:15;:24;;;;;;;;;3935:167::o;3467:407::-;3547:13;3563:23;3578:7;3563:14;:23::i;:::-;3547:39;;3610:5;3604:11;;:2;:11;;;3596:57;;;;;;;5682:2:416;3596:57:58;;;5664:21:416;5721:2;5701:18;;;5694:30;5760:34;5740:18;;;5733:62;5831:3;5811:18;;;5804:31;5852:19;;3596:57:58;;;;;;;;;719:10:65;3685:21:58;;;;;:62;;-1:-1:-1;3710:37:58;3727:5;719:10:65;4388:162:58;:::i;3710:37::-;3664:171;;;;;;;6084:2:416;3664:171:58;;;6066:21:416;6123:2;6103:18;;;6096:30;6162:34;6142:18;;;6135:62;6233:32;6213:18;;;6206:60;6283:19;;3664:171:58;5882:426:416;3664:171:58;3846:21;3855:2;3859:7;3846:8;:21::i;:::-;3537:337;3467:407;;:::o;4612:327::-;4801:41;719:10:65;4834:7:58;4801:18;:41::i;:::-;4793:100;;;;;;;6515:2:416;4793:100:58;;;6497:21:416;6554:2;6534:18;;;6527:30;6593:34;6573:18;;;6566:62;6664:16;6644:18;;;6637:44;6698:19;;4793:100:58;6313:410:416;4793:100:58;4904:28;4914:4;4920:2;4924:7;4904:9;:28::i;1291:253:61:-;1388:7;1423:23;1440:5;1423:16;:23::i;:::-;1415:5;:31;1407:87;;;;;;;6930:2:416;1407:87:61;;;6912:21:416;6969:2;6949:18;;;6942:30;7008:34;6988:18;;;6981:62;7079:13;7059:18;;;7052:41;7110:19;;1407:87:61;6728:407:416;1407:87:61;-1:-1:-1;1511:19:61;;;;;;;;;:12;:19;;;;;;;;:26;;;;;;;;;1291:253::o;5005:179:58:-;5138:39;5155:4;5161:2;5165:7;5138:39;;;;;;;;;;;;:16;:39::i;1798:230:61:-;1873:7;1908:30;1702:10;:17;;1615:111;1908:30;1900:5;:38;1892:95;;;;;;;7342:2:416;1892:95:61;;;7324:21:416;7381:2;7361:18;;;7354:30;7420:34;7400:18;;;7393:62;7491:14;7471:18;;;7464:42;7523:19;;1892:95:61;7140:408:416;1892:95:61;2004:10;2015:5;2004:17;;;;;;;;:::i;:::-;;;;;;;;;1997:24;;1798:230;;;:::o;2190:218:58:-;2262:7;2297:16;;;:7;:16;;;;;;;;;2323:56;;;;;;;7944:2:416;2323:56:58;;;7926:21:416;7983:2;7963:18;;;7956:30;8022:26;8002:18;;;7995:54;8066:18;;2323:56:58;7742:348:416;2323:56:58;2396:5;2190:218;-1:-1:-1;;2190:218:58:o;1929:204::-;2001:7;2028:19;;;2020:73;;;;;;;8297:2:416;2020:73:58;;;8279:21:416;8336:2;8316:18;;;8309:30;8375:34;8355:18;;;8348:62;8446:11;8426:18;;;8419:39;8475:19;;2020:73:58;8095:405:416;2020:73:58;-1:-1:-1;2110:16:58;;;;;;:9;:16;;;;;;;1929:204::o;2632:102::-;2688:13;2720:7;2713:14;;;;;:::i;3632:144:275:-;1412:10;:20;1426:6;1412:20;;1404:91;;;;;;;8707:2:416;1404:91:275;;;8689:21:416;8746:2;8726:18;;;8719:30;8785:34;8765:18;;;8758:62;8856:28;8836:18;;;8829:56;8902:19;;1404:91:275;8505:422:416;1404:91:275;3717:15:::1;3723:8;3717:5;:15::i;:::-;3753:5;3748:21;;;3760:8;3748:21;;;;2470:25:416::0;;2458:2;2443:18;;2324:177;3748:21:275::1;;;;;;;;3632:144:::0;;:::o;3429:153::-;1412:10;:20;1426:6;1412:20;;1404:91;;;;;;;8707:2:416;1404:91:275;;;8689:21:416;8746:2;8726:18;;;8719:30;8785:34;8765:18;;;8758:62;8856:28;8836:18;;;8829:56;8902:19;;1404:91:275;8505:422:416;1404:91:275;3516:24:::1;3526:3;3531:8;3516:9;:24::i;:::-;3561:3;3556:19;;;3566:8;3556:19;;;;2470:25:416::0;;2458:2;2443:18;;2324:177;4169:153:58;4263:52;719:10:65;4296:8:58;4306;4263:18;:52::i;:::-;4169:153;;:::o;5250:315::-;5418:41;719:10:65;5451:7:58;5418:18;:41::i;:::-;5410:100;;;;;;;6515:2:416;5410:100:58;;;6497:21:416;6554:2;6534:18;;;6527:30;6593:34;6573:18;;;6566:62;6664:16;6644:18;;;6637:44;6698:19;;5410:100:58;6313:410:416;5410:100:58;5520:38;5534:4;5540:2;5544:7;5553:4;5520:13;:38::i;:::-;5250:315;;;;:::o;2800:276::-;2873:13;2898:23;2913:7;2898:14;:23::i;:::-;2932:21;2956:10;:8;:10::i;:::-;2932:34;;3007:1;2989:7;2983:21;:25;:86;;;;;;;;;;;;;;;;;3035:7;3044:18;:7;:16;:18::i;:::-;3018:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2976:93;2800:276;-1:-1:-1;;;2800:276:58:o;1243:26:275:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1652:441:67:-;1727:13;1752:19;1784:10;1788:6;1784:1;:10;:::i;:::-;:14;;1797:1;1784:14;:::i;:::-;1774:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1774:25:67;;1752:47;;1809:15;:6;1816:1;1809:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;;1834;:6;1841:1;1834:9;;;;;;;;:::i;:::-;;;;:15;;;;;;;;;;-1:-1:-1;1864:9:67;1876:10;1880:6;1876:1;:10;:::i;:::-;:14;;1889:1;1876:14;:::i;:::-;1864:26;;1859:132;1896:1;1892;:5;1859:132;;;1930:12;1943:5;1951:3;1943:11;1930:25;;;;;;;:::i;:::-;;;;1918:6;1925:1;1918:9;;;;;;;;:::i;:::-;;;;:37;;;;;;;;;;-1:-1:-1;1979:1:67;1969:11;;;;;1899:3;;;:::i;:::-;;;1859:132;;;-1:-1:-1;2008:10:67;;2000:55;;;;;;;10365:2:416;2000:55:67;;;10347:21:416;;;10384:18;;;10377:30;10443:34;10423:18;;;10416:62;10495:18;;2000:55:67;10163:356:416;392:703:67;448:13;665:5;674:1;665:10;661:51;;-1:-1:-1;;691:10:67;;;;;;;;;;;;;;;;;;392:703::o;661:51::-;736:5;721:12;775:75;782:9;;775:75;;807:8;;;;:::i;:::-;;-1:-1:-1;829:10:67;;-1:-1:-1;837:2:67;829:10;;:::i;:::-;;;775:75;;;859:19;891:6;881:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;881:17:67;;859:39;;908:150;915:10;;908:150;;941:11;951:1;941:11;;:::i;:::-;;-1:-1:-1;1009:10:67;1017:2;1009:5;:10;:::i;:::-;996:24;;:2;:24;:::i;:::-;983:39;;966:6;973;966:14;;;;;;;;:::i;:::-;;;;:56;;;;;;;;;;-1:-1:-1;1036:11:67;1045:2;1036:11;;:::i;:::-;;;908:150;;;1081:6;392:703;-1:-1:-1;;;;392:703:67:o;990:222:61:-;1092:4;1115:50;;;1130:35;1115:50;;:90;;;1169:36;1193:11;1169:23;:36::i;11657:133:58:-;7099:4;7122:16;;;:7;:16;;;;;;:30;:16;11730:53;;;;;;;7944:2:416;11730:53:58;;;7926:21:416;7983:2;7963:18;;;7956:30;8022:26;8002:18;;;7995:54;8066:18;;11730:53:58;7742:348:416;11730:53:58;11657:133;:::o;10959:171::-;11033:24;;;;:15;:24;;;;;:29;;;;;;;;;;;;;:24;;11086:23;11033:24;11086:14;:23::i;:::-;11077:46;;;;;;;;;;;;10959:171;;:::o;7317:261::-;7410:4;7426:13;7442:23;7457:7;7442:14;:23::i;:::-;7426:39;;7494:5;7483:16;;:7;:16;;;:52;;;-1:-1:-1;4508:25:58;;;;4485:4;4508:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;7503:32;7483:87;;;;7563:7;7539:31;;:20;7551:7;7539:11;:20::i;:::-;:31;;;7475:96;7317:261;-1:-1:-1;;;;7317:261:58:o;10242:605::-;10396:4;10369:31;;:23;10384:7;10369:14;:23::i;:::-;:31;;;10361:81;;;;;;;11487:2:416;10361:81:58;;;11469:21:416;11526:2;11506:18;;;11499:30;11565:34;11545:18;;;11538:62;11636:7;11616:18;;;11609:35;11661:19;;10361:81:58;11285:401:416;10361:81:58;10460:16;;;10452:65;;;;;;;11893:2:416;10452:65:58;;;11875:21:416;11932:2;11912:18;;;11905:30;11971:34;11951:18;;;11944:62;12042:6;12022:18;;;12015:34;12066:19;;10452:65:58;11691:400:416;10452:65:58;10528:39;10549:4;10555:2;10559:7;10528:20;:39::i;:::-;10629:29;10646:1;10650:7;10629:8;:29::i;:::-;10669:15;;;;;;;:9;:15;;;;;:20;;10688:1;;10669:15;:20;;10688:1;;10669:20;:::i;:::-;;;;-1:-1:-1;;10699:13:58;;;;;;;:9;:13;;;;;:18;;10716:1;;10699:13;:18;;10716:1;;10699:18;:::i;:::-;;;;-1:-1:-1;;10727:16:58;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;;10764:27;;10727:16;;10764:27;;;;;;;3537:337;3467:407;;:::o;9512:406::-;9571:13;9587:23;9602:7;9587:14;:23::i;:::-;9571:39;;9621:48;9642:5;9657:1;9661:7;9621:20;:48::i;:::-;9707:29;9724:1;9728:7;9707:8;:29::i;:::-;9747:16;;;;;;;:9;:16;;;;;:21;;9767:1;;9747:16;:21;;9767:1;;9747:21;:::i;:::-;;;;-1:-1:-1;;9785:16:58;;;;:7;:16;;;;;;9778:23;;;;;;9817:36;9793:7;;9785:16;9778:23;9817:36;;;;;9785:16;;9817:36;4169:153;;:::o;7908:108::-;7983:26;7993:2;7997:7;7983:26;;;;;;;;;;;;:9;:26::i;11266:307::-;11416:8;11407:17;;:5;:17;;;11399:55;;;;;;;12298:2:416;11399:55:58;;;12280:21:416;12337:2;12317:18;;;12310:30;12376:27;12356:18;;;12349:55;12421:18;;11399:55:58;12096:349:416;11399:55:58;11464:25;;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;;;;;;;;;;;;11525:41;;586::416;;;11525::58;;559:18:416;11525:41:58;;;;;;;11266:307;;;:::o;6426:305::-;6576:28;6586:4;6592:2;6596:7;6576:9;:28::i;:::-;6622:47;6645:4;6651:2;6655:7;6664:4;6622:22;:47::i;:::-;6614:110;;;;;;;12652:2:416;6614:110:58;;;12634:21:416;12691:2;12671:18;;;12664:30;12730:34;12710:18;;;12703:62;12801:20;12781:18;;;12774:48;12839:19;;6614:110:58;12450:414:416;4332:111:275;4392:13;4424:12;4417:19;;;;;:::i;1570:300:58:-;1672:4;1707:40;;;1722:25;1707:40;;:104;;-1:-1:-1;1763:48:58;;;1778:33;1763:48;1707:104;:156;;;-1:-1:-1;952:25:71;937:40;;;;1827:36:58;829:155:71;2624:572:61;2823:18;;;2819:183;;2857:40;2889:7;4005:10;:17;;3978:24;;;;:15;:24;;;;;:44;;;4032:24;;;;;;;;;;;;3902:161;2857:40;2819:183;;;2926:2;2918:10;;:4;:10;;;2914:88;;2944:47;2977:4;2983:7;2944:32;:47::i;:::-;3015:16;;;3011:179;;3047:45;3084:7;3047:36;:45::i;3011:179::-;3119:4;3113:10;;:2;:10;;;3109:81;;3139:40;3167:2;3171:7;3139:27;:40::i;8237:309:58:-;8361:18;8367:2;8371:7;8361:5;:18::i;:::-;8410:53;8441:1;8445:2;8449:7;8458:4;8410:22;:53::i;:::-;8389:150;;;;;;;12652:2:416;8389:150:58;;;12634:21:416;12691:2;12671:18;;;12664:30;12730:34;12710:18;;;12703:62;12801:20;12781:18;;;12774:48;12839:19;;8389:150:58;12450:414:416;12342:831:58;12491:4;12511:13;;;1465:19:64;:23;12507:660:58;;12546:71;;;;;:36;;;;;;:71;;719:10:65;;12597:4:58;;12603:7;;12612:4;;12546:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12546:71:58;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;12542:573;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12784:6;:13;12801:1;12784:18;12780:321;;12826:60;;;;;12652:2:416;12826:60:58;;;12634:21:416;12691:2;12671:18;;;12664:30;12730:34;12710:18;;;12703:62;12801:20;12781:18;;;12774:48;12839:19;;12826:60:58;12450:414:416;12780:321:58;13053:6;13047:13;13038:6;13034:2;13030:15;13023:38;12542:573;12667:51;;12677:41;12667:51;;-1:-1:-1;12660:58:58;;12507:660;-1:-1:-1;13152:4:58;12342:831;;;;;;:::o;4680:970:61:-;4942:22;4992:1;4967:22;4984:4;4967:16;:22::i;:::-;:26;;;;:::i;:::-;5003:18;5024:26;;;:17;:26;;;;;;4942:51;;-1:-1:-1;5154:28:61;;;5150:323;;5220:18;;;5198:19;5220:18;;;:12;:18;;;;;;;;:34;;;;;;;;;5269:30;;;;;;:44;;;5385:30;;:17;:30;;;;;:43;;;5150:323;-1:-1:-1;5566:26:61;;;;:17;:26;;;;;;;;5559:33;;;5609:18;;;;;;:12;:18;;;;;:34;;;;;;;5602:41;4680:970::o;5938:1061::-;6212:10;:17;6187:22;;6212:21;;6232:1;;6212:21;:::i;:::-;6243:18;6264:24;;;:15;:24;;;;;;6632:10;:26;;6187:46;;-1:-1:-1;6264:24:61;;6187:46;;6632:26;;;;;;:::i;:::-;;;;;;;;;6610:48;;6694:11;6669:10;6680;6669:22;;;;;;;;:::i;:::-;;;;;;;;;;;;:36;;;;6773:28;;;:15;:28;;;;;;;:41;;;6942:24;;;;;6935:31;6976:10;:16;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;6009:990;;;5938:1061;:::o;3490:217::-;3574:14;3591:20;3608:2;3591:16;:20::i;:::-;3621:16;;;;;;;;:12;:16;;;;;;;;:24;;;;;;;;:34;;;3665:26;;;:17;:26;;;;;;:35;;;;-1:-1:-1;3490:217:61:o;8868:427:58:-;8947:16;;;8939:61;;;;;;;14031:2:416;8939:61:58;;;14013:21:416;;;14050:18;;;14043:30;14109:34;14089:18;;;14082:62;14161:18;;8939:61:58;13829:356:416;8939:61:58;7099:4;7122:16;;;:7;:16;;;;;;:30;:16;:30;9010:58;;;;;;;14392:2:416;9010:58:58;;;14374:21:416;14431:2;14411:18;;;14404:30;14470;14450:18;;;14443:58;14518:18;;9010:58:58;14190:352:416;9010:58:58;9079:45;9108:1;9112:2;9116:7;9079:20;:45::i;:::-;9135:13;;;;;;;:9;:13;;;;;:18;;9152:1;;9135:13;:18;;9152:1;;9135:18;:::i;:::-;;;;-1:-1:-1;;9163:16:58;;;;:7;:16;;;;;;:21;;;;;;;;;;;;;9200:33;;9163:16;;;9200:33;;9163:16;;9200:33;4169:153;;:::o;14:177:416:-;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;869:258::-;941:1;951:113;965:6;962:1;959:13;951:113;;;1041:11;;;1035:18;1022:11;;;1015:39;987:2;980:10;951:113;;;1082:6;1079:1;1076:13;1073:48;;;-1:-1:-1;;1117:1:416;1099:16;;1092:27;869:258::o;1132:317::-;1174:3;1212:5;1206:12;1239:6;1234:3;1227:19;1255:63;1311:6;1304:4;1299:3;1295:14;1288:4;1281:5;1277:16;1255:63;:::i;:::-;1363:2;1351:15;1368:66;1347:88;1338:98;;;;1438:4;1334:109;;1132:317;-1:-1:-1;;1132:317:416:o;1454:220::-;1603:2;1592:9;1585:21;1566:4;1623:45;1664:2;1653:9;1649:18;1641:6;1623:45;:::i;1679:180::-;1738:6;1791:2;1779:9;1770:7;1766:23;1762:32;1759:52;;;1807:1;1804;1797:12;1759:52;-1:-1:-1;1830:23:416;;1679:180;-1:-1:-1;1679:180:416:o;1864:196::-;1932:20;;1992:42;1981:54;;1971:65;;1961:93;;2050:1;2047;2040:12;1961:93;1864:196;;;:::o;2065:254::-;2133:6;2141;2194:2;2182:9;2173:7;2169:23;2165:32;2162:52;;;2210:1;2207;2200:12;2162:52;2233:29;2252:9;2233:29;:::i;:::-;2223:39;2309:2;2294:18;;;;2281:32;;-1:-1:-1;;;2065:254:416:o;2506:328::-;2583:6;2591;2599;2652:2;2640:9;2631:7;2627:23;2623:32;2620:52;;;2668:1;2665;2658:12;2620:52;2691:29;2710:9;2691:29;:::i;:::-;2681:39;;2739:38;2773:2;2762:9;2758:18;2739:38;:::i;:::-;2729:48;;2824:2;2813:9;2809:18;2796:32;2786:42;;2506:328;;;;;:::o;2839:186::-;2898:6;2951:2;2939:9;2930:7;2926:23;2922:32;2919:52;;;2967:1;2964;2957:12;2919:52;2990:29;3009:9;2990:29;:::i;3030:347::-;3095:6;3103;3156:2;3144:9;3135:7;3131:23;3127:32;3124:52;;;3172:1;3169;3162:12;3124:52;3195:29;3214:9;3195:29;:::i;:::-;3185:39;;3274:2;3263:9;3259:18;3246:32;3321:5;3314:13;3307:21;3300:5;3297:32;3287:60;;3343:1;3340;3333:12;3287:60;3366:5;3356:15;;;3030:347;;;;;:::o;3382:184::-;3434:77;3431:1;3424:88;3531:4;3528:1;3521:15;3555:4;3552:1;3545:15;3571:1197;3666:6;3674;3682;3690;3743:3;3731:9;3722:7;3718:23;3714:33;3711:53;;;3760:1;3757;3750:12;3711:53;3783:29;3802:9;3783:29;:::i;:::-;3773:39;;3831:38;3865:2;3854:9;3850:18;3831:38;:::i;:::-;3821:48;;3916:2;3905:9;3901:18;3888:32;3878:42;;3971:2;3960:9;3956:18;3943:32;3994:18;4035:2;4027:6;4024:14;4021:34;;;4051:1;4048;4041:12;4021:34;4089:6;4078:9;4074:22;4064:32;;4134:7;4127:4;4123:2;4119:13;4115:27;4105:55;;4156:1;4153;4146:12;4105:55;4192:2;4179:16;4214:2;4210;4207:10;4204:36;;;4220:18;;:::i;:::-;4354:2;4348:9;4416:4;4408:13;;4259:66;4404:22;;;4428:2;4400:31;4396:40;4384:53;;;4452:18;;;4472:22;;;4449:46;4446:72;;;4498:18;;:::i;:::-;4538:10;4534:2;4527:22;4573:2;4565:6;4558:18;4613:7;4608:2;4603;4599;4595:11;4591:20;4588:33;4585:53;;;4634:1;4631;4624:12;4585:53;4690:2;4685;4681;4677:11;4672:2;4664:6;4660:15;4647:46;4735:1;4730:2;4725;4717:6;4713:15;4709:24;4702:35;4756:6;4746:16;;;;;;;3571:1197;;;;;;;:::o;4773:260::-;4841:6;4849;4902:2;4890:9;4881:7;4877:23;4873:32;4870:52;;;4918:1;4915;4908:12;4870:52;4941:29;4960:9;4941:29;:::i;:::-;4931:39;;4989:38;5023:2;5012:9;5008:18;4989:38;:::i;:::-;4979:48;;4773:260;;;;;:::o;5038:437::-;5117:1;5113:12;;;;5160;;;5181:61;;5235:4;5227:6;5223:17;5213:27;;5181:61;5288:2;5280:6;5277:14;5257:18;5254:38;5251:218;;5325:77;5322:1;5315:88;5426:4;5423:1;5416:15;5454:4;5451:1;5444:15;5251:218;;5038:437;;;:::o;7553:184::-;7605:77;7602:1;7595:88;7702:4;7699:1;7692:15;7726:4;7723:1;7716:15;8932:470;9111:3;9149:6;9143:13;9165:53;9211:6;9206:3;9199:4;9191:6;9187:17;9165:53;:::i;:::-;9281:13;;9240:16;;;;9303:57;9281:13;9240:16;9337:4;9325:17;;9303:57;:::i;:::-;9376:20;;8932:470;-1:-1:-1;;;;8932:470:416:o;9407:184::-;9459:77;9456:1;9449:88;9556:4;9553:1;9546:15;9580:4;9577:1;9570:15;9596:228;9636:7;9762:1;9694:66;9690:74;9687:1;9684:81;9679:1;9672:9;9665:17;9661:105;9658:131;;;9769:18;;:::i;:::-;-1:-1:-1;9809:9:416;;9596:228::o;9829:128::-;9869:3;9900:1;9896:6;9893:1;9890:13;9887:39;;;9906:18;;:::i;:::-;-1:-1:-1;9942:9:416;;9829:128::o;9962:196::-;10001:3;10029:5;10019:39;;10038:18;;:::i;:::-;-1:-1:-1;10085:66:416;10074:78;;9962:196::o;10524:195::-;10563:3;10594:66;10587:5;10584:77;10581:103;;10664:18;;:::i;:::-;-1:-1:-1;10711:1:416;10700:13;;10524:195::o;10724:184::-;10776:77;10773:1;10766:88;10873:4;10870:1;10863:15;10897:4;10894:1;10887:15;10913:120;10953:1;10979;10969:35;;10984:18;;:::i;:::-;-1:-1:-1;11018:9:416;;10913:120::o;11038:125::-;11078:4;11106:1;11103;11100:8;11097:34;;;11111:18;;:::i;:::-;-1:-1:-1;11148:9:416;;11038:125::o;11168:112::-;11200:1;11226;11216:35;;11231:18;;:::i;:::-;-1:-1:-1;11265:9:416;;11168:112::o;12869:512::-;13063:4;13092:42;13173:2;13165:6;13161:15;13150:9;13143:34;13225:2;13217:6;13213:15;13208:2;13197:9;13193:18;13186:43;;13265:6;13260:2;13249:9;13245:18;13238:34;13308:3;13303:2;13292:9;13288:18;13281:31;13329:46;13370:3;13359:9;13355:19;13347:6;13329:46;:::i;:::-;13321:54;12869:512;-1:-1:-1;;;;;;12869:512:416:o;13386:249::-;13455:6;13508:2;13496:9;13487:7;13483:23;13479:32;13476:52;;;13524:1;13521;13514:12;13476:52;13556:9;13550:16;13575:30;13599:5;13575:30;:::i;13640:184::-;13692:77;13689:1;13682:88;13789:4;13786:1;13779:15;13813:4;13810:1;13803:15","linkReferences":{},"immutableReferences":{"122757":[{"start":809,"length":32},{"start":1032,"length":32}],"122760":[{"start":480,"length":32},{"start":956,"length":32}],"122763":[{"start":994,"length":32},{"start":1146,"length":32},{"start":2849,"length":32},{"start":3139,"length":32}]}},"methodIdentifiers":{"BRIDGE()":"ee9a31a2","REMOTE_CHAIN_ID()":"7d1d0c5b","REMOTE_TOKEN()":"033964be","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","baseTokenURI()":"d547cfb7","bridge()":"e78cea92","burn(address,uint256)":"9dc29fac","getApproved(uint256)":"081812fc","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","remoteChainId()":"e9518196","remoteToken()":"d6c0b2c4","safeMint(address,uint256)":"a1448194","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenByIndex(uint256)":"4f6ccce7","tokenOfOwnerByIndex(address,uint256)":"2f745c59","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd","version()":"54fd4d50"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.15+commit.e14f2714\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_bridge\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_remoteChainId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_remoteToken\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"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\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Burn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"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\"},{\"inputs\":[],\"name\":\"BRIDGE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_CHAIN_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"REMOTE_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"baseTokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"bridge\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteChainId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"remoteToken\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"safeMint\",\"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\":[],\"name\":\"version\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"burn(address,uint256)\":{\"params\":{\"_from\":\"Address of the user to burn the token from.\",\"_tokenId\":\"Token ID to burn.\"}},\"constructor\":{\"params\":{\"_bridge\":\"Address of the bridge on this network.\",\"_name\":\"ERC721 name.\",\"_remoteChainId\":\"Chain ID where the remote token is deployed.\",\"_remoteToken\":\"Address of the corresponding token on the other network.\",\"_symbol\":\"ERC721 symbol.\"}},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeMint(address,uint256)\":{\"params\":{\"_to\":\"Address of the user to mint the token for.\",\"_tokenId\":\"Token ID to mint.\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"params\":{\"_interfaceId\":\"The interface ID to check.\"},\"returns\":{\"_0\":\"True if the interface ID is supported, false otherwise.\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenByIndex(uint256)\":{\"details\":\"See {IERC721Enumerable-tokenByIndex}.\"},\"tokenOfOwnerByIndex(address,uint256)\":{\"details\":\"See {IERC721Enumerable-tokenOfOwnerByIndex}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"totalSupply()\":{\"details\":\"See {IERC721Enumerable-totalSupply}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"stateVariables\":{\"version\":{\"custom:semver\":\"1.3.0\"}},\"title\":\"OptimismMintableERC721\",\"version\":1},\"userdoc\":{\"events\":{\"Burn(address,uint256)\":{\"notice\":\"Emitted when a token is burned.\"},\"Mint(address,uint256)\":{\"notice\":\"Emitted when a token is minted.\"}},\"kind\":\"user\",\"methods\":{\"BRIDGE()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"REMOTE_CHAIN_ID()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"REMOTE_TOKEN()\":{\"notice\":\"Address of the token on the remote domain.\"},\"baseTokenURI()\":{\"notice\":\"Base token URI for this token.\"},\"bridge()\":{\"notice\":\"Address of the ERC721 bridge on this network.\"},\"burn(address,uint256)\":{\"notice\":\"Burns a token ID from a user.\"},\"remoteChainId()\":{\"notice\":\"Chain ID of the chain where the remote token is deployed.\"},\"remoteToken()\":{\"notice\":\"Address of the token on the remote domain.\"},\"safeMint(address,uint256)\":{\"notice\":\"Mints some token ID for a user, checking first that contract recipients         are aware of the ERC721 protocol to prevent tokens from being forever locked.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"},\"version()\":{\"notice\":\"Semantic version.\"}},\"notice\":\"This contract is the remote representation for some token that lives on another network,         typically an Optimism representation of an Ethereum-based token. Standard reference         implementation that can be extended or modified according to your needs.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/universal/OptimismMintableERC721.sol\":\"OptimismMintableERC721\"},\"evmVersion\":\"london\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea\",\"dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f\",\"dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol\":{\"keccak256\":\"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768\",\"dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34\",\"dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487\",\"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638\",\"dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"src/universal/IOptimismMintableERC721.sol\":{\"keccak256\":\"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b\",\"dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT\"]},\"src/universal/ISemver.sol\":{\"keccak256\":\"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a\",\"dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR\"]},\"src/universal/OptimismMintableERC721.sol\":{\"keccak256\":\"0x136c9a840cf14df94e92b1208e1c31fe4d30909cdd49e8563954ae82349c8f1a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8b430f041a9a1b6f2080b3341b04d74ee828fbc0a25bf2ecff0a4be65b767a\",\"dweb:/ipfs/QmXAz67LmyWDeEk651w5FXWZVd469kLqsZKUrSKHFEJMp2\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.15+commit.e14f2714"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_bridge","type":"address"},{"internalType":"uint256","name":"_remoteChainId","type":"uint256"},{"internalType":"address","name":"_remoteToken","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"approved","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"operator","type":"address","indexed":true},{"internalType":"bool","name":"approved","type":"bool","indexed":false}],"type":"event","name":"ApprovalForAll","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Burn","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false}],"type":"event","name":"Mint","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"BRIDGE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_CHAIN_ID","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"REMOTE_TOKEN","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"bridge","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteChainId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"remoteToken","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeMint"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"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"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"bytes4","name":"_interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenOfOwnerByIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"},{"inputs":[],"stateMutability":"view","type":"function","name":"version","outputs":[{"internalType":"string","name":"","type":"string"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"constructor":{"params":{"_bridge":"Address of the bridge on this network.","_name":"ERC721 name.","_remoteChainId":"Chain ID where the remote token is deployed.","_remoteToken":"Address of the corresponding token on the other network.","_symbol":"ERC721 symbol."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"params":{"_interfaceId":"The interface ID to check."},"returns":{"_0":"True if the interface ID is supported, false otherwise."}},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenByIndex(uint256)":{"details":"See {IERC721Enumerable-tokenByIndex}."},"tokenOfOwnerByIndex(address,uint256)":{"details":"See {IERC721Enumerable-tokenOfOwnerByIndex}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"totalSupply()":{"details":"See {IERC721Enumerable-totalSupply}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"baseTokenURI()":{"notice":"Base token URI for this token."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients         are aware of the ERC721 protocol to prevent tokens from being forever locked."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."},"version()":{"notice":"Semantic version."}},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"src/universal/OptimismMintableERC721.sol":"OptimismMintableERC721"},"evmVersion":"london","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol":{"keccak256":"0x0b606994df12f0ce35f6d2f6dcdde7e55e6899cdef7e00f180980caa81e3844e","urls":["bzz-raw://4c827c981a552d1c76c96060e92f56b52bc20c6f9b4dbf911fe99ddbfb41f2ea","dweb:/ipfs/QmW8xvJdzHrr8Ry34C7viBsgG2b8T1mL4BQWJ5CdfD9JLB"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xed6a749c5373af398105ce6ee3ac4763aa450ea7285d268c85d9eeca809cdb1f","urls":["bzz-raw://20a97f891d06f0fe91560ea1a142aaa26fdd22bed1b51606b7d48f670deeb50f","dweb:/ipfs/QmTbCtZKChpaX5H2iRiTDMcSz29GSLCpTCDgJpcMR4wg8x"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol":{"keccak256":"0x0a79511df8151b10b0a0004d6a76ad956582d32824af4c0f4886bdbdfe5746e5","urls":["bzz-raw://afbedcf17f31db719e6fdc56caa8f458799c5fa2eb94cb1e94ef18f89af85768","dweb:/ipfs/QmVmqRdBfbgYThpZSoAJ5o9mnAMjx8mCHHjv3Rh8cQAAg3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0xd1556954440b31c97a142c6ba07d5cade45f96fafd52091d33a14ebe365aecbf","urls":["bzz-raw://26fef835622b46a5ba08b3ef6b46a22e94b5f285d0f0fb66b703bd30217d2c34","dweb:/ipfs/QmZ548qdwfL1qF7aXz3xh1GCdTiST81kGGuKRqVUfYmPZR"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9","urls":["bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146","dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10","urls":["bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487","dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0xaf159a8b1923ad2a26d516089bceca9bdeaeacd04be50983ea00ba63070f08a3","urls":["bzz-raw://6f2cf1c531122bc7ca96b8c8db6a60deae60441e5223065e792553d4849b5638","dweb:/ipfs/QmPBdJmBBABMDCfyDjCbdxgiqRavgiSL88SYPGibgbPas9"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"src/universal/IOptimismMintableERC721.sol":{"keccak256":"0xb3a65b067e67a9e1fa0493401c8d247970377c6725eba4e7b02ce8099c4f4f52","urls":["bzz-raw://86bb6864027560ade2f4ced6a6e34213cbff8002977dc365377e5a0b473cf17b","dweb:/ipfs/QmQvjtodTK27as1g1PzsYk9NyJJ3X6a6251o1vrBwx7DPT"],"license":"MIT"},"src/universal/ISemver.sol":{"keccak256":"0xba34562a8026f59886d2e07d1d58d90b9691d00e0788c6263cef6c22740cab44","urls":["bzz-raw://0826f998632f83c103c3085bf2e872db79a69022b6d2e0444c83a64ca5283c2a","dweb:/ipfs/QmcJ7PNqkAfKqbjFGRordtAg1v9DvcBSKvdTkVvciLyvQR"],"license":"MIT"},"src/universal/OptimismMintableERC721.sol":{"keccak256":"0x136c9a840cf14df94e92b1208e1c31fe4d30909cdd49e8563954ae82349c8f1a","urls":["bzz-raw://4d8b430f041a9a1b6f2080b3341b04d74ee828fbc0a25bf2ecff0a4be65b767a","dweb:/ipfs/QmXAz67LmyWDeEk651w5FXWZVd469kLqsZKUrSKHFEJMp2"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":52214,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":52216,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":52220,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_owners","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_address)"},{"astId":52224,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_balances","offset":0,"slot":"3","type":"t_mapping(t_address,t_uint256)"},{"astId":52228,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_tokenApprovals","offset":0,"slot":"4","type":"t_mapping(t_uint256,t_address)"},{"astId":52234,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_operatorApprovals","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":53204,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_ownedTokens","offset":0,"slot":"6","type":"t_mapping(t_address,t_mapping(t_uint256,t_uint256))"},{"astId":53208,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_ownedTokensIndex","offset":0,"slot":"7","type":"t_mapping(t_uint256,t_uint256)"},{"astId":53211,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_allTokens","offset":0,"slot":"8","type":"t_array(t_uint256)dyn_storage"},{"astId":53215,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"_allTokensIndex","offset":0,"slot":"9","type":"t_mapping(t_uint256,t_uint256)"},{"astId":122766,"contract":"src/universal/OptimismMintableERC721.sol:OptimismMintableERC721","label":"baseTokenURI","offset":0,"slot":"10","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_uint256,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(uint256 => uint256))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_uint256)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"userdoc":{"version":1,"kind":"user","methods":{"BRIDGE()":{"notice":"Address of the ERC721 bridge on this network."},"REMOTE_CHAIN_ID()":{"notice":"Chain ID of the chain where the remote token is deployed."},"REMOTE_TOKEN()":{"notice":"Address of the token on the remote domain."},"baseTokenURI()":{"notice":"Base token URI for this token."},"bridge()":{"notice":"Address of the ERC721 bridge on this network."},"burn(address,uint256)":{"notice":"Burns a token ID from a user."},"remoteChainId()":{"notice":"Chain ID of the chain where the remote token is deployed."},"remoteToken()":{"notice":"Address of the token on the remote domain."},"safeMint(address,uint256)":{"notice":"Mints some token ID for a user, checking first that contract recipients         are aware of the ERC721 protocol to prevent tokens from being forever locked."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."},"version()":{"notice":"Semantic version."}},"events":{"Burn(address,uint256)":{"notice":"Emitted when a token is burned."},"Mint(address,uint256)":{"notice":"Emitted when a token is minted."}},"notice":"This contract is the remote representation for some token that lives on another network,         typically an Optimism representation of an Ethereum-based token. Standard reference         implementation that can be extended or modified according to your needs."},"devdoc":{"version":1,"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"burn(address,uint256)":{"params":{"_from":"Address of the user to burn the token from.","_tokenId":"Token ID to burn."}},"constructor":{"params":{"_bridge":"Address of the bridge on this network.","_name":"ERC721 name.","_remoteChainId":"Chain ID where the remote token is deployed.","_remoteToken":"Address of the corresponding token on the other network.","_symbol":"ERC721 symbol."}},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"isApprovedForAll(address,address)":{"details":"See {IERC721-isApprovedForAll}."},"name()":{"details":"See {IERC721Metadata-name}."},"ownerOf(uint256)":{"details":"See {IERC721-ownerOf}."},"safeMint(address,uint256)":{"params":{"_to":"Address of the user to mint the token for.","_tokenId":"Token ID to mint."}},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"params":{"_interfaceId":"The interface ID to check."},"returns":{"_0":"True if the interface ID is supported, false otherwise."}},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"tokenByIndex(uint256)":{"details":"See {IERC721Enumerable-tokenByIndex}."},"tokenOfOwnerByIndex(address,uint256)":{"details":"See {IERC721Enumerable-tokenOfOwnerByIndex}."},"tokenURI(uint256)":{"details":"See {IERC721Metadata-tokenURI}."},"totalSupply()":{"details":"See {IERC721Enumerable-totalSupply}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"title":"OptimismMintableERC721"},"ast":{"absolutePath":"src/universal/OptimismMintableERC721.sol","id":122973,"exportedSymbols":{"ERC721":[53055],"ERC721Enumerable":[53527],"IERC165":[55057],"IOptimismMintableERC721":[122309],"ISemver":[122319],"OptimismMintableERC721":[122972],"Strings":[54202]},"nodeType":"SourceUnit","src":"32:4414:275","nodes":[{"id":122735,"nodeType":"PragmaDirective","src":"32:23:275","nodes":[],"literals":["solidity","0.8",".15"]},{"id":122737,"nodeType":"ImportDirective","src":"57:104:275","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721Enumerable.sol","file":"@openzeppelin/contracts/token/ERC721/extensions/ERC721Enumerable.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":53528,"symbolAliases":[{"foreign":{"id":122736,"name":"ERC721Enumerable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53527,"src":"66:16:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122739,"nodeType":"ImportDirective","src":"162:73:275","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol","file":"@openzeppelin/contracts/token/ERC721/ERC721.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":53056,"symbolAliases":[{"foreign":{"id":122738,"name":"ERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53055,"src":"171:6:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122741,"nodeType":"ImportDirective","src":"236:82:275","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol","file":"@openzeppelin/contracts/utils/introspection/IERC165.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":55058,"symbolAliases":[{"foreign":{"id":122740,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55057,"src":"245:7:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122743,"nodeType":"ImportDirective","src":"319:68:275","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Strings.sol","file":"@openzeppelin/contracts/utils/Strings.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":54203,"symbolAliases":[{"foreign":{"id":122742,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54202,"src":"328:7:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122745,"nodeType":"ImportDirective","src":"388:84:275","nodes":[],"absolutePath":"src/universal/IOptimismMintableERC721.sol","file":"src/universal/IOptimismMintableERC721.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":122310,"symbolAliases":[{"foreign":{"id":122744,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"397:23:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122747,"nodeType":"ImportDirective","src":"473:52:275","nodes":[],"absolutePath":"src/universal/ISemver.sol","file":"src/universal/ISemver.sol","nameLocation":"-1:-1:-1","scope":122973,"sourceUnit":122320,"symbolAliases":[{"foreign":{"id":122746,"name":"ISemver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122319,"src":"482:7:275","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":122972,"nodeType":"ContractDefinition","src":"843:3602:275","nodes":[{"id":122757,"nodeType":"VariableDeclaration","src":"979:40:275","nodes":[],"baseFunctions":[122278],"constant":false,"documentation":{"id":122755,"nodeType":"StructuredDocumentation","src":"935:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"7d1d0c5b","mutability":"immutable","name":"REMOTE_CHAIN_ID","nameLocation":"1004:15:275","scope":122972,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122756,"name":"uint256","nodeType":"ElementaryTypeName","src":"979:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":122760,"nodeType":"VariableDeclaration","src":"1070:37:275","nodes":[],"baseFunctions":[122284],"constant":false,"documentation":{"id":122758,"nodeType":"StructuredDocumentation","src":"1026:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"033964be","mutability":"immutable","name":"REMOTE_TOKEN","nameLocation":"1095:12:275","scope":122972,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122759,"name":"address","nodeType":"ElementaryTypeName","src":"1070:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":122763,"nodeType":"VariableDeclaration","src":"1158:31:275","nodes":[],"baseFunctions":[122290],"constant":false,"documentation":{"id":122761,"nodeType":"StructuredDocumentation","src":"1114:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"ee9a31a2","mutability":"immutable","name":"BRIDGE","nameLocation":"1183:6:275","scope":122972,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122762,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":122766,"nodeType":"VariableDeclaration","src":"1243:26:275","nodes":[],"constant":false,"documentation":{"id":122764,"nodeType":"StructuredDocumentation","src":"1196:42:275","text":"@notice Base token URI for this token."},"functionSelector":"d547cfb7","mutability":"mutable","name":"baseTokenURI","nameLocation":"1257:12:275","scope":122972,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":122765,"name":"string","nodeType":"ElementaryTypeName","src":"1243:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":122779,"nodeType":"ModifierDefinition","src":"1372:141:275","nodes":[],"body":{"id":122778,"nodeType":"Block","src":"1394:119:275","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":122773,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":122770,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1412:3:275","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":122771,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"1412:10:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":122772,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122763,"src":"1426:6:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1412:20:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433732313a206f6e6c79206272696467652063616e2063616c6c20746869732066756e6374696f6e","id":122774,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1434:60:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_400090101a7b3fb2198c29da8162e06bc62ae626484b5858669317e94a0ddc93","typeString":"literal_string \"OptimismMintableERC721: only bridge can call this function\""},"value":"OptimismMintableERC721: only bridge can call this function"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_400090101a7b3fb2198c29da8162e06bc62ae626484b5858669317e94a0ddc93","typeString":"literal_string \"OptimismMintableERC721: only bridge can call this function\""}],"id":122769,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1404:7:275","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":122775,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1404:91:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122776,"nodeType":"ExpressionStatement","src":"1404:91:275"},{"id":122777,"nodeType":"PlaceholderStatement","src":"1505:1:275"}]},"documentation":{"id":122767,"nodeType":"StructuredDocumentation","src":"1276:91:275","text":"@notice Modifier that prevents callers other than the bridge from calling the function."},"name":"onlyBridge","nameLocation":"1381:10:275","parameters":{"id":122768,"nodeType":"ParameterList","parameters":[],"src":"1391:2:275"},"virtual":false,"visibility":"internal"},{"id":122783,"nodeType":"VariableDeclaration","src":"1582:40:275","nodes":[],"baseFunctions":[122318],"constant":true,"documentation":{"id":122780,"nodeType":"StructuredDocumentation","src":"1519:58:275","text":"@notice Semantic version.\n @custom:semver 1.3.0"},"functionSelector":"54fd4d50","mutability":"constant","name":"version","nameLocation":"1605:7:275","scope":122972,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":122781,"name":"string","nodeType":"ElementaryTypeName","src":"1582:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"value":{"hexValue":"312e332e30","id":122782,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1615:7:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_6a08c3e203132c561752255a4d52ffae85bb9c5d33cb3291520dea1b84356389","typeString":"literal_string \"1.3.0\""},"value":"1.3.0"},"visibility":"public"},{"id":122865,"nodeType":"FunctionDefinition","src":"1948:1014:275","nodes":[],"body":{"id":122864,"nodeType":"Block","src":"2148:814:275","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":122807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":122802,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122786,"src":"2166:7:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":122805,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2185:1:275","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":122804,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2177:7:275","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":122803,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:275","typeDescriptions":{}}},"id":122806,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2177:10:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2166:21:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433732313a206272696467652063616e6e6f742062652061646472657373283029","id":122808,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2189:53:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_7d6e8e755eae5e810d650f934d14d20533cb120643f868a8b8c85749a9afa89b","typeString":"literal_string \"OptimismMintableERC721: bridge cannot be address(0)\""},"value":"OptimismMintableERC721: bridge cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_7d6e8e755eae5e810d650f934d14d20533cb120643f868a8b8c85749a9afa89b","typeString":"literal_string \"OptimismMintableERC721: bridge cannot be address(0)\""}],"id":122801,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2158:7:275","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":122809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2158:85:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122810,"nodeType":"ExpressionStatement","src":"2158:85:275"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":122814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":122812,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122788,"src":"2261:14:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":122813,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2279:1:275","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2261:19:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433732313a2072656d6f746520636861696e2069642063616e6e6f74206265207a65726f","id":122815,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2282:56:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e8a62410ef559465da2988272295093c9d46f6ca22822b4ff6a6a354cc1d591","typeString":"literal_string \"OptimismMintableERC721: remote chain id cannot be zero\""},"value":"OptimismMintableERC721: remote chain id cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_6e8a62410ef559465da2988272295093c9d46f6ca22822b4ff6a6a354cc1d591","typeString":"literal_string \"OptimismMintableERC721: remote chain id cannot be zero\""}],"id":122811,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2253:7:275","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":122816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2253:86:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122817,"nodeType":"ExpressionStatement","src":"2253:86:275"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":122824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":122819,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122790,"src":"2357:12:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":122822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2381:1:275","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":122821,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2373:7:275","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":122820,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:275","typeDescriptions":{}}},"id":122823,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2373:10:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2357:26:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4f7074696d69736d4d696e7461626c654552433732313a2072656d6f746520746f6b656e2063616e6e6f742062652061646472657373283029","id":122825,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2385:59:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_3194560550dbcadf3b01536980586036ef3d1bc10fed4446674c4e1197f64870","typeString":"literal_string \"OptimismMintableERC721: remote token cannot be address(0)\""},"value":"OptimismMintableERC721: remote token cannot be address(0)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3194560550dbcadf3b01536980586036ef3d1bc10fed4446674c4e1197f64870","typeString":"literal_string \"OptimismMintableERC721: remote token cannot be address(0)\""}],"id":122818,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2349:7:275","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":122826,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2349:96:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122827,"nodeType":"ExpressionStatement","src":"2349:96:275"},{"expression":{"id":122830,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":122828,"name":"REMOTE_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122757,"src":"2456:15:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":122829,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122788,"src":"2474:14:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2456:32:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":122831,"nodeType":"ExpressionStatement","src":"2456:32:275"},{"expression":{"id":122834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":122832,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122760,"src":"2498:12:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":122833,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122790,"src":"2513:12:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2498:27:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":122835,"nodeType":"ExpressionStatement","src":"2498:27:275"},{"expression":{"id":122838,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":122836,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122763,"src":"2535:6:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":122837,"name":"_bridge","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122786,"src":"2544:7:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2535:16:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":122839,"nodeType":"ExpressionStatement","src":"2535:16:275"},{"expression":{"id":122862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":122840,"name":"baseTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122766,"src":"2678:12:275","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"hexValue":"657468657265756d3a","id":122845,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2747:11:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f9e40734be04dbcc879d1b579e1ecd3cbedbc294b6b5a2a55a56b94378a4bdf","typeString":"literal_string \"ethereum:\""},"value":"ethereum:"},{"arguments":[{"arguments":[{"id":122850,"name":"_remoteToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122790,"src":"2804:12:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":122849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2796:7:275","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":122848,"name":"uint160","nodeType":"ElementaryTypeName","src":"2796:7:275","typeDescriptions":{}}},"id":122851,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2796:21:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}},{"hexValue":"3230","id":122852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2819:2:275","typeDescriptions":{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"},"value":"20"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"},{"typeIdentifier":"t_rational_20_by_1","typeString":"int_const 20"}],"expression":{"id":122846,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54202,"src":"2776:7:275","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$54202_$","typeString":"type(library Strings)"}},"id":122847,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toHexString","nodeType":"MemberAccess","referencedDeclaration":54181,"src":"2776:19:275","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256,uint256) pure returns (string memory)"}},"id":122853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2776:46:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"40","id":122854,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2840:3:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_e724d40619441ced66a271e59627b7bcd39c77447a4315561b4d21e7b7c9321c","typeString":"literal_string \"@\""},"value":"@"},{"arguments":[{"id":122857,"name":"_remoteChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122788,"src":"2878:14:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":122855,"name":"Strings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54202,"src":"2861:7:275","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Strings_$54202_$","typeString":"type(library Strings)"}},"id":122856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"toString","nodeType":"MemberAccess","referencedDeclaration":54064,"src":"2861:16:275","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) pure returns (string memory)"}},"id":122858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2861:32:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"hexValue":"2f746f6b656e5552493f75696e743235363d","id":122859,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2911:20:275","typeDescriptions":{"typeIdentifier":"t_stringliteral_a1c8c3ed226a3105e6b6d8c106c79c50ccbeee9789215327c8820728b8698e58","typeString":"literal_string \"/tokenURI?uint256=\""},"value":"/tokenURI?uint256="}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5f9e40734be04dbcc879d1b579e1ecd3cbedbc294b6b5a2a55a56b94378a4bdf","typeString":"literal_string \"ethereum:\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_e724d40619441ced66a271e59627b7bcd39c77447a4315561b4d21e7b7c9321c","typeString":"literal_string \"@\""},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_stringliteral_a1c8c3ed226a3105e6b6d8c106c79c50ccbeee9789215327c8820728b8698e58","typeString":"literal_string \"/tokenURI?uint256=\""}],"expression":{"id":122843,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2713:3:275","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":122844,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"encodePacked","nodeType":"MemberAccess","src":"2713:16:275","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":122860,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2713:232:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":122842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2693:6:275","typeDescriptions":{"typeIdentifier":"t_type$_t_string_storage_ptr_$","typeString":"type(string storage pointer)"},"typeName":{"id":122841,"name":"string","nodeType":"ElementaryTypeName","src":"2693:6:275","typeDescriptions":{}}},"id":122861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2693:262:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2678:277:275","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":122863,"nodeType":"ExpressionStatement","src":"2678:277:275"}]},"documentation":{"id":122784,"nodeType":"StructuredDocumentation","src":"1629:314:275","text":"@param _bridge        Address of the bridge on this network.\n @param _remoteChainId Chain ID where the remote token is deployed.\n @param _remoteToken   Address of the corresponding token on the other network.\n @param _name          ERC721 name.\n @param _symbol        ERC721 symbol."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":122797,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122792,"src":"2128:5:275","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":122798,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122794,"src":"2135:7:275","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"id":122799,"kind":"baseConstructorSpecifier","modifierName":{"id":122796,"name":"ERC721","nodeType":"IdentifierPath","referencedDeclaration":53055,"src":"2121:6:275"},"nodeType":"ModifierInvocation","src":"2121:22:275"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":122795,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122786,"mutability":"mutable","name":"_bridge","nameLocation":"1977:7:275","nodeType":"VariableDeclaration","scope":122865,"src":"1969:15:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122785,"name":"address","nodeType":"ElementaryTypeName","src":"1969:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122788,"mutability":"mutable","name":"_remoteChainId","nameLocation":"2002:14:275","nodeType":"VariableDeclaration","scope":122865,"src":"1994:22:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122787,"name":"uint256","nodeType":"ElementaryTypeName","src":"1994:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":122790,"mutability":"mutable","name":"_remoteToken","nameLocation":"2034:12:275","nodeType":"VariableDeclaration","scope":122865,"src":"2026:20:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122789,"name":"address","nodeType":"ElementaryTypeName","src":"2026:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122792,"mutability":"mutable","name":"_name","nameLocation":"2070:5:275","nodeType":"VariableDeclaration","scope":122865,"src":"2056:19:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":122791,"name":"string","nodeType":"ElementaryTypeName","src":"2056:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":122794,"mutability":"mutable","name":"_symbol","nameLocation":"2099:7:275","nodeType":"VariableDeclaration","scope":122865,"src":"2085:21:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":122793,"name":"string","nodeType":"ElementaryTypeName","src":"2085:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1959:153:275"},"returnParameters":{"id":122800,"nodeType":"ParameterList","parameters":[],"src":"2148:0:275"},"scope":122972,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":122874,"nodeType":"FunctionDefinition","src":"3012:96:275","nodes":[],"body":{"id":122873,"nodeType":"Block","src":"3069:39:275","nodes":[],"statements":[{"expression":{"id":122871,"name":"REMOTE_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122757,"src":"3086:15:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":122870,"id":122872,"nodeType":"Return","src":"3079:22:275"}]},"baseFunctions":[122296],"documentation":{"id":122866,"nodeType":"StructuredDocumentation","src":"2968:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"e9518196","implemented":true,"kind":"function","modifiers":[],"name":"remoteChainId","nameLocation":"3021:13:275","parameters":{"id":122867,"nodeType":"ParameterList","parameters":[],"src":"3034:2:275"},"returnParameters":{"id":122870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122869,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122874,"src":"3060:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122868,"name":"uint256","nodeType":"ElementaryTypeName","src":"3060:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3059:9:275"},"scope":122972,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":122883,"nodeType":"FunctionDefinition","src":"3158:91:275","nodes":[],"body":{"id":122882,"nodeType":"Block","src":"3213:36:275","nodes":[],"statements":[{"expression":{"id":122880,"name":"REMOTE_TOKEN","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122760,"src":"3230:12:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":122879,"id":122881,"nodeType":"Return","src":"3223:19:275"}]},"baseFunctions":[122302],"documentation":{"id":122875,"nodeType":"StructuredDocumentation","src":"3114:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"d6c0b2c4","implemented":true,"kind":"function","modifiers":[],"name":"remoteToken","nameLocation":"3167:11:275","parameters":{"id":122876,"nodeType":"ParameterList","parameters":[],"src":"3178:2:275"},"returnParameters":{"id":122879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122883,"src":"3204:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122877,"name":"address","nodeType":"ElementaryTypeName","src":"3204:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3203:9:275"},"scope":122972,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":122892,"nodeType":"FunctionDefinition","src":"3299:80:275","nodes":[],"body":{"id":122891,"nodeType":"Block","src":"3349:30:275","nodes":[],"statements":[{"expression":{"id":122889,"name":"BRIDGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122763,"src":"3366:6:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":122888,"id":122890,"nodeType":"Return","src":"3359:13:275"}]},"baseFunctions":[122308],"documentation":{"id":122884,"nodeType":"StructuredDocumentation","src":"3255:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"e78cea92","implemented":true,"kind":"function","modifiers":[],"name":"bridge","nameLocation":"3308:6:275","parameters":{"id":122885,"nodeType":"ParameterList","parameters":[],"src":"3314:2:275"},"returnParameters":{"id":122888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122887,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122892,"src":"3340:7:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122886,"name":"address","nodeType":"ElementaryTypeName","src":"3340:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3339:9:275"},"scope":122972,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":122913,"nodeType":"FunctionDefinition","src":"3429:153:275","nodes":[],"body":{"id":122912,"nodeType":"Block","src":"3506:76:275","nodes":[],"statements":[{"expression":{"arguments":[{"id":122903,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122895,"src":"3526:3:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":122904,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122897,"src":"3531:8:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":122902,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[52670,52699],"referencedDeclaration":52670,"src":"3516:9:275","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":122905,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3516:24:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122906,"nodeType":"ExpressionStatement","src":"3516:24:275"},{"eventCall":{"arguments":[{"id":122908,"name":"_to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122895,"src":"3561:3:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":122909,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122897,"src":"3566:8:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":122907,"name":"Mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122249,"src":"3556:4:275","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":122910,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3556:19:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122911,"nodeType":"EmitStatement","src":"3551:24:275"}]},"baseFunctions":[122264],"documentation":{"id":122893,"nodeType":"StructuredDocumentation","src":"3385:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"a1448194","implemented":true,"kind":"function","modifiers":[{"id":122900,"kind":"modifierInvocation","modifierName":{"id":122899,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":122779,"src":"3495:10:275"},"nodeType":"ModifierInvocation","src":"3495:10:275"}],"name":"safeMint","nameLocation":"3438:8:275","parameters":{"id":122898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122895,"mutability":"mutable","name":"_to","nameLocation":"3455:3:275","nodeType":"VariableDeclaration","scope":122913,"src":"3447:11:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122894,"name":"address","nodeType":"ElementaryTypeName","src":"3447:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122897,"mutability":"mutable","name":"_tokenId","nameLocation":"3468:8:275","nodeType":"VariableDeclaration","scope":122913,"src":"3460:16:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122896,"name":"uint256","nodeType":"ElementaryTypeName","src":"3460:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3446:31:275"},"returnParameters":{"id":122901,"nodeType":"ParameterList","parameters":[],"src":"3506:0:275"},"scope":122972,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":122933,"nodeType":"FunctionDefinition","src":"3632:144:275","nodes":[],"body":{"id":122932,"nodeType":"Block","src":"3707:69:275","nodes":[],"statements":[{"expression":{"arguments":[{"id":122924,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122918,"src":"3723:8:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":122923,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52825,"src":"3717:5:275","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":122925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3717:15:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122926,"nodeType":"ExpressionStatement","src":"3717:15:275"},{"eventCall":{"arguments":[{"id":122928,"name":"_from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122916,"src":"3753:5:275","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":122929,"name":"_tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122918,"src":"3760:8:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":122927,"name":"Burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122256,"src":"3748:4:275","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":122930,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3748:21:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":122931,"nodeType":"EmitStatement","src":"3743:26:275"}]},"baseFunctions":[122272],"documentation":{"id":122914,"nodeType":"StructuredDocumentation","src":"3588:39:275","text":"@inheritdoc IOptimismMintableERC721"},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[{"id":122921,"kind":"modifierInvocation","modifierName":{"id":122920,"name":"onlyBridge","nodeType":"IdentifierPath","referencedDeclaration":122779,"src":"3696:10:275"},"nodeType":"ModifierInvocation","src":"3696:10:275"}],"name":"burn","nameLocation":"3641:4:275","parameters":{"id":122919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122916,"mutability":"mutable","name":"_from","nameLocation":"3654:5:275","nodeType":"VariableDeclaration","scope":122933,"src":"3646:13:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":122915,"name":"address","nodeType":"ElementaryTypeName","src":"3646:7:275","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":122918,"mutability":"mutable","name":"_tokenId","nameLocation":"3669:8:275","nodeType":"VariableDeclaration","scope":122933,"src":"3661:16:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":122917,"name":"uint256","nodeType":"ElementaryTypeName","src":"3661:7:275","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3645:33:275"},"returnParameters":{"id":122922,"nodeType":"ParameterList","parameters":[],"src":"3707:0:275"},"scope":122972,"stateMutability":"nonpayable","virtual":true,"visibility":"external"},{"id":122961,"nodeType":"FunctionDefinition","src":"3987:263:275","nodes":[],"body":{"id":122960,"nodeType":"Block","src":"4098:152:275","nodes":[],"statements":[{"assignments":[122945],"declarations":[{"constant":false,"id":122945,"mutability":"mutable","name":"iface","nameLocation":"4115:5:275","nodeType":"VariableDeclaration","scope":122960,"src":"4108:12:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":122944,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4108:6:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"id":122950,"initialValue":{"expression":{"arguments":[{"id":122947,"name":"IOptimismMintableERC721","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122309,"src":"4128:23:275","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IOptimismMintableERC721_$122309_$","typeString":"type(contract IOptimismMintableERC721)"}],"id":122946,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4123:4:275","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":122948,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4123:29:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IOptimismMintableERC721_$122309","typeString":"type(contract IOptimismMintableERC721)"}},"id":122949,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberName":"interfaceId","nodeType":"MemberAccess","src":"4123:41:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"VariableDeclarationStatement","src":"4108:56:275"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":122958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":122953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":122951,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122936,"src":"4181:12:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":122952,"name":"iface","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122945,"src":"4197:5:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4181:21:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":122956,"name":"_interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122936,"src":"4230:12:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":122954,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4206:5:275","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_OptimismMintableERC721_$122972_$","typeString":"type(contract super OptimismMintableERC721)"}},"id":122955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":53239,"src":"4206:23:275","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":122957,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"4206:37:275","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4181:62:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":122943,"id":122959,"nodeType":"Return","src":"4174:69:275"}]},"baseFunctions":[53239,55056],"documentation":{"id":122934,"nodeType":"StructuredDocumentation","src":"3782:200:275","text":"@notice Checks if a given interface ID is supported by this contract.\n @param _interfaceId The interface ID to check.\n @return True if the interface ID is supported, false otherwise."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"3996:17:275","overrides":{"id":122940,"nodeType":"OverrideSpecifier","overrides":[{"id":122938,"name":"ERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":53527,"src":"4056:16:275"},{"id":122939,"name":"IERC165","nodeType":"IdentifierPath","referencedDeclaration":55057,"src":"4074:7:275"}],"src":"4047:35:275"},"parameters":{"id":122937,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122936,"mutability":"mutable","name":"_interfaceId","nameLocation":"4021:12:275","nodeType":"VariableDeclaration","scope":122961,"src":"4014:19:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":122935,"name":"bytes4","nodeType":"ElementaryTypeName","src":"4014:6:275","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"4013:21:275"},"returnParameters":{"id":122943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122942,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122961,"src":"4092:4:275","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":122941,"name":"bool","nodeType":"ElementaryTypeName","src":"4092:4:275","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4091:6:275"},"scope":122972,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":122971,"nodeType":"FunctionDefinition","src":"4332:111:275","nodes":[],"body":{"id":122970,"nodeType":"Block","src":"4407:36:275","nodes":[],"statements":[{"expression":{"id":122968,"name":"baseTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122766,"src":"4424:12:275","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":122967,"id":122969,"nodeType":"Return","src":"4417:19:275"}]},"baseFunctions":[52402],"documentation":{"id":122962,"nodeType":"StructuredDocumentation","src":"4256:71:275","text":"@notice Returns the base token URI.\n @return Base token URI."},"implemented":true,"kind":"function","modifiers":[],"name":"_baseURI","nameLocation":"4341:8:275","overrides":{"id":122964,"nodeType":"OverrideSpecifier","overrides":[],"src":"4374:8:275"},"parameters":{"id":122963,"nodeType":"ParameterList","parameters":[],"src":"4349:2:275"},"returnParameters":{"id":122967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122971,"src":"4392:13:275","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":122965,"name":"string","nodeType":"ElementaryTypeName","src":"4392:6:275","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4391:15:275"},"scope":122972,"stateMutability":"view","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":122749,"name":"ERC721Enumerable","nodeType":"IdentifierPath","referencedDeclaration":53527,"src":"878:16:275"},"id":122750,"nodeType":"InheritanceSpecifier","src":"878:16:275"},{"baseName":{"id":122751,"name":"IOptimismMintableERC721","nodeType":"IdentifierPath","referencedDeclaration":122309,"src":"896:23:275"},"id":122752,"nodeType":"InheritanceSpecifier","src":"896:23:275"},{"baseName":{"id":122753,"name":"ISemver","nodeType":"IdentifierPath","referencedDeclaration":122319,"src":"921:7:275"},"id":122754,"nodeType":"InheritanceSpecifier","src":"921:7:275"}],"canonicalName":"OptimismMintableERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":122748,"nodeType":"StructuredDocumentation","src":"527:316:275","text":"@title OptimismMintableERC721\n @notice This contract is the remote representation for some token that lives on another network,\n         typically an Optimism representation of an Ethereum-based token. Standard reference\n         implementation that can be extended or modified according to your needs."},"fullyImplemented":true,"linearizedBaseContracts":[122972,122319,122309,53527,53558,53055,53585,53171,54851,55057,53902],"name":"OptimismMintableERC721","nameLocation":"852:22:275","scope":122973,"usedErrors":[]}],"license":"MIT"},"id":275}