UNPKG

@q-dev/gdk-sdk

Version:

Typescript Library to interact with GDK Contracts

1,480 lines 84.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PermissionManager__factory = void 0; /* Autogenerated file. Do not edit manually. */ /* tslint:disable */ /* eslint-disable */ const ethers_1 = require("ethers"); const _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: "who", type: "address", }, { indexed: false, internalType: "string[]", name: "groupsToAddTo", type: "string[]", }, ], name: "AddedToGroups", type: "event", }, { 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: "string", name: "groupTo", type: "string", }, { indexed: false, internalType: "string[]", name: "rolesToGrant", type: "string[]", }, ], name: "GrantedGroupRoles", 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: "address", name: "target", type: "address", }, { indexed: false, internalType: "address", name: "linkedMemberStorage", type: "address", }, ], name: "LinkedStorageToVetoGroup", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "who", type: "address", }, { indexed: false, internalType: "string[]", name: "groupsToRemoveFrom", type: "string[]", }, ], name: "RemovedFromGroups", 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: "string", name: "groupFrom", type: "string", }, { indexed: false, internalType: "string[]", name: "rolesToRevoke", type: "string[]", }, ], name: "RevokedGroupRoles", 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", }, { anonymous: false, inputs: [ { indexed: false, internalType: "bool", name: "defaultGroupEnabled", type: "bool", }, ], name: "ToggledDefaultGroup", type: "event", }, { anonymous: false, inputs: [ { indexed: true, internalType: "address", name: "implementation", type: "address", }, ], name: "Upgraded", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "target", type: "address", }, { indexed: false, internalType: "address", name: "linkedMemberStorage", type: "address", }, ], name: "VetoGroupAdded", type: "event", }, { anonymous: false, inputs: [ { indexed: false, internalType: "address", name: "target", type: "address", }, ], name: "VetoGroupRemoved", 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_ROLE", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "PERMISSION_MANAGER_RESOURCE", 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: "contract DAORegistry", name: "daoRegistry_", type: "address", }, { internalType: "address", name: "master_", type: "address", }, { internalType: "string", name: "resource_", type: "string", }, ], name: "__PermissionManager_init", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "member_", type: "address", }, { internalType: "string[]", name: "groups_", type: "string[]", }, ], name: "addMemberToGroup", 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: "address", name: "who_", type: "address", }, { internalType: "string[]", name: "groupsToAddTo_", type: "string[]", }, ], name: "addUserToGroups", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage_", type: "address", }, ], name: "addVetoGroup", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "address", name: "target", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage", type: "address", }, ], internalType: "struct IPermissionManager.VetoGroup[]", name: "vetoGroups_", type: "tuple[]", }, ], name: "addVetoGroups", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "account_", type: "address", }, { internalType: "string", name: "permission_", type: "string", }, ], name: "checkPermission", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "string", name: "moduleName_", type: "string", }, ], name: "confExternalModule", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "string", name: "moduleName", type: "string", }, { internalType: "address", name: "moduleAddress", type: "address", }, { internalType: "string", name: "connectorRoleName", type: "string", }, { internalType: "enum ModuleAdditionType", name: "moduleType", type: "uint8", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "constitutionParameters", type: "tuple[]", }, { internalType: "string", name: "votingName", type: "string", }, { components: [ { components: [ { internalType: "string", name: "votingSituationName", type: "string", }, { components: [ { internalType: "uint256", name: "votingPeriod", type: "uint256", }, { internalType: "uint256", name: "vetoPeriod", type: "uint256", }, { internalType: "uint256", name: "proposalExecutionPeriod", type: "uint256", }, { internalType: "uint256", name: "requiredQuorum", type: "uint256", }, { internalType: "uint256", name: "requiredMajority", type: "uint256", }, { internalType: "uint256", name: "requiredVetoQuorum", type: "uint256", }, { internalType: "uint256", name: "votingType", type: "uint256", }, { internalType: "string", name: "votingTarget", type: "string", }, { internalType: "uint256", name: "votingMinAmount", type: "uint256", }, ], internalType: "struct IDAOVoting.DAOVotingValues", name: "votingValues", type: "tuple", }, ], internalType: "struct IDAOVoting.InitialSituation", name: "initialSituation", type: "tuple", }, { internalType: "string", name: "externalLink", type: "string", }, ], internalType: "struct IDAOVoting.ExtendedSituation", name: "situation", type: "tuple", }, { internalType: "address", name: "vetoGroupSource", type: "address", }, { internalType: "bytes", name: "initCallData", type: "bytes", }, { internalType: "bytes32", name: "salt", type: "bytes32", }, ], internalType: "struct DAOModuleContractorParameters", name: "daoModuleParams_", type: "tuple", }, ], name: "deployModuleViaFactory", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { components: [ { internalType: "string", name: "panelName", type: "string", }, { internalType: "address", name: "votingToken", type: "address", }, { components: [ { components: [ { internalType: "string", name: "votingSituationName", type: "string", }, { components: [ { internalType: "uint256", name: "votingPeriod", type: "uint256", }, { internalType: "uint256", name: "vetoPeriod", type: "uint256", }, { internalType: "uint256", name: "proposalExecutionPeriod", type: "uint256", }, { internalType: "uint256", name: "requiredQuorum", type: "uint256", }, { internalType: "uint256", name: "requiredMajority", type: "uint256", }, { internalType: "uint256", name: "requiredVetoQuorum", type: "uint256", }, { internalType: "uint256", name: "votingType", type: "uint256", }, { internalType: "string", name: "votingTarget", type: "string", }, { internalType: "uint256", name: "votingMinAmount", type: "uint256", }, ], internalType: "struct IDAOVoting.DAOVotingValues", name: "votingValues", type: "tuple", }, ], internalType: "struct IDAOVoting.InitialSituation", name: "initialSituation", type: "tuple", }, { internalType: "string", name: "externalLink", type: "string", }, ], internalType: "struct IDAOVoting.ExtendedSituation[]", name: "situations", type: "tuple[]", }, { components: [ { internalType: "string", name: "name", type: "string", }, { internalType: "bytes", name: "value", type: "bytes", }, { internalType: "enum ParameterType", name: "solidityType", type: "uint8", }, ], internalType: "struct Parameter[]", name: "initialParameters", type: "tuple[]", }, { internalType: "address[]", name: "initialMembers", type: "address[]", }, ], internalType: "struct DAOPanelConstructorParameters", name: "daoPanelParams_", type: "tuple", }, ], name: "deployPanelViaFactory", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "getDAORegistry", outputs: [ { internalType: "contract DAORegistry", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getDefaultGroupEnabled", outputs: [ { internalType: "bool", name: "defaultGroupEnabled_", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getExistingVetoGroupTargets", outputs: [ { internalType: "address[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "string", name: "group_", type: "string", }, ], name: "getGroupRoles", outputs: [ { internalType: "string[]", name: "roles_", type: "string[]", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "getResource", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", 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: "getUserGroups", outputs: [ { internalType: "string[]", name: "groups_", type: "string[]", }, ], 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: "target_", type: "address", }, ], name: "getVetoGroupInfo", outputs: [ { components: [ { internalType: "address", name: "target", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage", type: "address", }, ], internalType: "struct IPermissionManager.VetoGroup", name: "", type: "tuple", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, ], name: "getVetoGroupMembers", outputs: [ { internalType: "address[]", name: "", type: "address[]", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, ], name: "getVetoMembersCount", outputs: [ { internalType: "uint256", name: "", type: "uint256", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "string", name: "groupTo_", type: "string", }, { internalType: "string[]", name: "rolesToGrant_", type: "string[]", }, ], name: "grantGroupRoles", outputs: [], stateMutability: "nonpayable", 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: "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: [], name: "implementation", outputs: [ { internalType: "address", name: "", type: "address", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, { internalType: "address", name: "member_", type: "address", }, ], name: "isUserInVetoGroup", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, ], name: "isVetoGroupExists", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, { internalType: "contract DAOMemberStorage", name: "linkedMemberStorage_", type: "address", }, ], name: "linkStorageToVetoGroup", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes[]", name: "data", type: "bytes[]", }, ], name: "multicall", outputs: [ { internalType: "bytes[]", name: "results", type: "bytes[]", }, ], stateMutability: "nonpayable", type: "function", }, { inputs: [], name: "proxiableUUID", outputs: [ { internalType: "bytes32", name: "", type: "bytes32", }, ], stateMutability: "view", type: "function", }, { inputs: [ { internalType: "address", name: "member_", type: "address", }, { internalType: "string[]", name: "groups_", type: "string[]", }, ], name: "removeMemberFromGroup", 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: "permissionsToRemove_", type: "tuple[]", }, { internalType: "bool", name: "allowed_", type: "bool", }, ], name: "removePermissionsFromRole", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "who_", type: "address", }, { internalType: "string[]", name: "groupsToRemoveFrom_", type: "string[]", }, ], name: "removeUserFromGroups", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "address", name: "target_", type: "address", }, ], name: "removeVetoGroup", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "string", name: "groupFrom_", type: "string", }, { internalType: "string[]", name: "rolesToRevoke_", type: "string[]", }, ], name: "revokeGroupRoles", 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", }, { inputs: [ { internalType: "contract DAORegistry", name: "daoRegistry_", type: "address", }, ], name: "setDAORegistry", outputs: [], stateMutability: "nonpayable", type: "function", }, { inputs: [ { internalType: "bytes4", name: "interfaceId", type: "bytes4", }, ], name: "supportsInterface", outputs: [ { internalType: "bool", name: "", type: "bool", }, ], stateMutability: "view", type: "function", }, { inputs: [], name: "toggleDefaultGroup", outputs: [], stateMutability: "nonpayable", 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", }, { inputs: [], name: "version", outputs: [ { internalType: "string", name: "", type: "string", }, ], stateMutability: "view", type: "function", }, ]; const _bytecode = "0x60a080604052346100315730608052615080908161003782396080518181816113d9015281816118db01526119a50152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80622f5bc01461033c57806301ffc9a71461033757806303bc0b3e146103325780630423b79f1461032d57806306a36aee146103285780630b441407146103235780630c69c28a1461031e5780630ead6f1e146103195780630fe908ec14610314578063141c98951461030f57806315ddcefc1461030a57806321a9ec211461030557806330cae1681461030057806331dbd475146102835780633659cfe6146102fb57806337ff630d146102f65780633da04e4a146102f15780634a9e12c51461024c5780634e63adc1146102ec5780634f0d84e3146102e75780634f1ef286146102e2578063524e62b2146102dd57806352d1902d146102d857806354fd4d50146102d35780635c60da1b146102ce5780636cb6f26c146102c9578063733352b3146102c457806375e025e7146102bf5780637951c6da146102ba5780637cb9cdfa146102b557806381c5492b146102b05780638412ccd8146102ab5780638e5cc2b7146102a657806396b5f936146102a15780639a9aa8d41461029c578063a4fc6c2314610297578063ac9650d814610292578063b3e657fb1461028d578063b832a5a214610288578063bb65dc8314610283578063d41de1271461027e578063d8ad4e1c14610279578063dc22486314610274578063e136fea51461026f578063e876a9541461026a578063ec183fc614610265578063ee2f6ce514610260578063f1c7d41b1461025b578063fc981a3614610256578063fcddfd4a146102515763ff846fb91461024c57600080fd5b6116fe565b612640565b612618565b6125bf565b612589565b6123f0565b6122d2565b6122ad565b612291565b61221e565b6121c0565b611393565b6121a4565b612166565b6120df565b612059565b612030565b611f74565b611f5b565b611f32565b611ea3565b611d55565b611cf3565b611bcf565b611bb3565b611ad3565b611a9d565b611a57565b611992565b611963565b611897565b611869565b611727565b6116a5565b611607565b6113af565b6110e0565b610f6c565b610f2e565b610e9d565b610e7b565b610d94565b610ca1565b61099c565b610908565b610871565b6107e9565b610726565b6105f5565b634e487b7160e01b600052604160045260246000fd5b604081019081106001600160401b0382111761037257604052565b610341565b606081019081106001600160401b0382111761037257604052565b6001600160401b03811161037257604052565b90601f801991011681019081106001600160401b0382111761037257604052565b6040519061012082018281106001600160401b0382111761037257604052565b6040519060a082018281106001600160401b0382111761037257604052565b6040519061014082018281106001600160401b0382111761037257604052565b6001600160401b03811161037257601f01601f191660200190565b81601f820112156104875780359061045782610425565b9261046560405194856103a5565b8284526020838301011161048757816000926020809301838601378301015290565b600080fd5b602060031982011261048757600435906001600160401b038211610487576104b691600401610440565b90565b60005b8381106104cc5750506000910152565b81810151838201526020016104bc565b906020916104f5815180928185528580860191016104b9565b601f01601f1916010190565b9080825190818152602080910160059082808560051b8701019601946000926000935b86851061053657505050505050505090565b909192939495969786601f19808684030187528a518261055f60408351908088528701906104dc565b91015193838183039101528351808252838201918480838a1b83010196019387905b8382106105a457505050505050806001929a019501950193969594929190610524565b919395806105bf898588600196989a9c03018a528a516104dc565b9801960192018c9594929391610581565b90916105e76104b693604084526040840190610501565b916020818403910152610501565b34610487576106033661048c565b61061f61060f82612669565b6001600052602052604060002090565b61063a61062b83612669565b60008052602052604060002090565b9061065361062b61064d61060f8661268f565b9461268f565b9061065e8154612727565b916106698454612727565b9060005b84518110156106c1578061068360019286613d4b565b61068d828861279d565b51526106ac6106a7896106a0848a61279d565b5151612701565b613d58565b60206106b8838961279d565b5101520161066d565b5091509260005b845181101561071057806106de60019284613d4b565b6106e8828861279d565b51526106fb6106a7856106a0848a61279d565b6020610707838961279d565b510152016106c8565b505050610722604051928392836105d0565b0390f35b346104875760203660031901126104875760043563ffffffff60e01b81168091036104875761072290634efd6d0960e01b81149081156107bc575b81156107ab575b811561079a575b8115610789575b5060405190151581529081906020820190565b6301ffc9a760e01b14905038610776565b6363c8929f60e01b8114915061076f565b630cbef19360e41b81149150610768565b63139c0b2360e31b81149150610761565b600091031261048757565b9060206104b69281815201906104dc565b346104875760003660031901126104875761072260405161080981610357565b60048152631491505160e21b60208201526040519182916020835260208301906104dc565b6001600160a01b0381160361048757565b359061084a8261082e565b565b6040906003190112610487576004356108648161082e565b906024356104b68161082e565b34610487576108986108823661084c565b9061089361088e6127b6565b613dad565b613ea8565b005b90808251908181526020809101926020808460051b8301019501936000915b8483106108c95750505050505090565b90919293949584806108e7600193601f198682030187528a516104dc565b98019301930191949392906108b9565b9060206104b692818152019061089a565b3461048757602080600319360112610487576004356109268161082e565b6001600160a01b031660009081526003602052604090208054610948816109bc565b9161095660405193846103a5565b81835260208301906000526020600020936000915b838310610980576040518061072287826108f7565b600182819261098e896112f0565b81520196019201919461096b565b346104875760003660031901126104875760206004541515604051908152f35b6001600160401b0381116103725760051b60200190565b91909160408082850312610487578051916109ed83610357565b829481356001600160401b039081811161048757830193808584031261048757805190610a1982610357565b85358381116104875784610a2e918801610440565b8252602095868101359084821161048757016101208186031261048757610a536103c6565b918135835287820135888401528082013590830152606081013560608301526080810135608083015260a081013560a083015260c081013560c083015260e08101358481116104875785610aa8918301610440565b60e083015261010080910135908201528582015285528383013590811161048757610ad39201610440565b910152565b81601f8201121561048757803591602091610af2846109bc565b93610b0060405195866103a5565b808552838086019160051b8301019280841161048757848301915b848310610b2b5750505050505090565b82356001600160401b038111610487578691610b4c848480948901016109d3565b815201920191610b1b565b9080601f8301121561048757813591602091610b72846109bc565b93604091610b8360405196876103a5565b818652848087019260051b8501019381851161048757858101925b858410610baf575050505050505090565b6001600160401b0390843582811161048757830160609081601f19828803011261048757875193610bdf85610377565b8a82013581811161048757878c610bf892850101610440565b85528882013590811161048757868b610c1392840101610440565b8a850152013590600682101561048757828993928885940152815201930192610b9e565b9080601f83011215610487576020908235610c51816109bc565b93610c5f60405195866103a5565b81855260208086019260051b82010192831161048757602001905b828210610c88575050505090565b8380918335610c968161082e565b815201910190610c7a565b3461048757600319602036820112610487576004908135906001600160401b03908183116104875760a090833603011261048757610cdd6103e6565b918084013582811161048757610cf890853691840101610440565b8352610d066024820161083f565b6020840152604481013582811161048757610d2690853691840101610ad8565b6040840152606481013582811161048757610d4690853691840101610b57565b606084015260848101359182116104875761089893610d689236920101610c37565b6080820152612802565b60405190610d7f82610357565b600682526555504441544560d01b6020830152565b3461048757600036600319011261048757610722610db0610d72565b6040519182916020835260208301906104dc565b81601f8201121561048757803591602091610dde846109bc565b93610dec60405195866103a5565b808552838086019160051b8301019280841161048757848301915b848310610e175750505050505090565b82356001600160401b038111610487578691610e3884848094890101610440565b815201920191610e07565b90604060031983011261048757600435610e5c8161082e565b91602435906001600160401b038211610487576104b691600401610dc4565b3461048757610898610e8c36610e43565b90610e9861088e612b59565b61422b565b34610487576020366003190112610487576000600435610ebc