@q-dev/gdk-sdk
Version:
Typescript Library to interact with GDK Contracts
821 lines • 85.2 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "CommunityParametersModule",
"sourceName": "contracts/presets/CommunityParametersModule.sol",
"abi": [
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName",
"type": "string"
}
],
"name": "DAOParameterStorage__ParameterNotFound",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"indexed": false,
"internalType": "struct Parameter",
"name": "parameter",
"type": "tuple"
}
],
"name": "ParameterAdded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"indexed": false,
"internalType": "struct Parameter",
"name": "parameter",
"type": "tuple"
}
],
"name": "ParameterChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "parameterName",
"type": "string"
}
],
"name": "ParameterRemoved",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "DAO_PARAMETER_STORAGE_RESOURCE",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "resource_",
"type": "string"
},
{
"internalType": "string",
"name": "relatedExpertPanelName_",
"type": "string"
}
],
"name": "__CommunityParametersModule_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registry_",
"type": "address"
},
{
"internalType": "string",
"name": "resource_",
"type": "string"
},
{
"internalType": "string",
"name": "relatedExpertPanelName_",
"type": "string"
}
],
"name": "__CommunityParametersModule_initAndSetDeps",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "resource_",
"type": "string"
}
],
"name": "__DAOParameterStorage_init",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "member_",
"type": "address"
},
{
"internalType": "string",
"name": "permission_",
"type": "string"
}
],
"name": "checkPermission",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "getDAOParameter",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getDAOParameters",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getInjector",
"outputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "index_",
"type": "uint256"
}
],
"name": "getParameterByIndex",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getParametersCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResource",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getResourceRecords",
"outputs": [
{
"components": [
{
"internalType": "string",
"name": "existingRole",
"type": "string"
},
{
"internalType": "string",
"name": "resource",
"type": "string"
},
{
"internalType": "string[]",
"name": "permissions",
"type": "string[]"
}
],
"internalType": "struct IDAOIntegration.ResourceRecords[]",
"name": "records_",
"type": "tuple[]"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "hasDAOParameter",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "implementation",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "permissionManager",
"outputs": [
{
"internalType": "contract PermissionManager",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
}
],
"name": "removeDAOParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
}
],
"name": "removeDAOParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
},
{
"internalType": "address",
"name": "value_",
"type": "address"
}
],
"name": "setAddressParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
},
{
"internalType": "address[]",
"name": "values_",
"type": "address[]"
}
],
"name": "setAddressParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
},
{
"internalType": "bool",
"name": "value_",
"type": "bool"
}
],
"name": "setBoolParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
},
{
"internalType": "bool[]",
"name": "values_",
"type": "bool[]"
}
],
"name": "setBoolParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
},
{
"internalType": "bytes",
"name": "value_",
"type": "bytes"
}
],
"name": "setBytesParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
},
{
"internalType": "bytes[]",
"name": "values_",
"type": "bytes[]"
}
],
"name": "setBytesParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter",
"name": "parameter_",
"type": "tuple"
}
],
"name": "setDAOParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "bytes",
"name": "value",
"type": "bytes"
},
{
"internalType": "enum ParameterType",
"name": "solidityType",
"type": "uint8"
}
],
"internalType": "struct Parameter[]",
"name": "parameters_",
"type": "tuple[]"
}
],
"name": "setDAOParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "registryAddress_",
"type": "address"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"name": "setDependencies",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "injector_",
"type": "address"
}
],
"name": "setInjector",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
},
{
"internalType": "string",
"name": "value_",
"type": "string"
}
],
"name": "setStringParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
},
{
"internalType": "string[]",
"name": "values_",
"type": "string[]"
}
],
"name": "setStringParameters",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "parameterName_",
"type": "string"
},
{
"internalType": "uint256",
"name": "value_",
"type": "uint256"
}
],
"name": "setUintParameter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string[]",
"name": "parameterNames_",
"type": "string[]"
},
{
"internalType": "uint256[]",
"name": "values_",
"type": "uint256[]"
}
],
"name": "setUintParameters",
"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"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": "0x60a0604052306080523480156200001557600080fd5b506200002062000026565b62000115565b600054610100900460ff16156200005a5760405162461bcd60e51b81526004016200005190620000b3565b60405180910390fd5b60005460ff90811614620000b1576000805460ff191660ff9081179091556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249891620000a89162000105565b60405180910390a15b565b60208082528101620000ff81602781527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469602082015266616c697a696e6760c81b604082015260600190565b92915050565b60ff8216815260208101620000ff565b6080516140ae6200014d60003960008181610861015281816108a1015281816109260152818161096601526109de01526140ae6000f3fe6080604052600436106102045760003560e01c80639172141111610118578063cc7a2049116100a0578063ee9d38ff1161006f578063ee9d38ff146105e3578063f13bdd4d14610603578063fcae0a4414610625578063fe23119b14610645578063ffd6cfd31461066557600080fd5b8063cc7a20491461054f578063cd98c38814610581578063d8ad4e1c146105a1578063d9092585146105c157600080fd5b8063ae71109c116100e7578063ae71109c146104c3578063bb65dc83146104e5578063be7711ef146104fa578063c254fbc91461051a578063cabc429d1461052f57600080fd5b806391721411146104365780639646b1ac146104565780639c5662e214610483578063a3db4a69146104a357600080fd5b806352d1902d1161019b578063691304511161016a57806369130451146103965780637760fe67146103b657806382bc7d96146103d6578063897f7e91146103f65780638cb941cc1461041657600080fd5b806352d1902d1461031f578063579118f4146103415780635c60da1b1461036157806360a7384d1461037657600080fd5b80632b1c312e116101d75780632b1c312e146102a15780633659cfe6146102c15780633e3b5b19146102e15780634f1ef2861461030c57600080fd5b806301ffc9a714610209578063145290921461023f5780632169d8a51461026157806327fe594814610281575b600080fd5b34801561021557600080fd5b506102296102243660046129f3565b610685565b6040516102369190612a1e565b60405180910390f35b34801561024b57600080fd5b5061025f61025a366004612b25565b6106cb565b005b34801561026d57600080fd5b5061025f61027c366004612b70565b6106fe565b34801561028d57600080fd5b5061025f61029c366004612beb565b61073b565b3480156102ad57600080fd5b5061025f6102bc366004612b25565b61077a565b3480156102cd57600080fd5b5061025f6102dc366004612c6f565b610857565b3480156102ed57600080fd5b50600080516020614012833981519152545b6040516102369190612c99565b61025f61031a366004612ca7565b61091c565b34801561032b57600080fd5b506103346109d1565b6040516102369190612cfa565b34801561034d57600080fd5b5061025f61035c366004612d08565b610a2e565b34801561036d57600080fd5b506102ff610a62565b34801561038257600080fd5b5061025f610391366004612e72565b610a71565b3480156103a257600080fd5b5061025f6103b1366004612ca7565b610b1f565b3480156103c257600080fd5b5061025f6103d1366004612f7f565b610bcb565b3480156103e257600080fd5b506102296103f1366004612b25565b610bfb565b34801561040257600080fd5b5061025f610411366004613048565b610c08565b34801561042257600080fd5b5061025f610431366004612c6f565b610cb6565b34801561044257600080fd5b5061025f610451366004612d08565b610cd4565b34801561046257600080fd5b50610476610471366004612b25565b610d38565b604051610236919061318f565b34801561048f57600080fd5b5061047661049e3660046131a0565b610d6c565b3480156104af57600080fd5b5061025f6104be3660046131c1565b610d97565b3480156104cf57600080fd5b506104d8610e45565b6040516102369190613227565b3480156104f157600080fd5b506104d8610ed3565b34801561050657600080fd5b5061025f6105153660046132ab565b610f65565b34801561052657600080fd5b5061033461101c565b34801561053b57600080fd5b5061025f61054a3660046133a0565b611027565b34801561055b57600080fd5b506002546105749061010090046001600160a01b031681565b604051610236919061341c565b34801561058d57600080fd5b5061025f61059c36600461343d565b61108e565b3480156105ad57600080fd5b506102296105bc366004612ca7565b6110c4565b3480156105cd57600080fd5b506105d6611147565b60405161023691906134ff565b3480156105ef57600080fd5b5061025f6105fe366004613510565b611153565b34801561060f57600080fd5b50610618611190565b6040516102369190613679565b34801561063157600080fd5b5061025f61064036600461368a565b61172a565b34801561065157600080fd5b5061025f610660366004613737565b611791565b34801561067157600080fd5b5061025f610680366004612d08565b611841565b60006001600160e01b0319821663f13bdd4d60e01b14806106b657506001600160e01b031982166336e447a160e21b145b806106c557506106c582611875565b92915050565b6106f26040518060400160405280600681526020016544454c45544560d01b8152506118c5565b6106fb816118eb565b50565b6107256040518060400160405280600681526020016555504441544560d01b8152506118c5565b610737610732828461193a565b61199d565b5050565b604080516000815260208101909152610755908490610b1f565b61076b8360008051602061401283398151915255565b6107758282610cd4565b505050565b600054610100900460ff161580801561079a5750600054600160ff909116105b806107b45750303b1580156107b4575060005460ff166001145b6107d95760405162461bcd60e51b81526004016107d0906137e8565b60405180910390fd5b6000805460ff1916600117905580156107fc576000805461ff0019166101001790555b600161080883826138d2565b508015610737576000805461ff00191690556040517f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989061084b906001906139a5565b60405180910390a15050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361089f5760405162461bcd60e51b81526004016107d0906139fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108d1611a26565b6001600160a01b0316146108f75760405162461bcd60e51b81526004016107d090613a51565b61090081611a42565b604080516000808252602082019092526106fb91839190611b46565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036109645760405162461bcd60e51b81526004016107d0906139fa565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610996611a26565b6001600160a01b0316146109bc5760405162461bcd60e51b81526004016107d090613a51565b6109c582611a42565b61073782826001611b46565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610a1b5760405162461bcd60e51b81526004016107d090613ab9565b5060008051602061403283398151915290565b610a556040518060400160405280600681526020016555504441544560d01b8152506118c5565b6107376107328284611c28565b6000610a6c611a26565b905090565b610a986040518060400160405280600681526020016555504441544560d01b8152506118c5565b8051825114610ab95760405162461bcd60e51b81526004016107d090613b30565b60005b825181101561077557610b0d610732848381518110610add57610add613b40565b6020026020010151848481518110610af757610af7613b40565b602002602001015161193a90919063ffffffff16565b80610b1781613b6c565b915050610abc565b610b27611c66565b6000829050806001600160a01b0316639a06df506040518163ffffffff1660e01b8152600401602060405180830381865afa158015610b6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b8e9190613b90565b600260016101000a8154816001600160a01b0302191690836001600160a01b03160217905550506107373360008051602061401283398151915255565b610bf26040518060400160405280600681526020016555504441544560d01b8152506118c5565b6106fb8161199d565b60006106c5600383611cba565b610c2f6040518060400160405280600681526020016555504441544560d01b8152506118c5565b8051825114610c505760405162461bcd60e51b81526004016107d090613b30565b60005b825181101561077557610ca4610732848381518110610c7457610c74613b40565b6020026020010151848481518110610c8e57610c8e613b40565b6020026020010151611c2890919063ffffffff16565b80610cae81613b6c565b915050610c53565b610cbe611c66565b6106fb8160008051602061401283398151915255565b60405163158e189760e11b81523090632b1c312e90610cf7908590600401613227565b600060405180830381600087803b158015610d1157600080fd5b505af1158015610d25573d6000803e3d6000fd5b50505050806005908161077591906138d2565b610d58604080516060808201835280825260208201529081016000905290565b610d6182611ce7565b6106c5600383611d11565b610d8c604080516060808201835280825260208201529081016000905290565b6106c5600383611ee8565b610dbe6040518060400160405280600681526020016555504441544560d01b8152506118c5565b8051825114610ddf5760405162461bcd60e51b81526004016107d090613b30565b60005b825181101561077557610e33610732848381518110610e0357610e03613b40565b6020026020010151848481518110610e1d57610e1d613b40565b6020026020010151611f1d90919063ffffffff16565b80610e3d81613b6c565b915050610de2565b60018054610e529061380e565b80601f0160208091040260200160405190810160405280929190818152602001828054610e7e9061380e565b8015610ecb5780601f10610ea057610100808354040283529160200191610ecb565b820191906000526020600020905b815481529060010190602001808311610eae57829003601f168201915b505050505081565b606060018054610ee29061380e565b80601f0160208091040260200160405190810160405280929190818152602001828054610f0e9061380e565b8015610f5b5780601f10610f3057610100808354040283529160200191610f5b565b820191906000526020600020905b815481529060010190602001808311610f3e57829003601f168201915b5050505050905090565b610f8c6040518060400160405280600681526020016555504441544560d01b8152506118c5565b8051825114610fad5760405162461bcd60e51b81526004016107d090613b30565b60005b82518110156107755761100a610732848381518110610fd157610fd1613b40565b6020026020010151848481518110610feb57610feb613b40565b60200260200101516001600160a01b0316611f7b90919063ffffffff16565b8061101481613b6c565b915050610fb0565b6000610a6c60035490565b61104e6040518060400160405280600681526020016555504441544560d01b8152506118c5565b60005b81518110156107375761107c82828151811061106f5761106f613b40565b602002602001015161199d565b8061108681613b6c565b915050611051565b6110b56040518060400160405280600681526020016555504441544560d01b8152506118c5565b61073761073282151584611fd9565b600254604051633ca8e36d60e11b815260009161010090046001600160a01b031690637951c6da906110ff9086906001908790600401613c2b565b602060405180830381865afa15801561111c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111409190613c6a565b9392505050565b6060610a6c6003612045565b61117a6040518060400160405280600681526020016555504441544560d01b8152506118c5565b6107376107326001600160a01b03831684611f7b565b60408051600380825260808201909252606091816020015b6111cc60405180606001604052806060815260200160608152602001606081525090565b8152602001906001900390816111a8579050509050600061124560405180604001604052806040518060400160405280600d81526020016c4352454154455f564f54494e4760981b8152508152602001604051806040016040528060088152602001672b27aa22afa327a960c11b8152508152506121ff565b905060405180606001604052806112e5600580546112629061380e565b80601f016020809104026020016040519081016040528092919081815260200182805461128e9061380e565b80156112db5780601f106112b0576101008083540402835291602001916112db565b820191906000526020600020905b8154815290600101906020018083116112be57829003601f168201915b5050505050612278565b6000815181106112f7576112f7613b40565b60200260200101518152602001600180546113119061380e565b80601f016020809104026020016040519081016040528092919081815260200182805461133d9061380e565b801561138a5780601f1061135f5761010080835404028352916020019161138a565b820191906000526020600020905b81548152906001019060200180831161136d57829003601f168201915b5050505050815260200182815250826000815181106113ab576113ab613b40565b602002602001018190525060006113ed60405180602001604052806040518060400160405280600681526020016511561411549560d21b8152508152506122ac565b9050604051806060016040528061148d6005805461140a9061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546114369061380e565b80156114835780601f1061145857610100808354040283529160200191611483565b820191906000526020600020905b81548152906001019060200180831161146657829003601f168201915b50505050506122f0565b60008151811061149f5761149f613b40565b60200260200101518152602001600180546114b99061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546114e59061380e565b80156115325780601f1061150757610100808354040283529160200191611532565b820191906000526020600020905b81548152906001019060200180831161151557829003601f168201915b50505050508152602001828152508360018151811061155357611553613b40565b602002602001018190525060405180606001604052806115fc600580546115799061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546115a59061380e565b80156115f25780601f106115c7576101008083540402835291602001916115f2565b820191906000526020600020905b8154815290600101906020018083116115d557829003601f168201915b5050505050612311565b60008151811061160e5761160e613b40565b60200260200101518152602001600180546116289061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546116549061380e565b80156116a15780601f10611676576101008083540402835291602001916116a1565b820191906000526020600020905b81548152906001019060200180831161168457829003601f168201915b5050505050815260200161170460405180604001604052806040518060400160405280600681526020016555504441544560d01b81525081526020016040518060400160405280600681526020016544454c45544560d01b8152508152506121ff565b8152508360028151811061171a5761171a613b40565b6020026020010181905250505090565b6117516040518060400160405280600681526020016544454c45544560d01b8152506118c5565b60005b81518110156107375761177f82828151811061177257611772613b40565b60200260200101516118eb565b8061178981613b6c565b915050611754565b6117b86040518060400160405280600681526020016555504441544560d01b8152506118c5565b80518251146117d95760405162461bcd60e51b81526004016107d090613b30565b60005b82518110156107755761182f6107328483815181106117fd576117fd613b40565b602002602001015184848151811061181757611817613b40565b60200260200101511515611fd990919063ffffffff16565b8061183981613b6c565b9150506117dc565b6118686040518060400160405280600681526020016555504441544560d01b8152506118c5565b6107376107328284611f1d565b60006001600160e01b031982166318da2ad760e31b14806118a657506001600160e01b031982166363c8929f60e01b145b806106c557506301ffc9a760e01b6001600160e01b03198316146106c5565b6118cf33826110c4565b6106fb5760405162461bcd60e51b81526004016107d090613cf9565b6118f481611ce7565b6118ff600382612332565b507f49ba54ccfa6d8676195170aa09aabbb0a33d4259f9f708f42517826c2ea7139b8160405161192f9190613227565b60405180910390a150565b61195a604080516060808201835280825260208201529081016000905290565b60405180606001604052808381526020018460405160200161197c9190612cfa565b60408051601f19818403018152919052815260200160025b90529392505050565b80516119ab90600390611cba565b156119eb576119bb600382612637565b507ff7eb206277eeecfc5dc3d67bdafb1828efb1e4419b602e08ae49f9ffb0721b4b8160405161192f919061318f565b6119f6600382612703565b507f9acff1bc36c03db9beac2f4d372ca4e51d0c816a61ab2c9062f360c5328164088160405161192f919061318f565b600080516020614032833981519152546001600160a01b031690565b6000600260019054906101000a90046001600160a01b03166001600160a01b0316638412ccd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a97573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611abb9190613d28565b6001600160a01b031663d10611fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c9190613b90565b9050336001600160a01b038216146107375760405162461bcd60e51b81526004016107d090613d8c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b7957610775836127af565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bd3575060408051601f3d908101601f19168201909252611bd091810190613da7565b60015b611bef5760405162461bcd60e51b81526004016107d090613e11565b6000805160206140328339815191528114611c1c5760405162461bcd60e51b81526004016107d090613e65565b50610775838383612805565b611c48604080516060808201835280825260208201529081016000905290565b60408051606081018252838152602081018590529081016004611994565b6000611c7e6000805160206140128339815191525490565b90506001600160a01b0381161580611c9e57506001600160a01b03811633145b6106fb5760405162461bcd60e51b81526004016107d090613ea7565b60008260010182604051611cce9190613ed9565b9081526040519081900360200190205415159392505050565b611cf2600382611cba565b6106fb57806040516375b29ba760e01b81526004016107d09190613227565b611d31604080516060808201835280825260208201529081016000905290565b8260000160018460010184604051611d499190613ed9565b908152602001604051809103902054611d629190613ee3565b81548110611d7257611d72613b40565b9060005260206000209060030201604051806060016040529081600082018054611d9b9061380e565b80601f0160208091040260200160405190810160405280929190818152602001828054611dc79061380e565b8015611e145780601f10611de957610100808354040283529160200191611e14565b820191906000526020600020905b815481529060010190602001808311611df757829003601f168201915b50505050508152602001600182018054611e2d9061380e565b80601f0160208091040260200160405190810160405280929190818152602001828054611e599061380e565b8015611ea65780601f10611e7b57610100808354040283529160200191611ea6565b820191906000526020600020905b815481529060010190602001808311611e8957829003601f168201915b5050509183525050600282015460209091019060ff166005811115611ecd57611ecd613104565b6005811115611ede57611ede613104565b9052509392505050565b611f08604080516060808201835280825260208201529081016000905290565b826000018281548110611d7257611d72613b40565b611f3d604080516060808201835280825260208201529081016000905290565b604051806060016040528083815260200184604051602001611f5f9190613227565b60408051601f1981840301815291905281526020016003611994565b611f9b604080516060808201835280825260208201529081016000905290565b604051806060016040528083815260200184604051602001611fbd9190612c99565b60408051601f1981840301815291905281526020016001611994565b611ff9604080516060808201835280825260208201529081016000905290565b604051806060016040528083815260200184612016576000612019565b60015b6040516020016120299190613eff565b60408051601f1981840301815291905281526020016005611994565b606081600001805480602002602001604051908101604052809291908181526020016000905b828210156121f4578382906000526020600020906003020160405180606001604052908160008201805461209e9061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546120ca9061380e565b80156121175780601f106120ec57610100808354040283529160200191612117565b820191906000526020600020905b8154815290600101906020018083116120fa57829003601f168201915b505050505081526020016001820180546121309061380e565b80601f016020809104026020016040519081016040528092919081815260200182805461215c9061380e565b80156121a95780601f1061217e576101008083540402835291602001916121a9565b820191906000526020600020905b81548152906001019060200180831161218c57829003601f168201915b5050509183525050600282015460209091019060ff1660058111156121d0576121d0613104565b60058111156121e1576121e1613104565b815250508152602001906001019061206b565b505050509050919050565b6040805160028082526060828101909352816020015b60608152602001906001900390816122155750508251815191925090829060009061224257612242613b40565b602090810291909101015281600160200201518160018151811061226857612268613b40565b6020026020010181905250919050565b60606106c56040518060200160405280846040516020016122999190613f0d565b6040516020818303038152906040528152505b604080516001808252818301909252606091816020015b60608152602001906001900390816122c35750508251815191925090829060009061226857612268613b40565b60606106c56040518060200160405280846040516020016122999190613f2f565b60606106c56040518060200160405280846040516020016122999190613f48565b60008083600101836040516123479190613ed9565b90815260200160405180910390205490508060001461262d57600061236d600183613ee3565b855490915060009061238190600190613ee3565b90508181146125af5760008660000182815481106123a1576123a1613b40565b90600052602060002090600302016040518060600160405290816000820180546123ca9061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546123f69061380e565b80156124435780601f1061241857610100808354040283529160200191612443565b820191906000526020600020905b81548152906001019060200180831161242657829003601f168201915b5050505050815260200160018201805461245c9061380e565b80601f01602080910402602001604051908101604052809291908181526020018280546124889061380e565b80156124d55780601f106124aa576101008083540402835291602001916124d5565b820191906000526020600020905b8154815290600101906020018083116124b857829003601f168201915b5050509183525050600282015460209091019060ff1660058111156124fc576124fc613104565b600581111561250d5761250d613104565b8152505090508087600001848154811061252957612529613b40565b60009182526020909120825160039092020190819061254890826138d2565b506020820151600182019061255d90826138d2565b50604082015160028201805460ff1916600183600581111561258157612581613104565b021790555050815160405186925060018a019161259d91613ed9565b90815260405190819003602001902055505b85548690806125c0576125c0613f61565b600082815260208120600019909201916003830201906125e08282612983565b6125ee600183016000612983565b50600201805460ff191690559055604051600187019061260f908790613ed9565b908152602001604051809103902060009055600193505050506106c5565b60009150506106c5565b6000612647838360000151611cba565b156126fb57818360000160018560010185600001516040516126699190613ed9565b9081526020016040518091039020546126829190613ee3565b8154811061269257612692613b40565b6000918252602090912082516003909202019081906126b190826138d2565b50602082015160018201906126c690826138d2565b50604082015160028201805460ff191660018360058111156126ea576126ea613104565b0217905550905050600190506106c5565b5060006106c5565b6000612713838360000151611cba565b6126fb5782546001810184556000848152602090208351849260030290910190819061273f90826138d2565b506020820151600182019061275490826138d2565b50604082015160028201805460ff1916600183600581111561277857612778613104565b0217905550508354835160405191925060018601916127979190613ed9565b908152604051908190036020019020555060016106c5565b6001600160a01b0381163b6127d65760405162461bcd60e51b81526004016107d090613fbf565b60008051602061403283398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61280e83612830565b60008251118061281b5750805b156107755761282a8383612870565b50505050565b612839816127af565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111408383604051806060016040528060278152602001614052602791396060600080856001600160a01b0316856040516128ad9190613ed9565b600060405180830381855af49150503d80600081146128e8576040519150601f19603f3d011682016040523d82523d6000602084013e6128ed565b606091505b50915091506128fe86838387612908565b9695505050505050565b60608315612947578251600003612940576001600160a01b0385163b6129405760405162461bcd60e51b81526004016107d090614001565b5081612951565b6129518383612959565b949350505050565b8151156129695781518083602001fd5b8060405162461bcd60e51b81526004016107d09190613227565b50805461298f9061380e565b6000825580601f1061299f575050565b601f0160209004906000526020600020908101906106fb91905b808211156129cd57600081556001016129b9565b5090565b6001600160e01b031981165b81146106fb57600080fd5b80356106c5816129d1565b600060208284031215612a0857612a08600080fd5b600061295184846129e8565b8015155b82525050565b602081016106c58284612a14565b634e487b7160e01b600052604160045260246000fd5b601f19601f83011681018181106001600160401b0382111715612a6757612a67612a2c565b6040525050565b6000612a7960405190565b9050612a858282612a42565b919050565b60006001600160401b03821115612aa357612aa3612a2c565b601f19601f83011660200192915050565b82818337506000910152565b6000612ad3612ace84612a8a565b612a6e565b905082815260208101848484011115612aee57612aee600080fd5b612af9848285612ab4565b509392505050565b600082601f830112612b1557612b15600080fd5b8135612951848260208601612ac0565b600060208284031215612b3a57612b3a600080fd5b81356001600160401b03811115612b5357612b53600080fd5b61295184828501612b01565b806129dd565b80356106c581612b5f565b60008060408385031215612b8657612b86600080fd5b82356001600160401b03811115612b9f57612b9f600080fd5b612bab85828601612b01565b9250506020612bbc85828601612b65565b9150509250929050565b60006001600160a01b0382166106c5565b6129dd81612bc6565b80356106c581612bd7565b600080600060608486031215612c0357612c03600080fd5b6000612c0f8686612be0565b93505060208401356001600160401b03811115612c2e57612c2e600080fd5b612c3a86828701612b01565b92505060408401356001600160401b03811115612c5957612c59600080fd5b612c6586828701612b01565b9150509250925092565b600060208284031215612c8457612c84600080fd5b60006129518484612be0565b612a1881612bc6565b602081016106c58284612c90565b60008060408385031215612cbd57612cbd600080fd5b6000612cc98585612be0565b92505060208301356001600160401b03811115612ce857612ce8600080fd5b612bbc85828601612b01565b80612a18565b602081016106c58284612cf4565b60008060408385031215612d1e57612d1e600080fd5b82356001600160401b03811115612d3757612d37600080fd5b612cc985828601612b01565b60006001600160401b03821115612d5c57612d5c612a2c565b5060209081020190565b6000612d74612ace84612d43565b83815290506020808201908402830185811115612d9357612d93600080fd5b835b81811015612dd15780356001600160401b03811115612db657612db6600080fd5b8501612dc28882612b01565b84525060209283019201612d95565b5050509392505050565b600082601f830112612def57612def600080fd5b8135612951848260208601612d66565b6000612e0d612ace84612d43565b83815290506020808201908402830185811115612e2c57612e2c600080fd5b835b81811015612dd157612e408782612b65565b835260209283019201612e2e565b600082601f830112612e6257612e62600080fd5b8135612951848260208601612dff565b60008060408385031215612e8857612e88600080fd5b82356001600160401b03811115612ea157612ea1600080fd5b612ead85828601612ddb565b92505060208301356001600160401b03811115612ecc57612ecc600080fd5b612bbc85828601612e4e565b600681106106fb57600080fd5b80356106c581612ed8565b600060608284031215612f0557612f05600080fd5b612f0f6060612a6e565b905081356001600160401b03811115612f2a57612f2a600080fd5b612f3684828501612b01565b82525060208201356001600160401b03811115612f5557612f55600080fd5b612f6184828501612b01565b6020830152506040612f7584828501612ee5565b9082015292915050565b600060208284031215612f9457612f94600080fd5b81356001600160401b03811115612fad57612fad600080fd5b61295184828501612ef0565b6000612fc7612ace84612d43565b83815290506020808201908402830185811115612fe657612fe6600080fd5b835b81811015612dd15780356001600160401b0381111561300957613009600080fd5b85016130158882612b01565b84525060209283019201612fe8565b600082601f83011261303857613038600080fd5b8135612951848260208601612fb9565b6000806040838503121561305e5761305e600080fd5b82356001600160401b0381111561307757613077600080fd5b61308385828601612ddb565b92505060208301356001600160401b038111156130a2576130a2600080fd5b612bbc85828601613024565b60005b838110156130c95781810151838201526020016130b1565b50506000910152565b60006130dc825190565b8084526020840193506130f38185602086016130ae565b601f01601f19169290920192915050565b634e487b7160e01b600052602160045260246000fd5b600681106106fb576106fb613104565b80612a858161311a565b60006106c58261312a565b612a1881613134565b805160608084526000919084019061316082826130d2565b9150506020830151848203602086015261317a82826130d2565b9150506040830151612af9604086018261313f565b602080825281016111408184613148565b6000602082840312156131b5576131b5600080fd5b60006129518484612b65565b600080604083850312156131d7576131d7600080fd5b82356001600160401b038111156131f0576131f0600080fd5b6131fc85828601612ddb565b92505060208301356001600160401b0381111561321b5761321b600080fd5b612bbc85828601612ddb565b6020808252810161114081846130d2565b6000613246612ace84612d43565b8381529050602080820190840283018581111561326557613265600080fd5b835b81811015612dd1576132798782612be0565b835260209283019201613267565b600082601f83011261329b5761329b600080fd5b8135612951848260208601613238565b600080604083850312156132c1576132c1600080fd5b82356001600160401b038111156132da576132da600080fd5b6132e685828601612ddb565b92505060208301356001600160401b0381111561330557613305600080fd5b612bbc85828601613287565b600061331f612ace84612d43565b8381529050602080820190840283018581111561333e5761333e600080fd5b835b81811015612dd15780356001600160401b0381111561336157613361600080fd5b850161336d8882612ef0565b84525060209283019201613340565b600082601f83011261339057613390600080fd5b8135612951848260208601613311565b6000602082840312156133b5576133b5600080fd5b81356001600160401b038111156133ce576133ce600080fd5b6129518482850161337c565b60006106c56001600160a01b0383166133f1565b90565b6001600160a01b031690565b60006106c5826133da565b60006106c5826133fd565b612a1881613408565b602081016106c58284613413565b8015156129dd565b80356106c58161342a565b6000806040838503121561345357613453600080fd5b82356001600160401b0381111561346c5761346c600080fd5b61347885828601612b01565b9250506020612bbc85828601613432565b60006111408383613148565b60200190565b60006134a5825190565b808452602084019350836020820285016134bf8560200190565b60005b848110156134f357838303885281516134db8482613489565b935050602082016020989098019791506001016134c2565b50909695505050505050565b60208082528101611140818461349b565b6000806040838503121561352657613526600080fd5b82356001600160401b0381111561353f5761353f600080fd5b61354b85828601612b01565b9250506020612bbc85828601612be0565b600061114083836130d2565b6000613572825190565b8084526020840193508360208202850161358c8560200190565b60005b848110156134f357838303885281516135a8848261355c565b9350506020820160209890980197915060010161358f565b80516060808452600091908401906135d882826130d2565b915050602083015184820360208601526135f282826130d2565b9150506040830151848203604086015261360c8282613568565b95945050505050565b600061114083836135c0565b600061362b825190565b808452602084019350836020820285016136458560200190565b60005b848110156134f357838303885281516136618482613615565b93505060208201602098909801979150600101613648565b602080825281016111408184613621565b60006020828403121561369f5761369f600080fd5b81356001600160401b038111156136b8576136b8600080fd5b61295184828501612ddb565b60006136d2612ace84612d43565b838152905060208082019084028301858111156136f1576136f1600080fd5b835b81811015612dd1576137058782613432565b8352602092830192016136f3565b600082601f83011261372757613727600080fd5b81356129518482602086016136c4565b6000806040838503121561374d5761374d600080fd5b82356001600160401b0381111561376657613766600080fd5b61377285828601612ddb565b92505060208301356001600160401b0381111561379157613791600080fd5b612bbc85828601613713565b602e8152602081017f496e697469616c697a61626c653a20636f6e747261637420697320616c72656181526d191e481a5b9a5d1a585b1a5e995960921b602082015290505b60400190565b602080825281016106c58161379d565b634e487b7160e01b600052602260045260246000fd5b60028104600182168061382257607f821691505b602082108103613834576138346137f8565b50919050565b60006106c56133ee8381565b61384f8361383a565b815460001960089490940293841b1916921b91909117905550565b6000610775818484613846565b818110156107375761388a60008261386a565b600101613877565b601f821115610775576000818152602090206020601f850104810160208510156138b95750805b6138cb6020601f860104830182613877565b5050505050565b81516001600160401b038111156138eb576138eb612a2c565b6138f5825461380e565b613900828285613892565b506020601f821160018114613935576000831561391d5750848201515b600019600885021c19811660028502178555506138cb565b600084815260208120601f198516915b828110156139655787850151825560209485019460019092019101613945565b50848210156139825783870151600019601f87166008021c191681555b50505050600202600101905550565b600060ff82166106c5565b612a1881613991565b602081016106c5828461399c565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b19195b1959d85d1958d85b1b60a21b602082015290506137e2565b602080825281016106c5816139b3565b602c8152602081017f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682081526b6163746976652070726f787960a01b602082015290506137e2565b602080825281016106c581613a0a565b60388152602081017f555550535570677261646561626c653a206d757374206e6f742062652063616c81527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000602082015290506137e2565b602080825281016106c581613a61565b60448152602081017f436f6d6d756e697479506172616d65746572734d6f64756c653a20706172616d81527f657465724e616d657320616e642076616c756573206c656e677468206d69736d6020820152630c2e8c6d60e31b604082015290505b60600190565b602080825281016106c581613ac9565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201613b7e57613b7e613b56565b5060010190565b80516106c581612bd7565b600060208284031215613ba557613ba5600080fd5b60006129518484613b85565b60008154613bbe8161380e565b808552602085019450600182168015613bde5760018114613bf457613c22565b60ff198316865260208215150286019350613c22565b60008581526020902060005b83811015613c1c57815488820152600190910190602001613c00565b87019450505b50505092915050565b60608101613c398286612c90565b8181036020830152613c4b8185613bb1565b9050818103604083015261360c81846130d2565b80516106c58161342a565b600060208284031215613c7f57613c7f600080fd5b60006129518484613c5f565b604d8152602081017f5b5147444b2d3030353030305d2d5468652073656e646572206973206e6f742081527f616c6c6f77656420746f20706572666f726d207468