Files
2026-03-02 12:14:09 -08:00

548 lines
31 KiB
JSON

{
"_format": "hh-sol-artifact-1",
"contractName": "ConfigurationRegistry",
"sourceName": "contracts/config/ConfigurationRegistry.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "target",
"type": "address"
}
],
"name": "AddressEmptyCode",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "ERC1967InvalidImplementation",
"type": "error"
},
{
"inputs": [],
"name": "ERC1967NonPayable",
"type": "error"
},
{
"inputs": [],
"name": "FailedInnerCall",
"type": "error"
},
{
"inputs": [],
"name": "InvalidInitialization",
"type": "error"
},
{
"inputs": [],
"name": "NotInitializing",
"type": "error"
},
{
"inputs": [],
"name": "UUPSUnauthorizedCallContext",
"type": "error"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "slot",
"type": "bytes32"
}
],
"name": "UUPSUnsupportedProxiableUUID",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
}
],
"name": "ConfigDeleted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
},
{
"indexed": false,
"internalType": "bytes",
"name": "value",
"type": "bytes"
}
],
"name": "ConfigSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint64",
"name": "version",
"type": "uint64"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "CONFIG_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UPGRADER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UPGRADE_INTERFACE_VERSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
}
],
"name": "get",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
}
],
"name": "getAddress",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
}
],
"name": "getUint256",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "admin",
"type": "address"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "contractAddr",
"type": "address"
},
{
"internalType": "bytes32",
"name": "key",
"type": "bytes32"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
}
],
"name": "set",
"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": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60a080604052346100cc57306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a009081549060ff8260401c166100bd57506001600160401b036002600160401b031982821601610078575b6040516113ba90816100d28239608051818181610a100152610af00152f35b6001600160401b031990911681179091556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a1388080610059565b63f92ee8a960e01b8152600490fd5b600080fdfe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610de257508163248a9ca314610daa5781632f2ff15d14610d8057816336568abe14610d3a5781634f1ef28614610a7457816352d1902d146109fb5781637ac4ed64146108fb5781637b82d74e1461080957816391d14854146107b557816394995510146106bc578163a217fddf146106a1578163ad3cb1cc14610632578163c4d66de8146104e6578163c78ef28c146104ab578163d547741f1461045e578163e17282b31461011d575063f72c0d8b146100e057600080fd5b34610119578160031936011261011957602090517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b5080fd5b90503461045a57606036600319011261045a57610138610e50565b602480359367ffffffffffffffff929091604435848111610456573660238201121561045657808601359485116104565736828683010111610456577fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af928389526020936000805160206113658339815191528552858a20338b52855260ff868b2054161561043957506001600160a01b03169586156104085787156103db57868952888452848920888a5284526101f2858a2054610efa565b1561037b575b5085885287835283882087895283528388206102148154610efa565b601f8111610338575b508889601f88116001146102aa579287969594919287838196957fee9ec61a808b250908597e8355f721c1b12ab3e9cc2b6f16edfff6b1fcd5a9af9b969261029d575b50508460011b906000198660031b1c19161790555b855196858896875286015201848401378181018301889052601f01601f19168101030190a380f35b8401013590508338610260565b50818a52848a2090601f1988168b5b81811061031f5750928897969592889592867fee9ec61a808b250908597e8355f721c1b12ab3e9cc2b6f16edfff6b1fcd5a9af9b9610610303575b5050600184811b019055610275565b8301840135600019600387901b60f8161c1916905538806102f4565b9192876001819289878a010135815501940192016102b9565b818a52848a20601f880160051c810191868910610371575b601f0160051c01905b818110610366575061021d565b8a8155600101610359565b9091508190610350565b86895260018452848920805491680100000000000000008310156103c957600183018083558310156103b75750895283892001879055386101f8565b634e487b7160e01b8b5260329052838afd5b634e487b7160e01b8b5260419052838afd5b845162461bcd60e51b8152908101849052600881840152675a65726f206b657960c01b6044820152606490fd5b845162461bcd60e51b8152908101849052600c818401526b5a65726f206164647265737360a01b6044820152606490fd5b855163e2517d3f60e01b815233818a015280850191909152604490fd5b8780fd5b8280fd5b9190503461045a578060031936011261045a576104a791356104a26001610483610e35565b9383875260008051602061136583398151915260205286200154610f6f565b61121d565b5080f35b505034610119578160031936011261011957602090517fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af8152f35b90503461045a57602036600319011261045a57610501610e50565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0091825460ff81861c16159267ffffffffffffffff82168015908161062a575b6001149081610620575b159081610617575b50610609575067ffffffffffffffff19811660011784556105a09190836105ea575b5061057f6112a0565b6105876112a0565b61059081610fc0565b5061059a8161104e565b506110fe565b506105a9578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b68ffffffffffffffffff19166801000000000000000117845538610576565b855163f92ee8a960e01b8152fd5b90501538610554565b303b15915061054c565b859150610542565b8383346101195781600319360112610119578051918183019083821067ffffffffffffffff83111761068e575061068a9350815260058252640352e302e360dc1b602083015251918291602083526020830190610eba565b0390f35b634e487b7160e01b815260418552602490fd5b50503461011957816003193601126101195751908152602090f35b5050346101195780600319360112610119576001600160a01b036106de610e50565b1682526020918083528181206024358252835281812090838351828185549161070683610efa565b928383528583019760019187600182169182600014610795575050600114610759575b505061073792500382610e66565b61074382825114610f34565b8051810103126107565750519051908152f35b80fd5b86925087528187209087915b85831061077d57505061073793508201013880610729565b80548388018501528694508793909201918101610765565b925093505061073794915060ff19168852151560051b8201013880610729565b90503461045a578160031936011261045a578160209360ff926107d6610e35565b9035825260008051602061136583398151915286528282206001600160a01b039091168252855220549151911615158152f35b5050346101195780600319360112610119576001600160a01b0361082b610e50565b1682526020908282528083206024358452825280832081519384918181549061085382610efa565b92838652600192886001821691826000146108d1575050600114610893575b858861068a89610884848a0385610e66565b51928284938452830190610eba565b87945081939291528383205b8284106108b9575050508201018161088461068a38610872565b8054848a01860152889550879490930192810161089f565b60ff19168882015294151560051b87019094019450859350610884925061068a9150389050610872565b505034610119578060031936011261011957610915610e50565b9060018060a01b03809216835260209280845281812060243582528452818120848351838184549161094683610efa565b9283835285830196600191876001821691826000146109db57505060011461099f575b505061097792500382610e66565b61098382825114610f34565b8051810103126101195751928316809303610756575051908152f35b86925088528188209088915b8583106109c357505061097793508201013880610969565b805483880185015286945087939092019181016109ab565b925093505061097794915060ff19168752151560051b8201013880610969565b828434610756578060031936011261075657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a6757602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b9180915060031936011261045a57610a8a610e50565b90602493843567ffffffffffffffff811161011957366023820112156101195780850135610ab781610e9e565b94610ac485519687610e66565b81865260209182870193368a8383010111610d36578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610d08575b50610cf8577f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38086526000805160206113658339815191528452868620338752845260ff878720541615610cdb575081169585516352d1902d60e01b815283818a818b5afa869181610ca8575b50610ba5575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610c935750853b15610c7f575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610c615750506104a79582915190845af4913d15610c57573d610c49610c4082610e9e565b92519283610e66565b81528581943d92013e6112e1565b50606092506112e1565b955095505050505034610c7357505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311610cd4575b610cc08183610e66565b81010312610cd057519038610b89565b8680fd5b503d610cb6565b865163e2517d3f60e01b815233818b0152808b0191909152604490fd5b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610b1c565b8580fd5b838334610119578060031936011261011957610d54610e35565b90336001600160a01b03831603610d7157506104a791923561121d565b5163334bd91960e11b81528390fd5b9190503461045a578060031936011261045a576104a79135610da56001610483610e35565b6111a8565b90503461045a57602036600319011261045a578160209360019235815260008051602061136583398151915285522001549051908152f35b84913461045a57602036600319011261045a573563ffffffff60e01b811680910361045a5760209250637965db0b60e01b8114908115610e24575b5015158152f35b6301ffc9a760e01b14905083610e1d565b602435906001600160a01b0382168203610e4b57565b600080fd5b600435906001600160a01b0382168203610e4b57565b90601f8019910116810190811067ffffffffffffffff821117610e8857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8857601f01601f191660200190565b919082519283825260005b848110610ee6575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ec5565b90600182811c92168015610f2a575b6020831014610f1457565b634e487b7160e01b600052602260045260246000fd5b91607f1691610f09565b15610f3b57565b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206461746160a01b6044820152606490fd5b8060005260008051602061136583398151915260205260406000203360005260205260ff6040600020541615610fa25750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120549091906000805160206113658339815191529060ff16611049578280526020526040822081835260205260408220600160ff1982541617905533916000805160206113458339815191528180a4600190565b505090565b6001600160a01b031660008181527f985e7e44dfcb208cb67a8ab5f4ddea68569700462a8bdd41960667c1dc17353760205260408120549091907fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af906000805160206113658339815191529060ff166110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b50505090565b6001600160a01b031660008181527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a860205260408120549091907f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3906000805160206113658339815191529060ff166110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b9060009180835260008051602061136583398151915280602052604084209260018060a01b03169283855260205260ff604085205416156000146110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b9060009180835260008051602061136583398151915280602052604084209260018060a01b03169283855260205260ff6040852054166000146110f857818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112cf57565b604051631afcd79f60e31b8152600490fd5b9061130857508051156112f657805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061133b575b611319575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561131156fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220a5a3256041900cc8f3ec00c80cf4568a8fa1a904b49ba7b13b25e563813a980564736f6c63430008160033",
"deployedBytecode": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a714610de257508163248a9ca314610daa5781632f2ff15d14610d8057816336568abe14610d3a5781634f1ef28614610a7457816352d1902d146109fb5781637ac4ed64146108fb5781637b82d74e1461080957816391d14854146107b557816394995510146106bc578163a217fddf146106a1578163ad3cb1cc14610632578163c4d66de8146104e6578163c78ef28c146104ab578163d547741f1461045e578163e17282b31461011d575063f72c0d8b146100e057600080fd5b34610119578160031936011261011957602090517f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38152f35b5080fd5b90503461045a57606036600319011261045a57610138610e50565b602480359367ffffffffffffffff929091604435848111610456573660238201121561045657808601359485116104565736828683010111610456577fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af928389526020936000805160206113658339815191528552858a20338b52855260ff868b2054161561043957506001600160a01b03169586156104085787156103db57868952888452848920888a5284526101f2858a2054610efa565b1561037b575b5085885287835283882087895283528388206102148154610efa565b601f8111610338575b508889601f88116001146102aa579287969594919287838196957fee9ec61a808b250908597e8355f721c1b12ab3e9cc2b6f16edfff6b1fcd5a9af9b969261029d575b50508460011b906000198660031b1c19161790555b855196858896875286015201848401378181018301889052601f01601f19168101030190a380f35b8401013590508338610260565b50818a52848a2090601f1988168b5b81811061031f5750928897969592889592867fee9ec61a808b250908597e8355f721c1b12ab3e9cc2b6f16edfff6b1fcd5a9af9b9610610303575b5050600184811b019055610275565b8301840135600019600387901b60f8161c1916905538806102f4565b9192876001819289878a010135815501940192016102b9565b818a52848a20601f880160051c810191868910610371575b601f0160051c01905b818110610366575061021d565b8a8155600101610359565b9091508190610350565b86895260018452848920805491680100000000000000008310156103c957600183018083558310156103b75750895283892001879055386101f8565b634e487b7160e01b8b5260329052838afd5b634e487b7160e01b8b5260419052838afd5b845162461bcd60e51b8152908101849052600881840152675a65726f206b657960c01b6044820152606490fd5b845162461bcd60e51b8152908101849052600c818401526b5a65726f206164647265737360a01b6044820152606490fd5b855163e2517d3f60e01b815233818a015280850191909152604490fd5b8780fd5b8280fd5b9190503461045a578060031936011261045a576104a791356104a26001610483610e35565b9383875260008051602061136583398151915260205286200154610f6f565b61121d565b5080f35b505034610119578160031936011261011957602090517fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af8152f35b90503461045a57602036600319011261045a57610501610e50565b907ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0091825460ff81861c16159267ffffffffffffffff82168015908161062a575b6001149081610620575b159081610617575b50610609575067ffffffffffffffff19811660011784556105a09190836105ea575b5061057f6112a0565b6105876112a0565b61059081610fc0565b5061059a8161104e565b506110fe565b506105a9578280f35b805468ff00000000000000001916905551600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a138808280f35b68ffffffffffffffffff19166801000000000000000117845538610576565b855163f92ee8a960e01b8152fd5b90501538610554565b303b15915061054c565b859150610542565b8383346101195781600319360112610119578051918183019083821067ffffffffffffffff83111761068e575061068a9350815260058252640352e302e360dc1b602083015251918291602083526020830190610eba565b0390f35b634e487b7160e01b815260418552602490fd5b50503461011957816003193601126101195751908152602090f35b5050346101195780600319360112610119576001600160a01b036106de610e50565b1682526020918083528181206024358252835281812090838351828185549161070683610efa565b928383528583019760019187600182169182600014610795575050600114610759575b505061073792500382610e66565b61074382825114610f34565b8051810103126107565750519051908152f35b80fd5b86925087528187209087915b85831061077d57505061073793508201013880610729565b80548388018501528694508793909201918101610765565b925093505061073794915060ff19168852151560051b8201013880610729565b90503461045a578160031936011261045a578160209360ff926107d6610e35565b9035825260008051602061136583398151915286528282206001600160a01b039091168252855220549151911615158152f35b5050346101195780600319360112610119576001600160a01b0361082b610e50565b1682526020908282528083206024358452825280832081519384918181549061085382610efa565b92838652600192886001821691826000146108d1575050600114610893575b858861068a89610884848a0385610e66565b51928284938452830190610eba565b87945081939291528383205b8284106108b9575050508201018161088461068a38610872565b8054848a01860152889550879490930192810161089f565b60ff19168882015294151560051b87019094019450859350610884925061068a9150389050610872565b505034610119578060031936011261011957610915610e50565b9060018060a01b03809216835260209280845281812060243582528452818120848351838184549161094683610efa565b9283835285830196600191876001821691826000146109db57505060011461099f575b505061097792500382610e66565b61098382825114610f34565b8051810103126101195751928316809303610756575051908152f35b86925088528188209088915b8583106109c357505061097793508201013880610969565b805483880185015286945087939092019181016109ab565b925093505061097794915060ff19168752151560051b8201013880610969565b828434610756578060031936011261075657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163003610a6757602090517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b5163703e46dd60e11b8152fd5b9180915060031936011261045a57610a8a610e50565b90602493843567ffffffffffffffff811161011957366023820112156101195780850135610ab781610e9e565b94610ac485519687610e66565b81865260209182870193368a8383010111610d36578186928b8693018737880101526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116308114908115610d08575b50610cf8577f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e38086526000805160206113658339815191528452868620338752845260ff878720541615610cdb575081169585516352d1902d60e01b815283818a818b5afa869181610ca8575b50610ba5575050505050505191634c9c8ce360e01b8352820152fd5b9088888894938c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91828103610c935750853b15610c7f575080546001600160a01b031916821790558451889392917fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8580a2825115610c615750506104a79582915190845af4913d15610c57573d610c49610c4082610e9e565b92519283610e66565b81528581943d92013e6112e1565b50606092506112e1565b955095505050505034610c7357505080f35b63b398979f60e01b8152fd5b8651634c9c8ce360e01b8152808501849052fd5b8751632a87526960e21b815280860191909152fd5b9091508481813d8311610cd4575b610cc08183610e66565b81010312610cd057519038610b89565b8680fd5b503d610cb6565b865163e2517d3f60e01b815233818b0152808b0191909152604490fd5b855163703e46dd60e11b81528890fd5b9050817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141538610b1c565b8580fd5b838334610119578060031936011261011957610d54610e35565b90336001600160a01b03831603610d7157506104a791923561121d565b5163334bd91960e11b81528390fd5b9190503461045a578060031936011261045a576104a79135610da56001610483610e35565b6111a8565b90503461045a57602036600319011261045a578160209360019235815260008051602061136583398151915285522001549051908152f35b84913461045a57602036600319011261045a573563ffffffff60e01b811680910361045a5760209250637965db0b60e01b8114908115610e24575b5015158152f35b6301ffc9a760e01b14905083610e1d565b602435906001600160a01b0382168203610e4b57565b600080fd5b600435906001600160a01b0382168203610e4b57565b90601f8019910116810190811067ffffffffffffffff821117610e8857604052565b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff8111610e8857601f01601f191660200190565b919082519283825260005b848110610ee6575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610ec5565b90600182811c92168015610f2a575b6020831014610f1457565b634e487b7160e01b600052602260045260246000fd5b91607f1691610f09565b15610f3b57565b60405162461bcd60e51b815260206004820152600c60248201526b496e76616c6964206461746160a01b6044820152606490fd5b8060005260008051602061136583398151915260205260406000203360005260205260ff6040600020541615610fa25750565b6044906040519063e2517d3f60e01b82523360048301526024820152fd5b6001600160a01b031660008181527fb7db2dd08fcb62d0c9e08c51941cae53c267786a0b75803fb7960902fc8ef97d60205260408120549091906000805160206113658339815191529060ff16611049578280526020526040822081835260205260408220600160ff1982541617905533916000805160206113458339815191528180a4600190565b505090565b6001600160a01b031660008181527f985e7e44dfcb208cb67a8ab5f4ddea68569700462a8bdd41960667c1dc17353760205260408120549091907fb92d52e77ebaa0cae5c23e882d85609efbcb44029214147dd132daf9ef1018af906000805160206113658339815191529060ff166110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b50505090565b6001600160a01b031660008181527fab71e3f32666744d246edff3f96e4bdafee2e9867098cdd118a979a7464786a860205260408120549091907f189ab7a9244df0848122154315af71fe140f3db0fe014031783b0946b8c9d2e3906000805160206113658339815191529060ff166110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b9060009180835260008051602061136583398151915280602052604084209260018060a01b03169283855260205260ff604085205416156000146110f8578184526020526040832082845260205260408320600160ff19825416179055600080516020611345833981519152339380a4600190565b9060009180835260008051602061136583398151915280602052604084209260018060a01b03169283855260205260ff6040852054166000146110f857818452602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4600190565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112cf57565b604051631afcd79f60e31b8152600490fd5b9061130857508051156112f657805190602001fd5b604051630a12f52160e11b8152600490fd5b8151158061133b575b611319575090565b604051639996b31560e01b81526001600160a01b039091166004820152602490fd5b50803b1561131156fe2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d02dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a2646970667358221220a5a3256041900cc8f3ec00c80cf4568a8fa1a904b49ba7b13b25e563813a980564736f6c63430008160033",
"linkReferences": {},
"deployedLinkReferences": {}
}