diff --git a/data/abis/HederaResponseCodes.json b/data/abis/HederaResponseCodes.json index 360d17a..d66397c 100644 --- a/data/abis/HederaResponseCodes.json +++ b/data/abis/HederaResponseCodes.json @@ -1,10 +1,10 @@ { "_format": "hh-sol-artifact-1", "contractName": "HederaResponseCodes", - "sourceName": "contracts/common/safe-HTS/HederaResponseCodes.sol", + "sourceName": "contracts/common/hedera/HederaResponseCodes.sol", "abi": [], - "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe0dfa0fe0f1c2a87f38d9773b22d1d82ae466fb3546005d99216b532c0616fd64736f6c63430008180033", - "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220fe0dfa0fe0f1c2a87f38d9773b22d1d82ae466fb3546005d99216b532c0616fd64736f6c63430008180033", + "bytecode": "0x", + "deployedBytecode": "0x", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/data/abis/IHederaTokenService.json b/data/abis/IHederaTokenService.json index 905a04f..ded4683 100644 --- a/data/abis/IHederaTokenService.json +++ b/data/abis/IHederaTokenService.json @@ -1,7 +1,7 @@ { "_format": "hh-sol-artifact-1", "contractName": "IHederaTokenService", - "sourceName": "contracts/common/safe-HTS/IHederaTokenService.sol", + "sourceName": "contracts/common/hedera/IHederaTokenService.sol", "abi": [ { "inputs": [ diff --git a/data/abis/IdentityGateway.json b/data/abis/IdentityGateway.json new file mode 100644 index 0000000..a2e9e8e --- /dev/null +++ b/data/abis/IdentityGateway.json @@ -0,0 +1,439 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "IdentityGateway", + "sourceName": "contracts/onchainid/gateway/Gateway.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "idFactoryAddress", + "type": "address" + }, + { + "internalType": "address[]", + "name": "signersToApprove", + "type": "address[]" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "ExpiredSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "RevokedSignature", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "SignatureAlreadyRevoked", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "SignatureNotRevoked", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerAlreadyApproved", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerAlreadyNotApproved", + "type": "error" + }, + { + "inputs": [], + "name": "TooManySigners", + "type": "error" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "UnapprovedSigner", + "type": "error" + }, + { + "inputs": [], + "name": "ZeroAddress", + "type": "error" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "SignatureApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "SignatureRevoked", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerApproved", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "SignerRevoked", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "approveSignature", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "approveSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "approvedSigners", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "callFactory", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "identityOwner", + "type": "address" + } + ], + "name": "deployIdentityForWallet", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "identityOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "salt", + "type": "string" + }, + { + "internalType": "uint256", + "name": "signatureExpiry", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "deployIdentityWithSalt", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "identityOwner", + "type": "address" + }, + { + "internalType": "string", + "name": "salt", + "type": "string" + }, + { + "internalType": "bytes32[]", + "name": "managementKeys", + "type": "bytes32[]" + }, + { + "internalType": "uint256", + "name": "signatureExpiry", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "deployIdentityWithSaltAndManagementKeys", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "idFactory", + "outputs": [ + { + "internalType": "contract IdFactory", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "signature", + "type": "bytes" + } + ], + "name": "revokeSignature", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "signer", + "type": "address" + } + ], + "name": "revokeSigner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "revokedSignatures", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferFactoryOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ], + "bytecode": "0x60806040523480156200001157600080fd5b50604051620018f8380380620018f8833981016040819052620000349162000199565b6200003f3362000116565b6001600160a01b038216620000675760405163d92e233d60e01b815260040160405180910390fd5b600a815111156200008b57604051630dc92ed360e11b815260040160405180910390fd5b60005b8151811015620000ee57600160026000848481518110620000b357620000b362000282565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790556001016200008e565b5050600180546001600160a01b0319166001600160a01b039290921691909117905562000298565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200017e57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60008060408385031215620001ad57600080fd5b620001b88362000166565b602084810151919350906001600160401b0380821115620001d857600080fd5b818601915086601f830112620001ed57600080fd5b81518181111562000202576200020262000183565b8060051b604051601f19603f830116810181811085821117156200022a576200022a62000183565b6040529182528482019250838101850191898311156200024957600080fd5b938501935b828510156200027257620002628562000166565b845293850193928501926200024e565b8096505050505050509250929050565b634e487b7160e01b600052603260045260246000fd5b61165080620002a86000396000f3fe608060405234801561001057600080fd5b50600436106100f55760003560e01c80638a87551211610097578063ccbfc6ed11610066578063ccbfc6ed14610218578063d70aa0ee1461022b578063e9ba23631461023e578063f2fde38b1461025157600080fd5b80638a875512146101be5780638da5cb5b146101e15780639c5c5ce7146101f2578063c34b44a01461020557600080fd5b80634e2984e4116100d35780634e2984e414610152578063715018a61461019057806378e751a6146101985780637d963e6f146101ab57600080fd5b806309f29c09146100fa57806317f67a151461010f5780633e8e6e8b1461013f575b600080fd5b61010d6101083660046110bd565b610264565b005b61012261011d366004611185565b610326565b6040516001600160a01b0390911681526020015b60405180910390f35b61012261014d36600461120c565b61052f565b6101806101603660046110bd565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610136565b61010d6105d9565b600154610122906001600160a01b031681565b61010d6101b9366004611229565b6105ed565b6101806101cc36600461120c565b60026020526000908152604090205460ff1681565b6000546001600160a01b0316610122565b61010d61020036600461120c565b6106a5565b61010d61021336600461120c565b61070f565b61010d610226366004611229565b6107cb565b61010d61023936600461120c565b610890565b61012261024c36600461126b565b610950565b61010d61025f36600461120c565b610ade565b61026c610b57565b6001546040516000916001600160a01b03169061028a908490611371565b6000604051808303816000865af19150503d80600081146102c7576040519150601f19603f3d011682016040523d82523d6000602084013e6102cc565b606091505b50509050806103225760405162461bcd60e51b815260206004820152601f60248201527f476174657761793a2063616c6c20746f20666163746f7279206661696c65640060448201526064015b60405180910390fd5b5050565b60006001600160a01b03861661034f5760405163d92e233d60e01b815260040160405180910390fd5b831580159061035d57504284105b1561037f57828260405163019fcfdb60e31b815260040161031992919061138d565b60006104216103e588888860405160200161039c939291906113e8565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610bb192505050565b6001600160a01b03811660009081526002602052604090205490915060ff166104685760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b6003848460405161047a929190611457565b9081526040519081900360200190205460ff16156104af5783836040516314dbff3f60e31b815260040161031992919061138d565b60015460405163474a95ff60e11b81526001600160a01b0390911690638e952bfe906104e1908a908a90600401611467565b6020604051808303816000875af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610524919061148b565b979650505050505050565b60006001600160a01b0382166105585760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b0316638e952bfe8361057381610bd5565b6040518363ffffffff1660e01b8152600401610590929190611467565b6020604051808303816000875af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061148b565b92915050565b6105e1610b57565b6105eb6000610beb565b565b6105f5610b57565b60038282604051610607929190611457565b9081526040519081900360200190205460ff1661063b5781816040516337d70afd60e11b815260040161031992919061138d565b6003828260405161064d929190611457565b908152604051908190036020018120805460ff191690556106719083908390611457565b604051908190038120907fb54b0481f674d73e0a7e0805771909ebd61fadc85286160239121febb142fabf90600090a25050565b6106ad610b57565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b1580156106f457600080fd5b505af1158015610708573d6000803e3d6000fd5b5050505050565b610717610b57565b6001600160a01b03811661073e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16610782576040516309d0bb2d60e21b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f99a705a3c2c3339d0051f56b36a60fef91e30142c93353002617999f27aec4af9190a250565b6107d3610b57565b600382826040516107e5929190611457565b9081526040519081900360200190205460ff161561081a578181604051638bf3b1f160e01b815260040161031992919061138d565b60016003838360405161082e929190611457565b908152604051908190036020018120805492151560ff199093169290921790915561085c9083908390611457565b604051908190038120907f2cb4d732f179a7333da89a4da3f3f9a9cbe3f6d7ac090ab062c69c303da32ff790600090a25050565b610898610b57565b6001600160a01b0381166108bf5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561090457604051630912922160e11b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fc031114b6ddff79d71c2554dbce316b1327bb3dad01c60b76d8e8b23ff27ea289190a250565b60006001600160a01b0388166109795760405163d92e233d60e01b815260040160405180910390fd5b831580159061098757504284105b156109a957828260405163019fcfdb60e31b815260040161031992919061138d565b60006109ca6103e58a8a8a8a8a60405160200161039c9594939291906114da565b6001600160a01b03811660009081526002602052604090205490915060ff16610a115760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b60038484604051610a23929190611457565b9081526040519081900360200190205460ff1615610a585783836040516314dbff3f60e31b815260040161031992919061138d565b600154604051637f2e6acd60e11b81526001600160a01b039091169063fe5cd59a90610a8e908c908c908c908c90600401611560565b6020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061148b565b9998505050505050505050565b610ae6610b57565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610319565b610b5481610beb565b50565b6000546001600160a01b031633146105eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b6000806000610bc08585610c3b565b91509150610bcd81610c80565b509392505050565b60606105d36001600160a01b0383166014610dca565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808251604103610c715760208301516040840151606085015160001a610c6587828585610f6d565b94509450505050610c79565b506000905060025b9250929050565b6000816004811115610c9457610c94611597565b03610c9c5750565b6001816004811115610cb057610cb0611597565b03610cfd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610319565b6002816004811115610d1157610d11611597565b03610d5e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610319565b6003816004811115610d7257610d72611597565b03610b545760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610319565b60606000610dd98360026115c3565b610de49060026115da565b67ffffffffffffffff811115610dfc57610dfc611031565b6040519080825280601f01601f191660200182016040528015610e26576020820181803683370190505b509050600360fc1b81600081518110610e4157610e416115ed565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610e7057610e706115ed565b60200101906001600160f81b031916908160001a9053506000610e948460026115c3565b610e9f9060016115da565b90505b6001811115610f17576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610ed357610ed36115ed565b1a60f81b828281518110610ee957610ee96115ed565b60200101906001600160f81b031916908160001a90535060049490941c93610f1081611603565b9050610ea2565b508315610f665760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610319565b9392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610fa45750600090506003611028565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ff8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661102157600060019250925050611028565b9150600090505b94509492505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561106257611062611031565b604051601f8501601f19908116603f0116810190828211818310171561108a5761108a611031565b816040528093508581528686860111156110a357600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156110cf57600080fd5b813567ffffffffffffffff8111156110e657600080fd5b8201601f810184136110f757600080fd5b61110684823560208401611047565b949350505050565b6001600160a01b0381168114610b5457600080fd5b600082601f83011261113457600080fd5b610f6683833560208501611047565b60008083601f84011261115557600080fd5b50813567ffffffffffffffff81111561116d57600080fd5b602083019150836020828501011115610c7957600080fd5b60008060008060006080868803121561119d57600080fd5b85356111a88161110e565b9450602086013567ffffffffffffffff808211156111c557600080fd5b6111d189838a01611123565b95506040880135945060608801359150808211156111ee57600080fd5b506111fb88828901611143565b969995985093965092949392505050565b60006020828403121561121e57600080fd5b8135610f668161110e565b6000806020838503121561123c57600080fd5b823567ffffffffffffffff81111561125357600080fd5b61125f85828601611143565b90969095509350505050565b600080600080600080600060a0888a03121561128657600080fd5b87356112918161110e565b9650602088013567ffffffffffffffff808211156112ae57600080fd5b6112ba8b838c01611123565b975060408a01359150808211156112d057600080fd5b818a0191508a601f8301126112e457600080fd5b8135818111156112f357600080fd5b8b60208260051b850101111561130857600080fd5b6020830197508096505060608a0135945060808a013591508082111561132d57600080fd5b5061133a8a828b01611143565b989b979a50959850939692959293505050565b60005b83811015611368578181015183820152602001611350565b50506000910152565b6000825161138381846020870161134d565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600081518084526113d481602086016020860161134d565b601f01601f19169290920160200192915050565b60808152600061142560808301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0386166020840152828103604084015261144681866113bc565b915050826060830152949350505050565b8183823760009101908152919050565b6001600160a01b0383168152604060208201819052600090611106908301846113bc565b60006020828403121561149d57600080fd5b8151610f668161110e565b81835260006001600160fb1b038311156114c157600080fd5b8260051b80836020870137939093016020019392505050565b60a08152600061151760a08301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0388166020840152828103604084015261153881886113bc565b9050828103606084015261154d8186886114a8565b9150508260808301529695505050505050565b6001600160a01b0385168152606060208201819052600090611584908301866113bc565b82810360408401526105248185876114a8565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105d3576105d36115ad565b808201808211156105d3576105d36115ad565b634e487b7160e01b600052603260045260246000fd5b600081611612576116126115ad565b50600019019056fea2646970667358221220eb41edfe509a7e357b4b0c7aba803a3aa183bba25abfea52a723b852c5ead63064736f6c63430008180033", + "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638a87551211610097578063ccbfc6ed11610066578063ccbfc6ed14610218578063d70aa0ee1461022b578063e9ba23631461023e578063f2fde38b1461025157600080fd5b80638a875512146101be5780638da5cb5b146101e15780639c5c5ce7146101f2578063c34b44a01461020557600080fd5b80634e2984e4116100d35780634e2984e414610152578063715018a61461019057806378e751a6146101985780637d963e6f146101ab57600080fd5b806309f29c09146100fa57806317f67a151461010f5780633e8e6e8b1461013f575b600080fd5b61010d6101083660046110bd565b610264565b005b61012261011d366004611185565b610326565b6040516001600160a01b0390911681526020015b60405180910390f35b61012261014d36600461120c565b61052f565b6101806101603660046110bd565b805160208183018101805160038252928201919093012091525460ff1681565b6040519015158152602001610136565b61010d6105d9565b600154610122906001600160a01b031681565b61010d6101b9366004611229565b6105ed565b6101806101cc36600461120c565b60026020526000908152604090205460ff1681565b6000546001600160a01b0316610122565b61010d61020036600461120c565b6106a5565b61010d61021336600461120c565b61070f565b61010d610226366004611229565b6107cb565b61010d61023936600461120c565b610890565b61012261024c36600461126b565b610950565b61010d61025f36600461120c565b610ade565b61026c610b57565b6001546040516000916001600160a01b03169061028a908490611371565b6000604051808303816000865af19150503d80600081146102c7576040519150601f19603f3d011682016040523d82523d6000602084013e6102cc565b606091505b50509050806103225760405162461bcd60e51b815260206004820152601f60248201527f476174657761793a2063616c6c20746f20666163746f7279206661696c65640060448201526064015b60405180910390fd5b5050565b60006001600160a01b03861661034f5760405163d92e233d60e01b815260040160405180910390fd5b831580159061035d57504284105b1561037f57828260405163019fcfdb60e31b815260040161031992919061138d565b60006104216103e588888860405160200161039c939291906113e8565b604051602081830303815290604052805190602001207f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000908152601c91909152603c902090565b85858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610bb192505050565b6001600160a01b03811660009081526002602052604090205490915060ff166104685760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b6003848460405161047a929190611457565b9081526040519081900360200190205460ff16156104af5783836040516314dbff3f60e31b815260040161031992919061138d565b60015460405163474a95ff60e11b81526001600160a01b0390911690638e952bfe906104e1908a908a90600401611467565b6020604051808303816000875af1158015610500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610524919061148b565b979650505050505050565b60006001600160a01b0382166105585760405163d92e233d60e01b815260040160405180910390fd5b6001546001600160a01b0316638e952bfe8361057381610bd5565b6040518363ffffffff1660e01b8152600401610590929190611467565b6020604051808303816000875af11580156105af573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105d3919061148b565b92915050565b6105e1610b57565b6105eb6000610beb565b565b6105f5610b57565b60038282604051610607929190611457565b9081526040519081900360200190205460ff1661063b5781816040516337d70afd60e11b815260040161031992919061138d565b6003828260405161064d929190611457565b908152604051908190036020018120805460ff191690556106719083908390611457565b604051908190038120907fb54b0481f674d73e0a7e0805771909ebd61fadc85286160239121febb142fabf90600090a25050565b6106ad610b57565b60015460405163f2fde38b60e01b81526001600160a01b0383811660048301529091169063f2fde38b90602401600060405180830381600087803b1580156106f457600080fd5b505af1158015610708573d6000803e3d6000fd5b5050505050565b610717610b57565b6001600160a01b03811661073e5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff16610782576040516309d0bb2d60e21b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19169055517f99a705a3c2c3339d0051f56b36a60fef91e30142c93353002617999f27aec4af9190a250565b6107d3610b57565b600382826040516107e5929190611457565b9081526040519081900360200190205460ff161561081a578181604051638bf3b1f160e01b815260040161031992919061138d565b60016003838360405161082e929190611457565b908152604051908190036020018120805492151560ff199093169290921790915561085c9083908390611457565b604051908190038120907f2cb4d732f179a7333da89a4da3f3f9a9cbe3f6d7ac090ab062c69c303da32ff790600090a25050565b610898610b57565b6001600160a01b0381166108bf5760405163d92e233d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526002602052604090205460ff161561090457604051630912922160e11b81526001600160a01b0382166004820152602401610319565b6001600160a01b038116600081815260026020526040808220805460ff19166001179055517fc031114b6ddff79d71c2554dbce316b1327bb3dad01c60b76d8e8b23ff27ea289190a250565b60006001600160a01b0388166109795760405163d92e233d60e01b815260040160405180910390fd5b831580159061098757504284105b156109a957828260405163019fcfdb60e31b815260040161031992919061138d565b60006109ca6103e58a8a8a8a8a60405160200161039c9594939291906114da565b6001600160a01b03811660009081526002602052604090205490915060ff16610a115760405163579e40b960e11b81526001600160a01b0382166004820152602401610319565b60038484604051610a23929190611457565b9081526040519081900360200190205460ff1615610a585783836040516314dbff3f60e31b815260040161031992919061138d565b600154604051637f2e6acd60e11b81526001600160a01b039091169063fe5cd59a90610a8e908c908c908c908c90600401611560565b6020604051808303816000875af1158015610aad573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad1919061148b565b9998505050505050505050565b610ae6610b57565b6001600160a01b038116610b4b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610319565b610b5481610beb565b50565b6000546001600160a01b031633146105eb5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610319565b6000806000610bc08585610c3b565b91509150610bcd81610c80565b509392505050565b60606105d36001600160a01b0383166014610dca565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000808251604103610c715760208301516040840151606085015160001a610c6587828585610f6d565b94509450505050610c79565b506000905060025b9250929050565b6000816004811115610c9457610c94611597565b03610c9c5750565b6001816004811115610cb057610cb0611597565b03610cfd5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606401610319565b6002816004811115610d1157610d11611597565b03610d5e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610319565b6003816004811115610d7257610d72611597565b03610b545760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610319565b60606000610dd98360026115c3565b610de49060026115da565b67ffffffffffffffff811115610dfc57610dfc611031565b6040519080825280601f01601f191660200182016040528015610e26576020820181803683370190505b509050600360fc1b81600081518110610e4157610e416115ed565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110610e7057610e706115ed565b60200101906001600160f81b031916908160001a9053506000610e948460026115c3565b610e9f9060016115da565b90505b6001811115610f17576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110610ed357610ed36115ed565b1a60f81b828281518110610ee957610ee96115ed565b60200101906001600160f81b031916908160001a90535060049490941c93610f1081611603565b9050610ea2565b508315610f665760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610319565b9392505050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0831115610fa45750600090506003611028565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa158015610ff8573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661102157600060019250925050611028565b9150600090505b94509492505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561106257611062611031565b604051601f8501601f19908116603f0116810190828211818310171561108a5761108a611031565b816040528093508581528686860111156110a357600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156110cf57600080fd5b813567ffffffffffffffff8111156110e657600080fd5b8201601f810184136110f757600080fd5b61110684823560208401611047565b949350505050565b6001600160a01b0381168114610b5457600080fd5b600082601f83011261113457600080fd5b610f6683833560208501611047565b60008083601f84011261115557600080fd5b50813567ffffffffffffffff81111561116d57600080fd5b602083019150836020828501011115610c7957600080fd5b60008060008060006080868803121561119d57600080fd5b85356111a88161110e565b9450602086013567ffffffffffffffff808211156111c557600080fd5b6111d189838a01611123565b95506040880135945060608801359150808211156111ee57600080fd5b506111fb88828901611143565b969995985093965092949392505050565b60006020828403121561121e57600080fd5b8135610f668161110e565b6000806020838503121561123c57600080fd5b823567ffffffffffffffff81111561125357600080fd5b61125f85828601611143565b90969095509350505050565b600080600080600080600060a0888a03121561128657600080fd5b87356112918161110e565b9650602088013567ffffffffffffffff808211156112ae57600080fd5b6112ba8b838c01611123565b975060408a01359150808211156112d057600080fd5b818a0191508a601f8301126112e457600080fd5b8135818111156112f357600080fd5b8b60208260051b850101111561130857600080fd5b6020830197508096505060608a0135945060808a013591508082111561132d57600080fd5b5061133a8a828b01611143565b989b979a50959850939692959293505050565b60005b83811015611368578181015183820152602001611350565b50506000910152565b6000825161138381846020870161134d565b9190910192915050565b60208152816020820152818360408301376000818301604090810191909152601f909201601f19160101919050565b600081518084526113d481602086016020860161134d565b601f01601f19169290920160200192915050565b60808152600061142560808301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0386166020840152828103604084015261144681866113bc565b915050826060830152949350505050565b8183823760009101908152919050565b6001600160a01b0383168152604060208201819052600090611106908301846113bc565b60006020828403121561149d57600080fd5b8151610f668161110e565b81835260006001600160fb1b038311156114c157600080fd5b8260051b80836020870137939093016020019392505050565b60a08152600061151760a08301601e81527f417574686f72697a65204f4e434841494e4944206465706c6f796d656e740000602082015260400190565b6001600160a01b0388166020840152828103604084015261153881886113bc565b9050828103606084015261154d8186886114a8565b9150508260808301529695505050505050565b6001600160a01b0385168152606060208201819052600090611584908301866113bc565b82810360408401526105248185876114a8565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176105d3576105d36115ad565b808201808211156105d3576105d36115ad565b634e487b7160e01b600052603260045260246000fd5b600081611612576116126115ad565b50600019019056fea2646970667358221220eb41edfe509a7e357b4b0c7aba803a3aa183bba25abfea52a723b852c5ead63064736f6c63430008180033", + "linkReferences": {}, + "deployedLinkReferences": {} +}