@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
481 lines (480 loc) • 37.8 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "MasterAccessManagement",
"sourceName": "contracts/core/MasterAccessManagement.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "role",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"indexed": false,
"internalType": "string[]",
"name": "permissionsToAdd",
"type": "string[]"
},
{
"indexed": false,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "AddedPermissions",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "string[]",
"name": "rolesToGrant",
"type": "string[]"
}
],
"name": "GrantedRoles",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "role",
"type": "string"
},
{
"indexed": false,
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"indexed": false,
"internalType": "string[]",
"name": "permissionsToRemove",
"type": "string[]"
},
{
"indexed": false,
"internalType": "bool",
"name": "allowed",
"type": "bool"
}
],
"name": "RemovedPermissions",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "string[]",
"name": "rolesToRevoke",
"type": "string[]"
}
],
"name": "RevokedRoles",
"type": "event"
},
{
"inputs": [],
"name": "ALL_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "ALL_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "CREATE_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DELETE_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MASTER_CONTRACTS_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "MASTER_ROLE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "RBAC_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "READ_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "UPDATE_PERMISSION",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "master_",
"type": "address"
}
],
"name": "__MasterAccessManagement_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "role_",
"type": "string"
},
{
"components": [
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IRBAC.ResourceWithPermissions[]",
"name": "permissionsToAdd_",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"name": "addPermissionsToRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "role_",
"type": "string"
}
],
"name": "getRolePermissions",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IRBAC.ResourceWithPermissions[]",
"name": "allowed_",
"type": "tuple[]"
},
{
"components": [
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IRBAC.ResourceWithPermissions[]",
"name": "disallowed_",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "who_",
"type": "address"
}
],
"name": "getUserRoles",
"outputs": [
{
"internalType": "string[]",
"name": "roles_",
"type": "string[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to_",
"type": "address"
},
{
"internalType": "string[]",
"name": "rolesToGrant_",
"type": "string[]"
}
],
"name": "grantRoles",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "account_",
"type": "address"
},
{
"internalType": "string",
"name": "permission_",
"type": "string"
}
],
"name": "hasMasterContractsRegistryPermission",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "who_",
"type": "address"
},
{
"internalType": "string",
"name": "resource_",
"type": "string"
},
{
"internalType": "string",
"name": "permission_",
"type": "string"
}
],
"name": "hasPermission",
"outputs": [
{
"internalType": "bool",
"name": "isAllowed_",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "role_",
"type": "string"
},
{
"components": [
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IRBAC.ResourceWithPermissions[]",
"name": "permissionsToRemove_",
"type": "tuple[]"
},
{
"internalType": "bool",
"name": "allowed_",
"type": "bool"
}
],
"name": "removePermissionsFromRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from_",
"type": "address"
},
{
"internalType": "string[]",
"name": "rolesToRevoke_",
"type": "string[]"
}
],
"name": "revokeRoles",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": "0x6080806040523461001657611a9c908161001c8239f35b600080fdfe6040608081526004908136101561001557600080fd5b600090813560e01c9283622f5bc014610a6857836303bc0b3e14610a2557836306a36aee146109995783630ead6f1e14610954578363305e4c6c146106d557836337ff630d146105615783634a9e12c5146100ea5783634f0d84e3146104a0578363733352b31461048357836375e025e7146103015783637951c6da1461029c57836384b9a6451461023d57508263b3e657fb14610221578263b832a5a214610205578263dc224863146101e9578263dfa58972146101b6578263ee2f6ce5146100ef57505063ff846fb9146100ea57600080fd5b6110f3565b346101b25761019e6101af9161010436611123565b92909161010f611166565b90610199604261011d61118f565b61012881863361135b565b9351948591680292120a19d103737960bd1b6020840152610153815180926020602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a8251809360208785019101610da4565b01036022810185520183610d26565b6112eb565b6101aa8251151561131b565b6116f1565b80f35b5080fd5b346101b257816003193601126101b2576101e5906101d26111f5565b9051918291602083526020830190610dc7565b0390f35b346101b257816003193601126101b2576101e5906101d26111d3565b346101b257816003193601126101b2576101e5906101d26111b1565b346101b257816003193601126101b2576101e5906101d261118f565b34610298578160031936011261029857610255610ebb565b926024359067ffffffffffffffff821161029557509261027d61028c92602095369101610d48565b906102866111f5565b9061135b565b90519015158152f35b80fd5b8280fd5b9134610295576060366003190112610295576102b6610ebb565b9267ffffffffffffffff6024358181116102fd576102d79036908401610d48565b926044359182116102955750916102f76020959261028c94369101610d48565b9161135b565b8380fd5b50346101b25761031036610fc6565b909261031a611166565b906103986103266111b1565b9261033284823361135b565b610199604285518094602098680292120a19d103737960bd1b8a840152610362815180928c602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a825180938c8785019101610da4565b855b855181101561047f57807f27f963dfdedb973db8acb94be0be26fbd4c55498bc54cfd0733b9da9c0ab82968882888a610442888a6103e76103dd60019b866112d7565b51519687956112d7565b510151958c61042d8d84518851908281818c0193610406818387610da4565b81016002815203019020931515938486528252858520988651938492839251928391610da4565b81018e8152030190209082528c52208261122e565b61044c858261194d565b541561046e575b50506104658887519384938c85611747565b0390a10161039a565b61047791611979565b508b81610453565b8680f35b50346101b257816003193601126101b2576101e5906101d2611166565b50346101b25761055b7f037c273ac6ee1105154063d4b014a5afeec9981076c152f47a0899c6e2854740916104d436611123565b9290916105266104e2611166565b6104ea6111b1565b61019960426104fa83853361135b565b928651948591680292120a19d103737960bd1b6020840152610153815180926020602987019101610da4565b6105328451151561131b565b6001600160a01b0383168652600360205280862061055190859061194d565b51928392836116cf565b0390a180f35b50346101b25761057036610fc6565b61057b929192611166565b6105f861058661118f565b9161059283823361135b565b610199604289518094602097680292120a19d103737960bd1b898401526105c2815180928b602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a825180938b8785019101610da4565b85805b85518110156106d1577f06ea5bb05be257dd30f31cc76f4077a3df230e09f7e33e9b52fb09c40a8f695e84826106b589896106b0896106ab8f60019b8361064f6106458b8a6112d7565b51519a8b996112d7565b51015199846106968c96898651828181845194019361066f818387610da4565b810160028152030190209415159485875282528686209a8751938492839251928391610da4565b8101600181520301902091835252208561122e565b61178a565b6118f4565b506106c6878b519384938b85611747565b0390a10186906105fb565b5080f35b3461029857602090816003193601126102fd576106f0610ebb565b9084549160ff8360081c161591828093610947575b8015610930575b156108d657600193838560ff1983161789556108c5575b5060ff875460081c161561086e575061082f907f06ea5bb05be257dd30f31cc76f4077a3df230e09f7e33e9b52fb09c40a8f695e6107fb6106b0610815876108088b6107e78e8d6107726111d3565b9788916106ab6107806110d6565b96879561079361078e6110d6565b611684565b9a846107d38d9689865182818184519401936107b0818387610da4565b8101600281520301902085875282528686209a8751938492839251928391610da4565b81018581520301902091835252208561122e565b508c51958695608087526080870190610dc7565b908582038d870152610dc7565b908382038c850152610ed1565b8760608301520390a161082961078e6111d3565b906116f1565b610837578380f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989261ff0019855416855551908152a18180808380f35b855162461bcd60e51b8152908101859052602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b61ffff191661010117875587610723565b855162461bcd60e51b8152908101859052602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561070c5750600160ff85161461070c565b50600160ff851610610705565b50346101b257816003193601126101b25780516101e59161097482610cf4565b600682526555504441544560d01b602083015251918291602083526020830190610dc7565b50346101b25760209081600319360112610298576001600160a01b036109bd610ebb565b168352600382528083208054906109d382610f2e565b946109e084519687610d26565b828652908152838120848087015b848410610a07578551828152806101e58185018b610ed1565b6001918291610a15856115df565b81520192019201919085906109ee565b90346102985782600319360112610298576101e59250805191610a4783610cf4565b8252631491505160e21b602083015251918291602083526020830190610dc7565b903461029857602091826003193601126102fd5780359067ffffffffffffffff8211610cf057610a9a91369101610d48565b918151835190828181870193610ab1818387610da4565b810160028152030190206001958691828252845284812092855185818951610ada818387610da4565b810160028152030190208280528552610b248587842092885182818c51610b02818387610da4565b8101898152030190208686528252888520998951938492839251928391610da4565b810186815203019020828052855285822090610b408554611254565b97610b4b8254611254565b9584865b610c3b575b50505090919283905b610b86575b8651878152806101e58888610b79848d018e610dec565b9184830390850152610dec565b8451811015610c3657908882610ba8610ba2839796958561158d565b506115df565b610bb282896112d7565b5152610bc984610bc2838a6112d7565b515161122e565b8054610bd481610f2e565b91610be18c519384610d26565b8183528752898720878b8085015b848310610c12575092505050610c05838a6112d7565b5101520190919293610b5d565b908792939495969791610c24866115df565b815201930191018b8a96959493610bef565b610b62565b8a8051821015610cea57908291610c6182610c5b610ba2828d999861158d565b926112d7565b51528a8a8d610c7486610bc286846112d7565b805490610c8c610c8383610f2e565b95519586610d26565b8185528b52828b208b8486015b838210610cbe575050505090610cb284889594936112d7565b51015201909192610b4f565b8295919450610cd38b949798999a9b936115df565b81520193019101928f918c98979695948f94610c99565b50610b54565b8480fd5b6040810190811067ffffffffffffffff821117610d1057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610d1057604052565b81601f82011215610d9f5780359067ffffffffffffffff8211610d105760405192610d7d601f8401601f191660200185610d26565b82845260208383010111610d9f57816000926020809301838601378301015290565b600080fd5b60005b838110610db75750506000910152565b8181015183820152602001610da7565b90602091610de081518092818552858086019101610da4565b601f01601f1916010190565b9080825190818152602080910160059082808560051b8701019601946000926000935b868510610e2157505050505050505090565b909192939495969786601f19808684030187528a5182610e4a6040835190808852870190610dc7565b91015193838183039101528351808252838201918480838a1b83010196019387905b838210610e8f57505050505050806001929a019501950193969594929190610e0f565b91939580610eaa898588600196989a9c03018a528a51610dc7565b9801960192018c9594929391610e6c565b600435906001600160a01b0382168203610d9f57565b90808251908181526020809101926020808460051b8301019501936000915b848310610f005750505050505090565b9091929394958480610f1e600193601f198682030187528a51610dc7565b9801930193019194939290610ef0565b67ffffffffffffffff8111610d105760051b60200190565b81601f82011215610d9f57803591602091610f6084610f2e565b93610f6e6040519586610d26565b808552838086019160051b83010192808411610d9f57848301915b848310610f995750505050505090565b823567ffffffffffffffff8111610d9f578691610fbb84848094890101610d48565b815201920191610f89565b906060600319830112610d9f5767ffffffffffffffff600435818111610d9f5783610ff391600401610d48565b92602491823590808211610d9f5782602383011215610d9f57816004013561101a81610f2e565b94604061102a6040519788610d26565b82875260209582602089019460051b87010195818711610d9f57838101945b87861061106957505050505050505050906044358015158103610d9f5790565b8535878111610d9f57820190846023198386030112610d9f5784519061108e82610cf4565b86830135898111610d9f5785886110a792860101610d48565b8252604483013591898311610d9f576110c786898e969587960101610f46565b83820152815201950194611049565b604051906110e382610cf4565b60018252601560f91b6020830152565b34610d9f576000366003190112610d9f576101e561110f6110d6565b604051918291602083526020830190610dc7565b906040600319830112610d9f576004356001600160a01b0381168103610d9f57916024359067ffffffffffffffff8211610d9f5761116391600401610f46565b90565b6040519061117382610cf4565b600d82526c524241435f5245534f5552434560981b6020830152565b6040519061119c82610cf4565b600682526543524541544560d01b6020830152565b604051906111be82610cf4565b600682526544454c45544560d01b6020830152565b604051906111e082610cf4565b600682526526a0a9aa22a960d11b6020830152565b6040519061120282610cf4565b601982527f4d41535445525f434f4e5452414354535f5245534f55524345000000000000006020830152565b602090611248928260405194838680955193849201610da4565b82019081520301902090565b9061125e82610f2e565b60409061126e6040519182610d26565b838152809361127f601f1991610f2e565b019160005b8381106112915750505050565b602090825161129f81610cf4565b60608082528382015284820183015201611284565b8051156112c15760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156112c15760209160051b010190565b156112f35750565b60405162461bcd60e51b815260206004820152908190611317906024830190610dc7565b0390fd5b1561132257565b60405162461bcd60e51b8152602060048201526011602482015270524241433a20656d70747920726f6c657360781b6044820152606490fd5b919060009160009360018060a01b03168452602060038152604080862095865461138481610f2e565b976113918451998a610d26565b8189528252838220829085808b015b84841061156f57505050505080955b8751871015611564576113c287896112d7565b51835190805190868101916113d8818585610da4565b83019287816001958681520301902085805287528585208361140b611404836113ff6110d6565b61122e565b928c61122e565b611420826114176110d6565b9401809461122e565b54159283159361154e575b508215611538575b8215611522575b50506115145760019392918791841561145a575b505050509601956113af565b6114709394508751938492839251928391610da4565b810184815203019020818452855283832090611498611491836113ff6110d6565b928961122e565b6114a4826114176110d6565b5415928315936114fe575b5082156114df575b82156114c9575b50503885818061144e565b6114d59250018661122e565b54151538806114be565b91506114f56114ec6110d6565b8284019061122e565b541515916114b7565b61150a9193508861122e565b54151591386114af565b505050509550505050505090565b61152e9250018961122e565b541515833861143a565b91506115456114ec6110d6565b54151591611433565b61155a9193508b61122e565b541515913861142b565b979650505050505050565b600191829161157d856115df565b81520192019201919086906113a0565b80548210156112c15760005260206000200190600090565b90600182811c921680156115d5575b60208310146115bf57565b634e487b7160e01b600052602260045260246000fd5b91607f16916115b4565b906040519182600082546115f2816115a5565b908184526020946001916001811690816000146116625750600114611623575b50505061162192500383610d26565b565b600090815285812095935091905b81831061164a5750506116219350820101388080611612565b85548884018501529485019487945091830191611631565b9250505061162194925060ff191682840152151560051b820101388080611612565b60405161169081610cf4565b6001815260005b6020808210156116b257906060602092828501015201611697565b50506116cc9092919280936116c6826112b4565b526112b4565b50565b6001600160a01b03909116815260406020820181905261116392910190610ed1565b907f44240f5b60cedf44a65c3717503d91c46a899ef33c5348880e4c29131ac873119160018060a01b038116600052600360205261173382604060002061178a565b611742604051928392836116cf565b0390a1565b9261177460609361176661178294989798608088526080880190610dc7565b908682036020880152610dc7565b908482036040860152610ed1565b931515910152565b919060005b81518110156117b657806117af6117a8600193856112d7565b51866118f4565b500161178f565b50509050565b8181106117c7575050565b600081556001016117bc565b909291926118de57825167ffffffffffffffff8111610d10576117f682546115a5565b601f81116118a1575b50602080601f831160011461183c575081929394600092611831575b50508160011b916000199060031b1c1916179055565b01519050388061181b565b90601f19831695846000526020600020926000905b88821061188957505083600195969710611870575b505050811b019055565b015160001960f88460031b161c19169055388080611866565b80600185968294968601518155019501930190611851565b6118ce90836000526020600020601f840160051c810191602085106118d4575b601f0160051c01906117bc565b386117ff565b90915081906118c1565b634e487b7160e01b600052600060045260246000fd5b60018101611902818461122e565b546119455781549168010000000000000000831015610d10576119388461193285600161193f970185558461158d565b906117d3565b549261122e565b55600190565b505050600090565b919060005b81518110156117b6578061197261196b600193856112d7565b5186611979565b5001611952565b9060018201611988818361122e565b548015611a865760001990808201818111611a7057855490838201918211611a70578085918303611a46575b5050505083548015611a305701916119cc838561158d565b9390936118de57600094846119e461193f96546115a5565b90816119f3575b50505561122e565b81601f899311600114611a0a5750555b38806119eb565b908083918252611a29601f60208420940160051c8401600185016117bc565b5555611a03565b634e487b7160e01b600052603160045260246000fd5b6113ff61193291611a5d610ba2611a66968c61158d565b9283918b61158d565b55388083816119b4565b634e487b7160e01b600052601160045260246000fd5b5050505060009056fea164736f6c6343000818000a",
"deployedBytecode": "0x6040608081526004908136101561001557600080fd5b600090813560e01c9283622f5bc014610a6857836303bc0b3e14610a2557836306a36aee146109995783630ead6f1e14610954578363305e4c6c146106d557836337ff630d146105615783634a9e12c5146100ea5783634f0d84e3146104a0578363733352b31461048357836375e025e7146103015783637951c6da1461029c57836384b9a6451461023d57508263b3e657fb14610221578263b832a5a214610205578263dc224863146101e9578263dfa58972146101b6578263ee2f6ce5146100ef57505063ff846fb9146100ea57600080fd5b6110f3565b346101b25761019e6101af9161010436611123565b92909161010f611166565b90610199604261011d61118f565b61012881863361135b565b9351948591680292120a19d103737960bd1b6020840152610153815180926020602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a8251809360208785019101610da4565b01036022810185520183610d26565b6112eb565b6101aa8251151561131b565b6116f1565b80f35b5080fd5b346101b257816003193601126101b2576101e5906101d26111f5565b9051918291602083526020830190610dc7565b0390f35b346101b257816003193601126101b2576101e5906101d26111d3565b346101b257816003193601126101b2576101e5906101d26111b1565b346101b257816003193601126101b2576101e5906101d261118f565b34610298578160031936011261029857610255610ebb565b926024359067ffffffffffffffff821161029557509261027d61028c92602095369101610d48565b906102866111f5565b9061135b565b90519015158152f35b80fd5b8280fd5b9134610295576060366003190112610295576102b6610ebb565b9267ffffffffffffffff6024358181116102fd576102d79036908401610d48565b926044359182116102955750916102f76020959261028c94369101610d48565b9161135b565b8380fd5b50346101b25761031036610fc6565b909261031a611166565b906103986103266111b1565b9261033284823361135b565b610199604285518094602098680292120a19d103737960bd1b8a840152610362815180928c602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a825180938c8785019101610da4565b855b855181101561047f57807f27f963dfdedb973db8acb94be0be26fbd4c55498bc54cfd0733b9da9c0ab82968882888a610442888a6103e76103dd60019b866112d7565b51519687956112d7565b510151958c61042d8d84518851908281818c0193610406818387610da4565b81016002815203019020931515938486528252858520988651938492839251928391610da4565b81018e8152030190209082528c52208261122e565b61044c858261194d565b541561046e575b50506104658887519384938c85611747565b0390a10161039a565b61047791611979565b508b81610453565b8680f35b50346101b257816003193601126101b2576101e5906101d2611166565b50346101b25761055b7f037c273ac6ee1105154063d4b014a5afeec9981076c152f47a0899c6e2854740916104d436611123565b9290916105266104e2611166565b6104ea6111b1565b61019960426104fa83853361135b565b928651948591680292120a19d103737960bd1b6020840152610153815180926020602987019101610da4565b6105328451151561131b565b6001600160a01b0383168652600360205280862061055190859061194d565b51928392836116cf565b0390a180f35b50346101b25761057036610fc6565b61057b929192611166565b6105f861058661118f565b9161059283823361135b565b610199604289518094602097680292120a19d103737960bd1b898401526105c2815180928b602987019101610da4565b8201780103832b936b4b9b9b4b7b7103337b9103932b9b7bab931b29603d1b602982015261018a825180938b8785019101610da4565b85805b85518110156106d1577f06ea5bb05be257dd30f31cc76f4077a3df230e09f7e33e9b52fb09c40a8f695e84826106b589896106b0896106ab8f60019b8361064f6106458b8a6112d7565b51519a8b996112d7565b51015199846106968c96898651828181845194019361066f818387610da4565b810160028152030190209415159485875282528686209a8751938492839251928391610da4565b8101600181520301902091835252208561122e565b61178a565b6118f4565b506106c6878b519384938b85611747565b0390a10186906105fb565b5080f35b3461029857602090816003193601126102fd576106f0610ebb565b9084549160ff8360081c161591828093610947575b8015610930575b156108d657600193838560ff1983161789556108c5575b5060ff875460081c161561086e575061082f907f06ea5bb05be257dd30f31cc76f4077a3df230e09f7e33e9b52fb09c40a8f695e6107fb6106b0610815876108088b6107e78e8d6107726111d3565b9788916106ab6107806110d6565b96879561079361078e6110d6565b611684565b9a846107d38d9689865182818184519401936107b0818387610da4565b8101600281520301902085875282528686209a8751938492839251928391610da4565b81018581520301902091835252208561122e565b508c51958695608087526080870190610dc7565b908582038d870152610dc7565b908382038c850152610ed1565b8760608301520390a161082961078e6111d3565b906116f1565b610837578380f35b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989261ff0019855416855551908152a18180808380f35b855162461bcd60e51b8152908101859052602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b61ffff191661010117875587610723565b855162461bcd60e51b8152908101859052602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b15801561070c5750600160ff85161461070c565b50600160ff851610610705565b50346101b257816003193601126101b25780516101e59161097482610cf4565b600682526555504441544560d01b602083015251918291602083526020830190610dc7565b50346101b25760209081600319360112610298576001600160a01b036109bd610ebb565b168352600382528083208054906109d382610f2e565b946109e084519687610d26565b828652908152838120848087015b848410610a07578551828152806101e58185018b610ed1565b6001918291610a15856115df565b81520192019201919085906109ee565b90346102985782600319360112610298576101e59250805191610a4783610cf4565b8252631491505160e21b602083015251918291602083526020830190610dc7565b903461029857602091826003193601126102fd5780359067ffffffffffffffff8211610cf057610a9a91369101610d48565b918151835190828181870193610ab1818387610da4565b810160028152030190206001958691828252845284812092855185818951610ada818387610da4565b810160028152030190208280528552610b248587842092885182818c51610b02818387610da4565b8101898152030190208686528252888520998951938492839251928391610da4565b810186815203019020828052855285822090610b408554611254565b97610b4b8254611254565b9584865b610c3b575b50505090919283905b610b86575b8651878152806101e58888610b79848d018e610dec565b9184830390850152610dec565b8451811015610c3657908882610ba8610ba2839796958561158d565b506115df565b610bb282896112d7565b5152610bc984610bc2838a6112d7565b515161122e565b8054610bd481610f2e565b91610be18c519384610d26565b8183528752898720878b8085015b848310610c12575092505050610c05838a6112d7565b5101520190919293610b5d565b908792939495969791610c24866115df565b815201930191018b8a96959493610bef565b610b62565b8a8051821015610cea57908291610c6182610c5b610ba2828d999861158d565b926112d7565b51528a8a8d610c7486610bc286846112d7565b805490610c8c610c8383610f2e565b95519586610d26565b8185528b52828b208b8486015b838210610cbe575050505090610cb284889594936112d7565b51015201909192610b4f565b8295919450610cd38b949798999a9b936115df565b81520193019101928f918c98979695948f94610c99565b50610b54565b8480fd5b6040810190811067ffffffffffffffff821117610d1057604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff821117610d1057604052565b81601f82011215610d9f5780359067ffffffffffffffff8211610d105760405192610d7d601f8401601f191660200185610d26565b82845260208383010111610d9f57816000926020809301838601378301015290565b600080fd5b60005b838110610db75750506000910152565b8181015183820152602001610da7565b90602091610de081518092818552858086019101610da4565b601f01601f1916010190565b9080825190818152602080910160059082808560051b8701019601946000926000935b868510610e2157505050505050505090565b909192939495969786601f19808684030187528a5182610e4a6040835190808852870190610dc7565b91015193838183039101528351808252838201918480838a1b83010196019387905b838210610e8f57505050505050806001929a019501950193969594929190610e0f565b91939580610eaa898588600196989a9c03018a528a51610dc7565b9801960192018c9594929391610e6c565b600435906001600160a01b0382168203610d9f57565b90808251908181526020809101926020808460051b8301019501936000915b848310610f005750505050505090565b9091929394958480610f1e600193601f198682030187528a51610dc7565b9801930193019194939290610ef0565b67ffffffffffffffff8111610d105760051b60200190565b81601f82011215610d9f57803591602091610f6084610f2e565b93610f6e6040519586610d26565b808552838086019160051b83010192808411610d9f57848301915b848310610f995750505050505090565b823567ffffffffffffffff8111610d9f578691610fbb84848094890101610d48565b815201920191610f89565b906060600319830112610d9f5767ffffffffffffffff600435818111610d9f5783610ff391600401610d48565b92602491823590808211610d9f5782602383011215610d9f57816004013561101a81610f2e565b94604061102a6040519788610d26565b82875260209582602089019460051b87010195818711610d9f57838101945b87861061106957505050505050505050906044358015158103610d9f5790565b8535878111610d9f57820190846023198386030112610d9f5784519061108e82610cf4565b86830135898111610d9f5785886110a792860101610d48565b8252604483013591898311610d9f576110c786898e969587960101610f46565b83820152815201950194611049565b604051906110e382610cf4565b60018252601560f91b6020830152565b34610d9f576000366003190112610d9f576101e561110f6110d6565b604051918291602083526020830190610dc7565b906040600319830112610d9f576004356001600160a01b0381168103610d9f57916024359067ffffffffffffffff8211610d9f5761116391600401610f46565b90565b6040519061117382610cf4565b600d82526c524241435f5245534f5552434560981b6020830152565b6040519061119c82610cf4565b600682526543524541544560d01b6020830152565b604051906111be82610cf4565b600682526544454c45544560d01b6020830152565b604051906111e082610cf4565b600682526526a0a9aa22a960d11b6020830152565b6040519061120282610cf4565b601982527f4d41535445525f434f4e5452414354535f5245534f55524345000000000000006020830152565b602090611248928260405194838680955193849201610da4565b82019081520301902090565b9061125e82610f2e565b60409061126e6040519182610d26565b838152809361127f601f1991610f2e565b019160005b8381106112915750505050565b602090825161129f81610cf4565b60608082528382015284820183015201611284565b8051156112c15760200190565b634e487b7160e01b600052603260045260246000fd5b80518210156112c15760209160051b010190565b156112f35750565b60405162461bcd60e51b815260206004820152908190611317906024830190610dc7565b0390fd5b1561132257565b60405162461bcd60e51b8152602060048201526011602482015270524241433a20656d70747920726f6c657360781b6044820152606490fd5b919060009160009360018060a01b03168452602060038152604080862095865461138481610f2e565b976113918451998a610d26565b8189528252838220829085808b015b84841061156f57505050505080955b8751871015611564576113c287896112d7565b51835190805190868101916113d8818585610da4565b83019287816001958681520301902085805287528585208361140b611404836113ff6110d6565b61122e565b928c61122e565b611420826114176110d6565b9401809461122e565b54159283159361154e575b508215611538575b8215611522575b50506115145760019392918791841561145a575b505050509601956113af565b6114709394508751938492839251928391610da4565b810184815203019020818452855283832090611498611491836113ff6110d6565b928961122e565b6114a4826114176110d6565b5415928315936114fe575b5082156114df575b82156114c9575b50503885818061144e565b6114d59250018661122e565b54151538806114be565b91506114f56114ec6110d6565b8284019061122e565b541515916114b7565b61150a9193508861122e565b54151591386114af565b505050509550505050505090565b61152e9250018961122e565b541515833861143a565b91506115456114ec6110d6565b54151591611433565b61155a9193508b61122e565b541515913861142b565b979650505050505050565b600191829161157d856115df565b81520192019201919086906113a0565b80548210156112c15760005260206000200190600090565b90600182811c921680156115d5575b60208310146115bf57565b634e487b7160e01b600052602260045260246000fd5b91607f16916115b4565b906040519182600082546115f2816115a5565b908184526020946001916001811690816000146116625750600114611623575b50505061162192500383610d26565b565b600090815285812095935091905b81831061164a5750506116219350820101388080611612565b85548884018501529485019487945091830191611631565b9250505061162194925060ff191682840152151560051b820101388080611612565b60405161169081610cf4565b6001815260005b6020808210156116b257906060602092828501015201611697565b50506116cc9092919280936116c6826112b4565b526112b4565b50565b6001600160a01b03909116815260406020820181905261116392910190610ed1565b907f44240f5b60cedf44a65c3717503d91c46a899ef33c5348880e4c29131ac873119160018060a01b038116600052600360205261173382604060002061178a565b611742604051928392836116cf565b0390a1565b9261177460609361176661178294989798608088526080880190610dc7565b908682036020880152610dc7565b908482036040860152610ed1565b931515910152565b919060005b81518110156117b657806117af6117a8600193856112d7565b51866118f4565b500161178f565b50509050565b8181106117c7575050565b600081556001016117bc565b909291926118de57825167ffffffffffffffff8111610d10576117f682546115a5565b601f81116118a1575b50602080601f831160011461183c575081929394600092611831575b50508160011b916000199060031b1c1916179055565b01519050388061181b565b90601f19831695846000526020600020926000905b88821061188957505083600195969710611870575b505050811b019055565b015160001960f88460031b161c19169055388080611866565b80600185968294968601518155019501930190611851565b6118ce90836000526020600020601f840160051c810191602085106118d4575b601f0160051c01906117bc565b386117ff565b90915081906118c1565b634e487b7160e01b600052600060045260246000fd5b60018101611902818461122e565b546119455781549168010000000000000000831015610d10576119388461193285600161193f970185558461158d565b906117d3565b549261122e565b55600190565b505050600090565b919060005b81518110156117b6578061197261196b600193856112d7565b5186611979565b5001611952565b9060018201611988818361122e565b548015611a865760001990808201818111611a7057855490838201918211611a70578085918303611a46575b5050505083548015611a305701916119cc838561158d565b9390936118de57600094846119e461193f96546115a5565b90816119f3575b50505561122e565b81601f899311600114611a0a5750555b38806119eb565b908083918252611a29601f60208420940160051c8401600185016117bc565b5555611a03565b634e487b7160e01b600052603160045260246000fd5b6113ff61193291611a5d610ba2611a66968c61158d565b9283918b61158d565b55388083816119b4565b634e487b7160e01b600052601160045260246000fd5b5050505060009056fea164736f6c6343000818000a",
"linkReferences": {},
"deployedLinkReferences": {}
}