{
  "_format": "hh-sol-artifact-1",
  "contractName": "ERC1155FullProxied",
  "sourceName": "contracts/token/ERC1155/preset/proxied/ERC1155FullProxied.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "forwarderRegistry",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "ERC1155BalanceOfAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155BalanceOverflow",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155MintToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "ERC1155NonApproved",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "ERC1155SafeBatchTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "ERC1155SafeTransferRejected",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "ERC1155SelfApprovalForAll",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC1155TransferToAddressZero",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "ERC2981IncorrectRoyaltyPercentage",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "ERC2981IncorrectRoyaltyReceiver",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "FailedCall",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "IllegalInterfaceId",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InconsistentArrayLengths",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "tokenContract",
          "type": "address"
        }
      ],
      "name": "IncorrectTokenContractType",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "currentPhase",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "newPhase",
          "type": "uint256"
        }
      ],
      "name": "InitializationPhaseAlreadyReached",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "needed",
          "type": "uint256"
        }
      ],
      "name": "InsufficientBalance",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotContractOwner",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotMetadataResolver",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NotRoleHolder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "OperatorNotAllowed",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        }
      ],
      "name": "SafeERC20FailedOperation",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleGranted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "RoleRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MINTER_ROLE",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ROYALTY_FEE_DENOMINATOR",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "owners",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "balances",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "tokenURIs",
          "type": "string[]"
        }
      ],
      "name": "batchSetTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "forwarderRegistry",
      "outputs": [
        {
          "internalType": "contract IForwarderRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "grantRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "hasRole",
      "outputs": [
        {
          "internalType": "bool",
          "name": "hasRole_",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        },
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        },
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "metadataResolver",
          "type": "address"
        },
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "filterRegistry",
          "type": "address"
        }
      ],
      "name": "init",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        }
      ],
      "name": "isApprovedForAll",
      "outputs": [
        {
          "internalType": "bool",
          "name": "approvedForAll",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "forwarder",
          "type": "address"
        }
      ],
      "name": "isTrustedForwarder",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "metadataResolver",
      "outputs": [
        {
          "internalType": "contract ITokenMetadataResolver",
          "name": "tokenMetadataResolver",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "name",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenName",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "operatorFilterRegistry",
      "outputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC20[]",
          "name": "tokens",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC20s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "contract IERC721[]",
          "name": "contracts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "name": "recoverERC721s",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address payable[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "recoverETH",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        }
      ],
      "name": "renounceRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "role",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "revokeRole",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "salePrice",
          "type": "uint256"
        }
      ],
      "name": "royaltyInfo",
      "outputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "royaltyAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "recipients",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeDeliver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "percentage",
          "type": "uint256"
        }
      ],
      "name": "setRoyaltyPercentage",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "receiver",
          "type": "address"
        }
      ],
      "name": "setRoyaltyReceiver",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "string",
          "name": "tokenURI",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "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": "symbol",
      "outputs": [
        {
          "internalType": "string",
          "name": "tokenSymbol",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IOperatorFilterRegistry",
          "name": "registry",
          "type": "address"
        }
      ],
      "name": "updateOperatorFilterRegistry",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "metadataURI",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60a034607457601f6140c938819003918201601f19168301916001600160401b03831184841017607957808492602094604052833981010312607457516001600160a01b038116810360745760805260405161403990816100908239608051818181612131015281816135410152613abf0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b60003560e01c8062fdd58e1461312257806301ffc9a71461309b57806306fdde03146130405780630d6a5bbb14612dde5780630e07f8541461254d5780630e89341c146123f6578063114ba8ee1461230f578063162094c4146122485780632a55205a146121555780632b4c9f16146120e65780632eb2c2d614611ca75780632f2ff15d14611b1b5780634e1273f414611a3d578063572b6c05146119f25780635cfa92971461192857806361ba27da1461180c5780636706467b146116a457806373c8a958146114f45780638bb9c5bf146113855780638da5cb5b146113145780638dc251e3146111e757806391d148541461114f57806395d89b41146110dc578063a0c76f621461106b578063a22cb46514610f0b578063b0ccc31e14610e9a578063c3666c3614610c5d578063d539139314610c04578063d547741f14610a7b578063e1a8bf2c14610a3f578063e8ab9ccc14610833578063e985e9c51461077f578063f242432a1461044d578063f2fde38b146103595763f7ba94bd1461019c57600080fd5b346102fd576101aa3661329b565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806101eb613aa8565b925416911690810361032c57508181036103025760005b81811061020b57005b610216818387613589565b3573ffffffffffffffffffffffffffffffffffffffff81168091036102fd57610240828587613589565b35908147106102cb57600080809381935af13d156102c3573d9061026382613473565b9161027160405193846133ce565b82523d6000602084013e5b1561028a5750600101610202565b80511561029957602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b60609061027c565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610390613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103ba613aa8565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361032c575073ffffffffffffffffffffffffffffffffffffffff16918282036103fe57005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346102fd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610484613190565b61048c6131b3565b604435906064359260843567ffffffffffffffff81116102fd576104b490369060040161326d565b926104bd613aa8565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff82160361076f575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612861561074557610560828783613dbc565b156106fb5773ffffffffffffffffffffffffffffffffffffffff916105898a8a878a8796613e3c565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105c657005b6020926105d49136916134ad565b9261062a60405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a48301906131f9565b03816000865af19081156106ef577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106c0575b50160361068d57005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106e2915060203d6020116106e8575b6106da81836133ce565b810190613c99565b86610684565b503d6106d0565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61077891613cd1565b8785610514565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576107b6613190565b73ffffffffffffffffffffffffffffffffffffffff6107d36131b3565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760043567ffffffffffffffff81116102fd5761088290369060040161323c565b60243567ffffffffffffffff81116102fd576108a290369060040161323c565b929060443567ffffffffffffffff81116102fd576108c490369060040161323c565b93909160643567ffffffffffffffff81116102fd576108e790369060040161326d565b9390916108f2613aa8565b9761091d897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612946109488161340f565b97610956604051998a6133ce565b818952602089019160051b8101903682116102fd57915b818310610a12575050509161098b6109939261099b95943691613427565b973691613427565b9336916134ad565b9183519480518614801590610a07575b6103025760005b8681106109bb57005b80610a018673ffffffffffffffffffffffffffffffffffffffff6109e16001958b613873565b51166109ed8487613873565b516109f88589613873565b51918d8a613927565b016109b2565b5081518614156109ab565b823573ffffffffffffffffffffffffffffffffffffffff811681036102fd5781526020928301920161096d565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576020604051620186a08152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57600435610ab56131b3565b610abd613aa8565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361032c57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b6f57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346102fd57610c6b3661333f565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cb0613aa8565b925416911690810361032c5750808214801590610e90575b6103025760005b828110610cd857005b73ffffffffffffffffffffffffffffffffffffffff610d00610cfb83858a613589565b613906565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156106ef57600091610e62575b5015610e35575073ffffffffffffffffffffffffffffffffffffffff610d8f610cfb83858a613589565b1690610d9f610cfb828689613589565b91610dab82878b613589565b3592813b156102fd57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156106ef57600192610e24575b5001610ccf565b6000610e2f916133ce565b88610e1d565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e83915060203d8111610e89575b610e7b81836133ce565b810190613a90565b89610d65565b503d610e71565b5082821415610cc8565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610f42613190565b60243590811515918281036102fd5761103c575b73ffffffffffffffffffffffffffffffffffffffff80610f74613aa8565b1691169181831461100e5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611066817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cd1565b610f56565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761114b6111377f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56136ef565b6040519182916020835260208301906131f9565b0390f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576111866131b3565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761121e613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061125d613aa8565b925416911690810361032c57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156112ea5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113e0613aa8565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114ac5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610bff565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346102fd576115023661333f565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611545613aa8565b925416911690810361032c575080841480159061169a575b6103025760005b84811061156d57005b611578818388613589565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036102fd5760006020916115ab610cfb868b8e613589565b826116156116416115bd898d8d613589565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826133ce565b51925af1156106ef576000513d6116915750803b155b6116645750600101611564565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611657565b508284141561155d565b346102fd576116b23661329b565b8083949293036103025773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117de57916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b85811061172e57005b848110156117af578060051b820135838112156102fd5782019081359167ffffffffffffffff83116102fd5760200182360381136102fd577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b600193611795848b8a613589565b35926117a6604051928392836134e4565b0390a201611725565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061187d613aa8565b925416911690810361032c57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a081116118fb57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761195f613190565b6064359067ffffffffffffffff82116102fd576119836119f092369060040161326d565b6119e261198e613aa8565b926119b9847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129236916134ad565b926044359260243592613927565b005b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576020611a33611a2e613190565b61352a565b6040519015158152f35b346102fd57611a4b3661329b565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361030257611a818561340f565b94611a8f60405196876133ce565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611abc8261340f565b0136602088013760005b818110611ae3576040516020808252819061114b9082018a61330b565b80611b0a611af7610cfb600194868b613589565b611b02838789613589565b359088613599565b611b14828a613873565b5201611ac6565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57600435611b556131b3565b611b5d613aa8565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361032c57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611c1057005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610bff565b346102fd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57611cde613190565b611ce66131b3565b60443567ffffffffffffffff81116102fd57611d0690369060040161323c565b929060643567ffffffffffffffff81116102fd57611d2890369060040161323c565b9360843567ffffffffffffffff81116102fd57611d4990369060040161326d565b939091611d54613aa8565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff8216036120d6575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561074557898b0361030257611dfe828483613dbc565b1561208c5760005b8b811061205d575050928992888a8897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb73ffffffffffffffffffffffffffffffffffffffff809b99169a8b9216988993611e8260405192839260408452611e748d60408601908d6138c9565b9184830360208601526138c9565b0390a43b611e8c57005b602094611ea1611ea992611eb1953691613427565b993691613427565b9536916134ad565b92611f6160405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a06044840152611f31611f0160a485018b61330b565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8582030160648601528861330b565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160848501526131f9565b03816000875af19081156106ef577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff000000000000000000000000000000000000000000000000000000009160009161203e575b501603611fc457005b61203a9061200a6040519485947fc287817e000000000000000000000000000000000000000000000000000000008652600486015260606024860152606485019061330b565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc84830301604485015261330b565b0390fd5b612057915060203d6020116106e8576106da81836133ce565b86611fbb565b806120868c61207c8f94612074816001978d613589565b35928d613589565b3590888887613e3c565b01611e06565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b6120df91613cd1565b8987611dab565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612240575b1561220a57505061114b60005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61114b91620186a082101561222d5761222790620186a092613887565b046121da565b620186a061223b9204613887565b6121da565b5081156121cd565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760243567ffffffffffffffff81116102fd5761229790369060040161326d565b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117de5761230a7f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160043595836134e4565b0390a2005b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57612346613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80612385613aa8565b925416911690810361032c575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156106ef576000916124c5575b6040516020808252819061114b908201856131f9565b3d8083833e6124d481836133ce565b8101906020818303126125455780519067ffffffffffffffff8211612549570181601f820112156125455780519261250b84613473565b9261251960405194856133ce565b84845260208584010111612542575061114b9261253c91602080850191016131d6565b906124af565b80fd5b8280fd5b8380fd5b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760043567ffffffffffffffff81116102fd5761259c90369060040161326d565b60243567ffffffffffffffff81116102fd576125bc90369060040161326d565b6044939193359173ffffffffffffffffffffffffffffffffffffffff831683036102fd576064359373ffffffffffffffffffffffffffffffffffffffff851685036102fd577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61262a613aa8565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612a9d575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612d89575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612a9d575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612c5a578190612889845461369c565b601f8111612d36575b50600090601f8311600114612c9457600092612c89575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612c5a576129147f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a55461369c565b601f8111612bd6575b506000601f8211600114612ada5781929394600092612acf575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612a9d575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612937565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612bbe575083600195969710612b86575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612989565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612b59565b90926020600181928686013581550194019101612b45565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612c50575b601f0160051c01905b818110612c44575061291d565b60008155600101612c37565b9091508190612c2e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806128a9565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612d1e5750908460019594939210612ce6575b505050811b0190556128db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612cd9565b91936020600181928787013581550195019201612cc3565b909150836000526020600020601f840160051c81019160208510612d7f575b90601f859493920160051c01905b818110612d705750612892565b60008155849350600101612d63565b9091508190612d55565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612697565b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57612e15613190565b60243567ffffffffffffffff81116102fd57612e3590369060040161323c565b909160443567ffffffffffffffff81116102fd57612e5790369060040161323c565b93909160643567ffffffffffffffff81116102fd57612eeb93612e81612ef392369060040161326d565b959091612ee3612e8f613aa8565b96612eba887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612993691613427565b983691613427565b9436916134ad565b9173ffffffffffffffffffffffffffffffffffffffff821694851561301657865190855182036103025760005b828110612fec5750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb6040516040815280612f8d612f7f8d604084019061330b565b82810360208401528b61330b565b0390a43b612f9757005b611f619160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a06044840152611f31611f0160a485018b61330b565b80613010612ffc6001938c613873565b51613007838b613873565b51908886613bbc565b01612f20565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761114b6111377f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46136ef565b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036102fd57611a336020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613612565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602061318861315e613190565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612613599565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102fd57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102fd57565b60005b8381106131e95750506000910152565b81810151838201526020016131d9565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093613235815180928187528780880191016131d6565b0116010190565b9181601f840112156102fd5782359167ffffffffffffffff83116102fd576020808501948460051b0101116102fd57565b9181601f840112156102fd5782359167ffffffffffffffff83116102fd57602083818601950101116102fd57565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126102fd5760043567ffffffffffffffff81116102fd57816132e49160040161323c565b929092916024359067ffffffffffffffff82116102fd576133079160040161323c565b9091565b906020808351928381520192019060005b8181106133295750505090565b825184526020938401939092019160010161331c565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126102fd5760043567ffffffffffffffff81116102fd57816133889160040161323c565b9290929160243567ffffffffffffffff81116102fd57816133ab9160040161323c565b929092916044359067ffffffffffffffff82116102fd576133079160040161323c565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612c5a57604052565b67ffffffffffffffff8111612c5a5760051b60200190565b9291906134338161340f565b9361344160405195866133ce565b602085838152019160051b81019283116102fd57905b82821061346357505050565b8135815260209182019101613457565b67ffffffffffffffff8111612c5a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926134b982613473565b916134c760405193846133ce565b8294818452818301116102fd578281602093846000960137010152565b90601f836040947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093602086528160208701528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135825773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156117af5760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff8316156135e85760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613582577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136955760005260205260ff6040600020541690565b5050600190565b90600182811c921680156136e5575b60208310146136b657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916136ab565b90604051918260008254926137038461369c565b8084529360018116908115613771575060011461372a575b50613728925003836133ce565b565b90506000929192526020600020906000915b818310613755575050906020613728928201013861371b565b602091935080600191548385890101520191019091849261373c565b602093506137289592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861371b565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff604060002054161561380b5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156117af5760209160051b010190565b8181029291811591840414171561389a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116102fd5760209260051b809284830137010190565b3573ffffffffffffffffffffffffffffffffffffffff811681036102fd5790565b94919092939473ffffffffffffffffffffffffffffffffffffffff82169384156130165761396c87878573ffffffffffffffffffffffffffffffffffffffff95613bbc565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b6139ae575b5050505050565b613a099160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a48301906131f9565b03816000865af19081156106ef577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613a71575b50160361068d5780806139a7565b613a8a915060203d6020116106e8576106da81836133ce565b38613a63565b908160209103126102fd575180151581036102fd5790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613bad573233148015613bb2575b613bad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613b33575b50613b3057503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156106ef57600091613b8e575b5038613b26565b613ba7915060203d602011610e8957610e7b81836133ce565b38613b87565b503390565b5060183610613aef565b909183613bca575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613c4057505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613bc4565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b908160209103126102fd57517fffffffff00000000000000000000000000000000000000000000000000000000811681036102fd5790565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613db2575b613cfa575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa9081156106ef57600091613d93575b5015613d665750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613dac915060203d602011610e8957610e7b81836133ce565b38613d5d565b50813b1515613cf2565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613de7575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613de1565b91929084613e4b575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054908582039180831015613fa7575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603613ec3575b506139a7565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff8616600052602052604060002054958087019680881115613f4957505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080613ebd565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fdfea26469706673582212209c835528a9aeb8fcacc8f683dbbda3d2b31ab53240330f833b291a6c9eeaa09664736f6c634300081e0033",
  "deployedBytecode": "0x6080604052600436101561001257600080fd5b60003560e01c8062fdd58e1461312257806301ffc9a71461309b57806306fdde03146130405780630d6a5bbb14612dde5780630e07f8541461254d5780630e89341c146123f6578063114ba8ee1461230f578063162094c4146122485780632a55205a146121555780632b4c9f16146120e65780632eb2c2d614611ca75780632f2ff15d14611b1b5780634e1273f414611a3d578063572b6c05146119f25780635cfa92971461192857806361ba27da1461180c5780636706467b146116a457806373c8a958146114f45780638bb9c5bf146113855780638da5cb5b146113145780638dc251e3146111e757806391d148541461114f57806395d89b41146110dc578063a0c76f621461106b578063a22cb46514610f0b578063b0ccc31e14610e9a578063c3666c3614610c5d578063d539139314610c04578063d547741f14610a7b578063e1a8bf2c14610a3f578063e8ab9ccc14610833578063e985e9c51461077f578063f242432a1461044d578063f2fde38b146103595763f7ba94bd1461019c57600080fd5b346102fd576101aa3661329b565b90917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff806101eb613aa8565b925416911690810361032c57508181036103025760005b81811061020b57005b610216818387613589565b3573ffffffffffffffffffffffffffffffffffffffff81168091036102fd57610240828587613589565b35908147106102cb57600080809381935af13d156102c3573d9061026382613473565b9161027160405193846133ce565b82523d6000602084013e5b1561028a5750600101610202565b80511561029957602081519101fd5b7fd6bda2750000000000000000000000000000000000000000000000000000000060005260046000fd5b60609061027c565b50477fcf4791810000000000000000000000000000000000000000000000000000000060005260045260245260446000fd5b600080fd5b7f658253360000000000000000000000000000000000000000000000000000000060005260046000fd5b7f2ef4875e0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610390613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc906103ba613aa8565b9073ffffffffffffffffffffffffffffffffffffffff80845416921682810361032c575073ffffffffffffffffffffffffffffffffffffffff16918282036103fe57005b827fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b346102fd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610484613190565b61048c6131b3565b604435906064359260843567ffffffffffffffff81116102fd576104b490369060040161326d565b926104bd613aa8565b937f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308573ffffffffffffffffffffffffffffffffffffffff861673ffffffffffffffffffffffffffffffffffffffff82160361076f575b505073ffffffffffffffffffffffffffffffffffffffff8216947f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612861561074557610560828783613dbc565b156106fb5773ffffffffffffffffffffffffffffffffffffffff916105898a8a878a8796613e3c565b169416918583867fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518c81528d6020820152a43b6105c657005b6020926105d49136916134ad565b9261062a60405194859384937ff23a6e610000000000000000000000000000000000000000000000000000000085526004850152602484015287604484015288606484015260a0608484015260a48301906131f9565b03816000865af19081156106ef577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff00000000000000000000000000000000000000000000000000000000916000916106c0575b50160361068d57005b7f40f39d380000000000000000000000000000000000000000000000000000000060005260045260245260445260646000fd5b6106e2915060203d6020116106e8575b6106da81836133ce565b810190613c99565b86610684565b503d6106d0565b6040513d6000823e3d90fd5b73ffffffffffffffffffffffffffffffffffffffff8681847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b7fb5e890150000000000000000000000000000000000000000000000000000000060005260046000fd5b61077891613cd1565b8785610514565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576107b6613190565b73ffffffffffffffffffffffffffffffffffffffff6107d36131b3565b91166000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e861360205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760043567ffffffffffffffff81116102fd5761088290369060040161323c565b60243567ffffffffffffffff81116102fd576108a290369060040161323c565b929060443567ffffffffffffffff81116102fd576108c490369060040161323c565b93909160643567ffffffffffffffff81116102fd576108e790369060040161326d565b9390916108f2613aa8565b9761091d897fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612946109488161340f565b97610956604051998a6133ce565b818952602089019160051b8101903682116102fd57915b818310610a12575050509161098b6109939261099b95943691613427565b973691613427565b9336916134ad565b9183519480518614801590610a07575b6103025760005b8681106109bb57005b80610a018673ffffffffffffffffffffffffffffffffffffffff6109e16001958b613873565b51166109ed8487613873565b516109f88589613873565b51918d8a613927565b016109b2565b5081518614156109ab565b823573ffffffffffffffffffffffffffffffffffffffff811681036102fd5781526020928301920161096d565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576020604051620186a08152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57600435610ab56131b3565b610abd613aa8565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361032c57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff60406000205416610b6f57005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905580519384529183015291909216908201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9080606081015b0390a1005b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760206040517f6d696e74657200000000000000000000000000000000000000000000000000008152f35b346102fd57610c6b3661333f565b9094929390917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80610cb0613aa8565b925416911690810361032c5750808214801590610e90575b6103025760005b828110610cd857005b73ffffffffffffffffffffffffffffffffffffffff610d00610cfb83858a613589565b613906565b166040517f01ffc9a70000000000000000000000000000000000000000000000000000000081527f80ac58cd000000000000000000000000000000000000000000000000000000006004820152602081602481855afa9081156106ef57600091610e62575b5015610e35575073ffffffffffffffffffffffffffffffffffffffff610d8f610cfb83858a613589565b1690610d9f610cfb828689613589565b91610dab82878b613589565b3592813b156102fd57606473ffffffffffffffffffffffffffffffffffffffff916000809460405197889586947f42842e0e00000000000000000000000000000000000000000000000000000000865230600487015216602485015260448401525af19182156106ef57600192610e24575b5001610ccf565b6000610e2f916133ce565b88610e1d565b7f986b9f1f0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b610e83915060203d8111610e89575b610e7b81836133ce565b810190613a90565b89610d65565b503d610e71565b5082821415610cc8565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd305416604051908152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57610f42613190565b60243590811515918281036102fd5761103c575b73ffffffffffffffffffffffffffffffffffffffff80610f74613aa8565b1691169181831461100e5760207f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191836000527f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86138252604060002085600052825260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0081541660ff8316179055604051908152a3005b507ffb0fdf610000000000000000000000000000000000000000000000000000000060005260045260246000fd5b611066817f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30613cd1565b610f56565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a65416604051908152f35b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761114b6111377f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56136ef565b6040519182916020835260208301906131f9565b0390f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576111866131b3565b7fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b2260043560005260205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761121e613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061125d613aa8565b925416911690810361032c57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b800078268579073ffffffffffffffffffffffffffffffffffffffff8116156112ea5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7f16de0c800000000000000000000000000000000000000000000000000000000060005260046000fd5b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602073ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc5416604051908152f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd577fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226004356113e0613aa8565b908060005282602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416156114ac5760008181526020938452604080822073ffffffffffffffffffffffffffffffffffffffff949094168083529385529081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690558051918252928101829052918201527ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b908060608101610bff565b73ffffffffffffffffffffffffffffffffffffffff92507f7aa72882000000000000000000000000000000000000000000000000000000006000526004521660245260446000fd5b346102fd576115023661333f565b929392917fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80611545613aa8565b925416911690810361032c575080841480159061169a575b6103025760005b84811061156d57005b611578818388613589565b3573ffffffffffffffffffffffffffffffffffffffff8116908181036102fd5760006020916115ab610cfb868b8e613589565b826116156116416115bd898d8d613589565b6040517fa9059cbb0000000000000000000000000000000000000000000000000000000089820190815273ffffffffffffffffffffffffffffffffffffffff9096166024820152903560448201529182906064820190565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352826133ce565b51925af1156106ef576000513d6116915750803b155b6116645750600101611564565b7f5274afe70000000000000000000000000000000000000000000000000000000060005260045260246000fd5b60011415611657565b508284141561155d565b346102fd576116b23661329b565b8083949293036103025773ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117de57916000907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301915b85811061172e57005b848110156117af578060051b820135838112156102fd5782019081359167ffffffffffffffff83116102fd5760200182360381136102fd577f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b600193611795848b8a613589565b35926117a6604051928392836134e4565b0390a201611725565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f22060671000000000000000000000000000000000000000000000000000000006000523360045260246000fd5b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576004357fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff8061187d613aa8565b925416911690810361032c57507f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685790620186a081116118fb57815473ffffffffffffffffffffffffffffffffffffffff1660a09190911b7fffffffffffffffffffffffff000000000000000000000000000000000000000016179055005b7fac0404080000000000000000000000000000000000000000000000000000000060005260045260246000fd5b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761195f613190565b6064359067ffffffffffffffff82116102fd576119836119f092369060040161326d565b6119e261198e613aa8565b926119b9847fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e86129236916134ad565b926044359260243592613927565b005b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576020611a33611a2e613190565b61352a565b6040519015158152f35b346102fd57611a4b3661329b565b9192917f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612919080850361030257611a818561340f565b94611a8f60405196876133ce565b8086527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0611abc8261340f565b0136602088013760005b818110611ae3576040516020808252819061114b9082018a61330b565b80611b0a611af7610cfb600194868b613589565b611b02838789613589565b359088613599565b611b14828a613873565b5201611ac6565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57600435611b556131b3565b611b5d613aa8565b9173ffffffffffffffffffffffffffffffffffffffff7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc541673ffffffffffffffffffffffffffffffffffffffff841690810361032c57507fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b228160005280602052604060002073ffffffffffffffffffffffffffffffffffffffff841660005260205260ff6040600020541615611c1057005b60008281526020918252604080822073ffffffffffffffffffffffffffffffffffffffff9586168084529084529181902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905580519384529183015291909216908201527f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d908060608101610bff565b346102fd5760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57611cde613190565b611ce66131b3565b60443567ffffffffffffffff81116102fd57611d0690369060040161323c565b929060643567ffffffffffffffff81116102fd57611d2890369060040161323c565b9360843567ffffffffffffffff81116102fd57611d4990369060040161326d565b939091611d54613aa8565b957f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd308773ffffffffffffffffffffffffffffffffffffffff831673ffffffffffffffffffffffffffffffffffffffff8216036120d6575b505073ffffffffffffffffffffffffffffffffffffffff8216967f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612881561074557898b0361030257611dfe828483613dbc565b1561208c5760005b8b811061205d575050928992888a8897947f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb73ffffffffffffffffffffffffffffffffffffffff809b99169a8b9216988993611e8260405192839260408452611e748d60408601908d6138c9565b9184830360208601526138c9565b0390a43b611e8c57005b602094611ea1611ea992611eb1953691613427565b993691613427565b9536916134ad565b92611f6160405194859384937fbc197c810000000000000000000000000000000000000000000000000000000085526004850152602484015260a06044840152611f31611f0160a485018b61330b565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8582030160648601528861330b565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8483030160848501526131f9565b03816000875af19081156106ef577fbc197c8100000000000000000000000000000000000000000000000000000000917fffffffff000000000000000000000000000000000000000000000000000000009160009161203e575b501603611fc457005b61203a9061200a6040519485947fc287817e000000000000000000000000000000000000000000000000000000008652600486015260606024860152606485019061330b565b907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc84830301604485015261330b565b0390fd5b612057915060203d6020116106e8576106da81836133ce565b86611fbb565b806120868c61207c8f94612074816001978d613589565b35928d613589565b3590888887613e3c565b01611e06565b73ffffffffffffffffffffffffffffffffffffffff8381847f05bbb9c400000000000000000000000000000000000000000000000000000000600052166004521660245260446000fd5b6120df91613cd1565b8987611dab565b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5773ffffffffffffffffffffffffffffffffffffffff6024357f2c0cf10337caabbd02dcf226f05f5fd19a0919a41a8df8958c39b8000782685754908160a01c9080158015612240575b1561220a57505061114b60005b60405193849316836020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b61114b91620186a082101561222d5761222790620186a092613887565b046121da565b620186a061223b9204613887565b6121da565b5081156121cd565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760243567ffffffffffffffff81116102fd5761229790369060040161326d565b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6541633036117de5761230a7f6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b9160405191829160043595836134e4565b0390a2005b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57612346613190565b7fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc73ffffffffffffffffffffffffffffffffffffffff80612385613aa8565b925416911690810361032c575073ffffffffffffffffffffffffffffffffffffffff7f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd3091167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd577f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a6546040517ff724dad700000000000000000000000000000000000000000000000000000000815230600480830191909152356024820152906000908290604490829073ffffffffffffffffffffffffffffffffffffffff165afa9081156106ef576000916124c5575b6040516020808252819061114b908201856131f9565b3d8083833e6124d481836133ce565b8101906020818303126125455780519067ffffffffffffffff8211612549570181601f820112156125455780519261250b84613473565b9261251960405194856133ce565b84845260208584010111612542575061114b9261253c91602080850191016131d6565b906124af565b80fd5b8280fd5b8380fd5b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5760043567ffffffffffffffff81116102fd5761259c90369060040161326d565b60243567ffffffffffffffff81116102fd576125bc90369060040161326d565b6044939193359173ffffffffffffffffffffffffffffffffffffffff831683036102fd576064359373ffffffffffffffffffffffffffffffffffffffff851685036102fd577fc9ed16f33ab3a66c84bfd83099ccb2a8845871e2e1c1928f63797152f0fd54cc61262a613aa8565b7f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb83546001811015612a9d575060017f5b388d90dc1312ba799f321972f13311234fa1163bcabec7cf66101c4876eb835573ffffffffffffffffffffffffffffffffffffffff169081612d89575b50507fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d6020527fa53d5a615b1d5279f1a6647c5c0f31bf064b1e70af135676a4a96aeaeb691a2f805460017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091821681179092557f55f2baa086bcadb68563d14bf0ae4964705cc6bc8fd476a834dc8cb4e83cc92a80548216831790557f798ccc21e731e7c6df0f17af649aebfe86cf40852d893cd6be9ac4b4f1a38c4a80548216831790557f9e2577fef401b922351ba64c2dd1b1973f93ce5aa0ac6d201b8f37697f418ddc80548216831790557fd5b919ee98bf671a286d76fb974776031948c06c028e2b68350aa10f39644e9e80548216831790557f2a55205a000000000000000000000000000000000000000000000000000000006000527f2d8b44ae6eaa7ac3b154622dbcfc94b3609ce793bb4cffd595b15ac18d28e5208054909116821790557f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf58547f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a49391811015612a9d575060017f92f72593ca50a0096f68ee94e7000db40ed086164b695855e2250750b8bfaf585567ffffffffffffffff8211612c5a578190612889845461369c565b601f8111612d36575b50600090601f8311600114612c9457600092612c89575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b67ffffffffffffffff8111612c5a576129147f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a55461369c565b601f8111612bd6575b506000601f8211600114612ada5781929394600092612acf575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916177f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a5555b73ffffffffffffffffffffffffffffffffffffffff7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a691167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557f609b85bcafa81ecfaf3ff62cdde2c6c9082a68dbe4922f07399c706bdeb7cd30907f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d546001811015612a9d575073ffffffffffffffffffffffffffffffffffffffff9060017f2f02d396cb1be29636682c8684200b30a98554d3b74293aa4495cb5e1d252f6d55167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055600080f35b7fbf0c18ec00000000000000000000000000000000000000000000000000000000600052600452600160245260446000fd5b013590508480612937565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a581527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08216947fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a191805b878110612bbe575083600195969710612b86575b505050811b017f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a555612989565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055848080612b59565b90926020600181928686013581550194019101612b45565b7f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a56000527fc39bad3db5d56dccf839bc8a79759b3192b97757d993f7663c9998f4fbefc8a1601f830160051c81019160208410612c50575b601f0160051c01905b818110612c44575061291d565b60008155600101612c37565b9091508190612c2e565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b0135905087806128a9565b90917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016918481526020812092815b818110612d1e5750908460019594939210612ce6575b505050811b0190556128db565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88560031b161c19910135169055878080612cd9565b91936020600181928787013581550195019201612cc3565b909150836000526020600020601f840160051c81019160208510612d7f575b90601f859493920160051c01905b818110612d705750612892565b60008155849350600101612d63565b9091508190612d55565b817fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a38680612697565b346102fd5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57612e15613190565b60243567ffffffffffffffff81116102fd57612e3590369060040161323c565b909160443567ffffffffffffffff81116102fd57612e5790369060040161323c565b93909160643567ffffffffffffffff81116102fd57612eeb93612e81612ef392369060040161326d565b959091612ee3612e8f613aa8565b96612eba887fc8827d3282af6f37b64c3e9e6f3ac9df286ab0bb0fccd6f8661bf19adb368b226137b1565b7f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612993691613427565b983691613427565b9436916134ad565b9173ffffffffffffffffffffffffffffffffffffffff821694851561301657865190855182036103025760005b828110612fec5750505073ffffffffffffffffffffffffffffffffffffffff1690846000837f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb6040516040815280612f8d612f7f8d604084019061330b565b82810360208401528b61330b565b0390a43b612f9757005b611f619160209160405193849283927fbc197c8100000000000000000000000000000000000000000000000000000000845260048401526000602484015260a06044840152611f31611f0160a485018b61330b565b80613010612ffc6001938c613873565b51613007838b613873565b51908886613bbc565b01612f20565b7f021149bd0000000000000000000000000000000000000000000000000000000060005260046000fd5b346102fd5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd5761114b6111377f7ea68fd2dcf1c056b94db6a0a537aa80d26fa9ab1eacd85da1ba0b61b7e7a8a46136ef565b346102fd5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd576004357fffffffff00000000000000000000000000000000000000000000000000000000811681036102fd57611a336020917fca9d3e17f264b0f3984e2634e94adb37fa3e6a8103f06aeae6fa59e21c769f5d613612565b346102fd5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126102fd57602061318861315e613190565b602435907f5ccf5846fa27a68fafc8e588671a68f5e67c2f9b56af4263806a4d71735e8612613599565b604051908152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102fd57565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102fd57565b60005b8381106131e95750506000910152565b81810151838201526020016131d9565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602093613235815180928187528780880191016131d6565b0116010190565b9181601f840112156102fd5782359167ffffffffffffffff83116102fd576020808501948460051b0101116102fd57565b9181601f840112156102fd5782359167ffffffffffffffff83116102fd57602083818601950101116102fd57565b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126102fd5760043567ffffffffffffffff81116102fd57816132e49160040161323c565b929092916024359067ffffffffffffffff82116102fd576133079160040161323c565b9091565b906020808351928381520192019060005b8181106133295750505090565b825184526020938401939092019160010161331c565b60607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc8201126102fd5760043567ffffffffffffffff81116102fd57816133889160040161323c565b9290929160243567ffffffffffffffff81116102fd57816133ab9160040161323c565b929092916044359067ffffffffffffffff82116102fd576133079160040161323c565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117612c5a57604052565b67ffffffffffffffff8111612c5a5760051b60200190565b9291906134338161340f565b9361344160405195866133ce565b602085838152019160051b81019283116102fd57905b82821061346357505050565b8135815260209182019101613457565b67ffffffffffffffff8111612c5a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926134b982613473565b916134c760405193846133ce565b8294818452818301116102fd578281602093846000960137010152565b90601f836040947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe093602086528160208701528686013760008582860101520116010190565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169081156135825773ffffffffffffffffffffffffffffffffffffffff161490565b5050600090565b91908110156117af5760051b0190565b909173ffffffffffffffffffffffffffffffffffffffff8316156135e85760005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205490565b7fca2434a50000000000000000000000000000000000000000000000000000000060005260046000fd5b907fffffffff00000000000000000000000000000000000000000000000000000000167fffffffff000000000000000000000000000000000000000000000000000000008114613582577f01ffc9a70000000000000000000000000000000000000000000000000000000081146136955760005260205260ff6040600020541690565b5050600190565b90600182811c921680156136e5575b60208310146136b657565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b91607f16916136ab565b90604051918260008254926137038461369c565b8084529360018116908115613771575060011461372a575b50613728925003836133ce565b565b90506000929192526020600020906000915b818310613755575050906020613728928201013861371b565b602091935080600191548385890101520191019091849261373c565b602093506137289592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201013861371b565b7f6d696e7465720000000000000000000000000000000000000000000000000000600052602052604060002073ffffffffffffffffffffffffffffffffffffffff821660005260205260ff604060002054161561380b5750565b73ffffffffffffffffffffffffffffffffffffffff907f7aa72882000000000000000000000000000000000000000000000000000000006000527f6d696e74657200000000000000000000000000000000000000000000000000006004521660245260446000fd5b80518210156117af5760209160051b010190565b8181029291811591840414171561389a57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90918281527f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff83116102fd5760209260051b809284830137010190565b3573ffffffffffffffffffffffffffffffffffffffff811681036102fd5790565b94919092939473ffffffffffffffffffffffffffffffffffffffff82169384156130165761396c87878573ffffffffffffffffffffffffffffffffffffffff95613bbc565b1690836000837fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62604080518a81528b6020820152a43b6139ae575b5050505050565b613a099160209160405193849283927ff23a6e6100000000000000000000000000000000000000000000000000000000845260048401526000602484015287604484015288606484015260a0608484015260a48301906131f9565b03816000865af19081156106ef577ff23a6e6100000000000000000000000000000000000000000000000000000000917fffffffff0000000000000000000000000000000000000000000000000000000091600091613a71575b50160361068d5780806139a7565b613a8a915060203d6020116106e8576106da81836133ce565b38613a63565b908160209103126102fd575180151581036102fd5790565b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168015613bad573233148015613bb2575b613bad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec36013560601c90803314908115613b33575b50613b3057503390565b90565b60649150602090604051928380927f019a20280000000000000000000000000000000000000000000000000000000082528660048301523360248301523060448301525afa9081156106ef57600091613b8e575b5038613b26565b613ba7915060203d602011610e8957610e7b81836133ce565b38613b87565b503390565b5060183610613aef565b909183613bca575b50505050565b8060005281602052604060002073ffffffffffffffffffffffffffffffffffffffff8416600052602052604060002054938085019480861115613c4057505060005260205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260406000205538808080613bc4565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff86166004820152602481019390935260448301526064820152608490fd5b908160209103126102fd57517fffffffff00000000000000000000000000000000000000000000000000000000811681036102fd5790565b5473ffffffffffffffffffffffffffffffffffffffff169081151580613db2575b613cfa575050565b602073ffffffffffffffffffffffffffffffffffffffff916044604051809481937fc617113400000000000000000000000000000000000000000000000000000000835230600484015216958660248301525afa9081156106ef57600091613d93575b5015613d665750565b7fede71dcc0000000000000000000000000000000000000000000000000000000060005260045260246000fd5b613dac915060203d602011610e8957610e7b81836133ce565b38613d5d565b50813b1515613cf2565b73ffffffffffffffffffffffffffffffffffffffff8083169084161492918315613de7575b50505090565b600192935073ffffffffffffffffffffffffffffffffffffffff166000520160205273ffffffffffffffffffffffffffffffffffffffff6040600020911660005260205260ff60406000205416388080613de1565b91929084613e4b575050505050565b8160005282602052604060002073ffffffffffffffffffffffffffffffffffffffff8216600052602052604060002054908582039180831015613fa7575073ffffffffffffffffffffffffffffffffffffffff851673ffffffffffffffffffffffffffffffffffffffff821603613ec3575b506139a7565b8260005283602052604060002073ffffffffffffffffffffffffffffffffffffffff8616600052602052604060002054958087019680881115613f4957505060009283526020938452604080842073ffffffffffffffffffffffffffffffffffffffff928316855280865281852093909355941682529091522055388080808080613ebd565b6040517f42fb00bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201526024810186905260448101919091526064810191909152608490fd5b6040517f03dee4c500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260248201849052604482015260648101869052608490fdfea26469706673582212209c835528a9aeb8fcacc8f683dbbda3d2b31ab53240330f833b291a6c9eeaa09664736f6c634300081e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
