From 7ac3ce7952f7961c0902c036166a485ec4d0912b Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 19 Dec 2024 16:25:57 -0600 Subject: [PATCH 01/71] feat: add mock data and banking current balance component - **src/_mock/assets.ts** - Added extensive mock data including IDs, addresses, booleans, emails, names, roles, products, tours, job titles, company names, and other related fields for testing purposes. - Enhanced mock tags and descriptions to improve test coverage. - **src/sections/finance/components/banking-current-balance.tsx** - Introduced `BankingCurrentBalance` component to display current balance with carousel functionality. - Added helper components for balance display with toggleable visibility, edit, and delete options. - Used MUI, custom hooks, and utility functions for clean UI and interactions. --- package-lock.json | 784 ++---------------- package.json | 2 + src/_mock/_mock.ts | 73 ++ src/_mock/_overview.ts | 69 ++ src/_mock/assets.ts | 501 +++++++++++ src/_mock/index.ts | 1 + .../illustrations/booking-illustration.tsx | 307 +++++++ .../illustrations/check-in-illustration.tsx | 96 +++ .../illustrations/check-out-illustration.tsx | 69 ++ src/assets/illustrations/index.ts | 3 + src/components/chart/chart.tsx | 67 ++ src/components/chart/index.ts | 5 + src/components/chart/use-chart.ts | 213 +++++ src/components/table/index.ts | 11 + src/components/table/table-empty-rows.tsx | 28 + src/components/table/table-head-custom.tsx | 92 ++ src/components/table/table-no-data.tsx | 34 + .../table/table-pagination-custom.tsx | 50 ++ .../table/table-selected-action.tsx | 75 ++ src/components/table/table-skeleton.tsx | 24 + src/components/table/types.ts | 36 + src/components/table/use-table.ts | 144 ++++ src/components/table/utils.ts | 30 + src/pages/dashboard/finance.tsx | 13 +- .../components/banking-balance-statistics.tsx | 117 +++ .../finance/components/banking-contacts.tsx | 61 ++ .../components/banking-current-balance.tsx | 201 +++++ .../components/banking-invite-friends.tsx | 84 ++ .../components/banking-quick-transfer.tsx | 400 +++++++++ .../components/banking-recent-transitions.tsx | 234 ++++++ .../components/banking-widget-summary.tsx | 178 ++++ src/sections/finance/index.tsx | 181 ++++ 32 files changed, 3486 insertions(+), 697 deletions(-) create mode 100644 src/_mock/_mock.ts create mode 100644 src/_mock/_overview.ts create mode 100644 src/assets/illustrations/booking-illustration.tsx create mode 100644 src/assets/illustrations/check-in-illustration.tsx create mode 100644 src/assets/illustrations/check-out-illustration.tsx create mode 100644 src/components/chart/chart.tsx create mode 100644 src/components/chart/index.ts create mode 100644 src/components/chart/use-chart.ts create mode 100644 src/components/table/index.ts create mode 100644 src/components/table/table-empty-rows.tsx create mode 100644 src/components/table/table-head-custom.tsx create mode 100644 src/components/table/table-no-data.tsx create mode 100644 src/components/table/table-pagination-custom.tsx create mode 100644 src/components/table/table-selected-action.tsx create mode 100644 src/components/table/table-skeleton.tsx create mode 100644 src/components/table/types.ts create mode 100644 src/components/table/use-table.ts create mode 100644 src/components/table/utils.ts create mode 100644 src/sections/finance/components/banking-balance-statistics.tsx create mode 100644 src/sections/finance/components/banking-contacts.tsx create mode 100644 src/sections/finance/components/banking-current-balance.tsx create mode 100644 src/sections/finance/components/banking-invite-friends.tsx create mode 100644 src/sections/finance/components/banking-quick-transfer.tsx create mode 100644 src/sections/finance/components/banking-recent-transitions.tsx create mode 100644 src/sections/finance/components/banking-widget-summary.tsx create mode 100644 src/sections/finance/index.tsx diff --git a/package-lock.json b/package-lock.json index 9ef8e7995..093a68504 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,17 @@ { "name": "watchit", - "version": "2.0.0-beta.4", + "version": "2.0.0-beta.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "watchit", - "version": "2.0.0-beta.4", + "version": "2.0.0-beta.6", "dependencies": { "@helia/unixfs": "^4.0.1", "@hookform/resolvers": "^3.1.1", "@iconify/react": "^4.1.1", "@lens-protocol/api-bindings": "^0.12.3", - "@lens-protocol/client": "^2.3.2", "@lens-protocol/metadata": "^1.2.0", "@lens-protocol/react": "^2.3.2", "@lens-protocol/react-web": "^2.3.1", @@ -37,6 +36,7 @@ "@web3auth/ethereum-provider": "~9.4.0", "@web3auth/modal": "~9.4.0", "@web3auth/modal-react-hooks": "~9.4.0", + "apexcharts": "^4.3.0", "autosuggest-highlight": "^3.3.4", "axios": "^1.4.0", "date-fns": "^2.30.0", @@ -59,6 +59,7 @@ "numeral": "^2.0.6", "pbkdf2": "^3.1.2", "react": "^18.2.0", + "react-apexcharts": "^1.7.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-helmet-async": "^1.3.0", @@ -5621,43 +5622,6 @@ "@ethersproject/wordlists": "5.7.0" } }, - "node_modules/@lens-protocol/client": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/@lens-protocol/client/-/client-2.3.2.tgz", - "integrity": "sha512-TOgCCTcJHHUI8dyfiAFo1rz8SukLgpZ+YFOf/34MsdPuAreK236MVAeIjXKFVnxLBxeLFcxCmUaBjsI0WD5eoQ==", - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/contracts": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/wallet": "^5.7.0", - "@lens-protocol/blockchain-bindings": "0.10.2", - "@lens-protocol/gated-content": "0.5.1", - "@lens-protocol/shared-kernel": "0.12.0", - "@lens-protocol/storage": "0.8.1", - "graphql": "^16.8.1", - "graphql-request": "^6.1.0", - "graphql-tag": "^2.12.6", - "jwt-decode": "^3.1.2", - "tslib": "^2.6.2", - "zod": "^3.22.4" - }, - "engines": { - "node": ">=18 <=22" - }, - "peerDependencies": { - "@lens-protocol/metadata": "^1.0.0" - }, - "peerDependenciesMeta": { - "@lens-protocol/metadata": { - "optional": true - } - } - }, "node_modules/@lens-protocol/domain": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/@lens-protocol/domain/-/domain-0.12.0.tgz", @@ -5692,34 +5656,6 @@ } } }, - "node_modules/@lens-protocol/gated-content": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/@lens-protocol/gated-content/-/gated-content-0.5.1.tgz", - "integrity": "sha512-rXD0/lkdFIGrwi7+LLgxYwb1Bbsnbi3XouUxfXbqBD32YwKkpYRNb0EfYcB3HZOQv9vmeTTlyrozNKxWoCBJ3A==", - "license": "MIT", - "dependencies": { - "@lens-protocol/shared-kernel": "0.12.0", - "@lens-protocol/storage": "0.8.1", - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/crypto": "2.1.62", - "@lit-protocol/encryption": "2.1.62", - "@lit-protocol/node-client": "^2.1.62", - "@lit-protocol/types": "2.1.62", - "siwe": "^2.1.4", - "tslib": "^2.6.2" - }, - "peerDependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/contracts": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/providers": "^5.7.2", - "@ethersproject/wallet": "^5.7.0", - "@lens-protocol/metadata": "^1.0.0", - "zod": "^3.22.0" - } - }, "node_modules/@lens-protocol/metadata": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@lens-protocol/metadata/-/metadata-1.2.0.tgz", @@ -6379,473 +6315,6 @@ "integrity": "sha512-wx4aBmgeGvFmOKucFKY+8VFJSYZxs9poN3SDNQFF6lT6NrQUnHiPB2PWz2sc4ieEcAaYYzN+1uWahEeTq2aRIQ==", "license": "BSD-3-Clause" }, - "node_modules/@lit-protocol/access-control-conditions": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/access-control-conditions/-/access-control-conditions-2.1.62.tgz", - "integrity": "sha512-nP+iqiLUzQa6bfZL9hM9a+s+YVW21HoHkHP7s2E11VFQmucdnJmUUr7Aw46SK/4yClTjLb6RuHyfIPvCdmIKhQ==", - "license": "MIT", - "dependencies": { - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "ethers": "^5.7.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/access-control-conditions/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/auth-browser": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/auth-browser/-/auth-browser-2.1.62.tgz", - "integrity": "sha512-/4BTl0omR+JUCyJJc93FCiygSn/4ldrbeBuzWYQzuOFh2f6fcY1GJe3ttEoSJUfwu7OblW86YpWAT65b56rACA==", - "license": "MIT", - "dependencies": { - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/misc-browser": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "@walletconnect/ethereum-provider": "^2.1.2", - "ethers": "^5.7.1", - "lit-connect-modal": "^0.1.11", - "lit-siwe": "^1.1.8", - "tslib": "^2.3.0", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.13.3", - "util": "^0.12.4", - "web-vitals": "^3.0.4" - } - }, - "node_modules/@lit-protocol/auth-browser/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/auth-browser/node_modules/tweetnacl-util": { - "version": "0.13.5", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.13.5.tgz", - "integrity": "sha512-/4Q3hpPFAnbBjNLLOmdTdyvInBfZcQBTWy+LWbypmWxAKwOpSQOyyv4ZZts4CoiYtS8Skyix5CkOWytf7XNK9A==", - "license": "Unlicense" - }, - "node_modules/@lit-protocol/bls-sdk": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/bls-sdk/-/bls-sdk-2.1.62.tgz", - "integrity": "sha512-UjNjycoNXOEoLH/foIJx1L9PLL5OxmHcCD/mFXr4KSeQV/v4srvGNpY/4ng7+k9sJEbvwRwv+FB07ng3/Ihacg==", - "license": "MIT" - }, - "node_modules/@lit-protocol/constants": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/constants/-/constants-2.1.62.tgz", - "integrity": "sha512-4CigP3GS7Cxpa9RXT1twCCvYI5wvfo1UAMbdrjoDgM9VMDtpvSrmlG8AwC9yMoqPM6409BYcgGI9LDGzUjNUjg==", - "license": "MIT", - "dependencies": { - "@lit-protocol/types": "2.1.62", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/crypto": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/crypto/-/crypto-2.1.62.tgz", - "integrity": "sha512-pWte+VQOPmSFvfoMxvobmj5JjkGSD44XMkkTXGubpGTBr27hK9CuDxpVHTsI9NsGFSJRdPBpRou+YD5I22yDiA==", - "license": "MIT", - "dependencies": { - "@lit-protocol/bls-sdk": "2.1.62", - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/ecdsa-sdk": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/nacl": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "ethers": "^5.7.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/crypto/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/ecdsa-sdk": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/ecdsa-sdk/-/ecdsa-sdk-2.1.62.tgz", - "integrity": "sha512-VWYAQh31e5Vu6YXvw7iDQja/f2Je6Obj8VoXLweWWfSpUnKqe1JJKGDLxOAuQUT3ZSaX7bYrq7hLIJdwdWmJQw==", - "license": "MIT" - }, - "node_modules/@lit-protocol/encryption": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/encryption/-/encryption-2.1.62.tgz", - "integrity": "sha512-Nmte/UINgc+YVlA3RewhW+1SFnKcSikd94HlBxS+TX9yb2KBUO6oKNjTQSGX4P/KD3zBxaFlbY8+jrWeYR1aQQ==", - "license": "MIT", - "dependencies": { - "@lit-protocol/bls-sdk": "2.1.62", - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/crypto": "2.1.62", - "@lit-protocol/ecdsa-sdk": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/nacl": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "ethers": "^5.7.1", - "jszip": "^3.10.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/encryption/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/lit-third-party-libs": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/lit-third-party-libs/-/lit-third-party-libs-2.1.62.tgz", - "integrity": "sha512-js8Z3uG4v30Dw9HNqnjxkzMcB3cp3UcF6tfsWGo99+g5OqqKnkCDbb4IXeqnGbslVPn6ll6XouRQPmCcuzeGaw==", - "license": "MIT" - }, - "node_modules/@lit-protocol/misc": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/misc/-/misc-2.1.62.tgz", - "integrity": "sha512-i6A/kxiJQgy8BZJGH7H8V2kxqOA2xboAjH2BzAbE/pMezfHG7wybkXT9cnXnXOZsAnuGnOKd93u+j7bskuDd2w==", - "license": "MIT", - "dependencies": { - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/types": "2.1.62", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/misc-browser": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/misc-browser/-/misc-browser-2.1.62.tgz", - "integrity": "sha512-2NX//tUe5ChrWCN4Msi4RE8DlYjTMGqyPYJHS86r7nKHG7sHSPCucn84LiTmVGA3DVKzspeGJdMbEF/W8Ogn6w==", - "license": "MIT", - "dependencies": { - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "ethers": "^5.7.1", - "tslib": "^2.3.0" - } - }, - "node_modules/@lit-protocol/misc-browser/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/nacl": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/nacl/-/nacl-2.1.62.tgz", - "integrity": "sha512-0v9fa6Sd4xphjlYMZ9L8TTyR7G4YLvp323E8OJ76giuaPla4HXuwSiGMzUOaC6NKraArSrd54CKkHJ/bxEqVDA==", - "license": "MIT" - }, - "node_modules/@lit-protocol/node-client": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/node-client/-/node-client-2.1.62.tgz", - "integrity": "sha512-rLEUleDoJ+AATZfWNWXvy7UdSrUXMyCjpyB5bevVfk9YjIa5rd9BBXdFENCIA+9kLgVOgtND/R1PpEI/vZkMmw==", - "license": "MIT", - "dependencies": { - "@lit-protocol/access-control-conditions": "2.1.62", - "@lit-protocol/auth-browser": "2.1.62", - "@lit-protocol/bls-sdk": "2.1.62", - "@lit-protocol/constants": "2.1.62", - "@lit-protocol/crypto": "2.1.62", - "@lit-protocol/ecdsa-sdk": "2.1.62", - "@lit-protocol/encryption": "2.1.62", - "@lit-protocol/lit-third-party-libs": "2.1.62", - "@lit-protocol/misc": "2.1.62", - "@lit-protocol/misc-browser": "2.1.62", - "@lit-protocol/nacl": "2.1.62", - "@lit-protocol/types": "2.1.62", - "@lit-protocol/uint8arrays": "2.1.62", - "@walletconnect/ethereum-provider": "^2.4.7", - "ethers": "^5.7.1", - "jszip": "^3.10.1", - "lit-connect-modal": "^0.1.11", - "lit-siwe": "^1.1.8", - "node-fetch": "^2.6.1", - "tslib": "^2.3.0", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - } - }, - "node_modules/@lit-protocol/node-client/node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "license": "MIT", - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/@lit-protocol/types": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/types/-/types-2.1.62.tgz", - "integrity": "sha512-DoIOmbI+Bg3zLWzqx4fLv1vW3k1sbDof/fxslHsLt5aX/MXHSZVKTJb+jWgNVcQ4ba+YLqgoKaPb1i58DMvCPw==", - "license": "MIT" - }, - "node_modules/@lit-protocol/uint8arrays": { - "version": "2.1.62", - "resolved": "https://registry.npmjs.org/@lit-protocol/uint8arrays/-/uint8arrays-2.1.62.tgz", - "integrity": "sha512-Q9Leppzyb9Y2jwe+i8btAUkTXqgnu21PFql83v6N70dkELSC+fKBzRSRqUpFqruW7dcrG8mNWsOCQbQ0kL/w/w==", - "license": "MIT" - }, "node_modules/@lit/reactive-element": { "version": "1.6.3", "resolved": "https://registry.npmjs.org/@lit/reactive-element/-/reactive-element-1.6.3.tgz", @@ -11788,15 +11257,6 @@ "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "license": "MIT" }, - "node_modules/@spruceid/siwe-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-1.1.3.tgz", - "integrity": "sha512-oQ8PcwDqjGWJvLmvAF2yzd6iniiWxK0Qtz+Dw+gLD/W5zOQJiKIUXwslHOm8VB8OOOKW9vfR3dnPBhHaZDvRsw==", - "license": "Apache-2.0", - "dependencies": { - "apg-js": "^4.1.1" - } - }, "node_modules/@stablelib/aead": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@stablelib/aead/-/aead-1.0.1.tgz", @@ -12056,6 +11516,62 @@ "@supabase/storage-js": "2.7.1" } }, + "node_modules/@svgdotjs/svg.draggable.js": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.draggable.js/-/svg.draggable.js-3.0.4.tgz", + "integrity": "sha512-vWi/Col5Szo74HJVBgMHz23kLVljt3jvngmh0DzST45iO2ubIZ487uUAHIxSZH2tVRyiaaTL+Phaasgp4gUD2g==", + "license": "MIT", + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, + "node_modules/@svgdotjs/svg.filter.js": { + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.filter.js/-/svg.filter.js-3.0.8.tgz", + "integrity": "sha512-YshF2YDaeRA2StyzAs5nUPrev7npQ38oWD0eTRwnsciSL2KrRPMoUw8BzjIXItb3+dccKGTX3IQOd2NFzmHkog==", + "license": "MIT", + "dependencies": { + "@svgdotjs/svg.js": "^3.1.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@svgdotjs/svg.js": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.js/-/svg.js-3.2.4.tgz", + "integrity": "sha512-BjJ/7vWNowlX3Z8O4ywT58DqbNRyYlkk6Yz/D13aB7hGmfQTvGX4Tkgtm/ApYlu9M7lCQi15xUEidqMUmdMYwg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/Fuzzyma" + } + }, + "node_modules/@svgdotjs/svg.resize.js": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.resize.js/-/svg.resize.js-2.0.5.tgz", + "integrity": "sha512-4heRW4B1QrJeENfi7326lUPYBCevj78FJs8kfeDxn5st0IYPIRXoTtOSYvTzFWgaWWXd3YCDE6ao4fmv91RthA==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.select.js": "^4.0.1" + } + }, + "node_modules/@svgdotjs/svg.select.js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@svgdotjs/svg.select.js/-/svg.select.js-4.0.2.tgz", + "integrity": "sha512-5gWdrvoQX3keo03SCmgaBbD+kFftq0F/f2bzCbNnpkkvW6tk4rl4MakORzFuNjvXPWwB4az9GwuvVxQVnjaK2g==", + "license": "MIT", + "engines": { + "node": ">= 14.18" + }, + "peerDependencies": { + "@svgdotjs/svg.js": "^3.2.4" + } + }, "node_modules/@tabler/icons": { "version": "3.24.0", "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.24.0.tgz", @@ -15148,6 +14664,12 @@ "node": ">=8" } }, + "node_modules/@yr/monotone-cubic-spline": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@yr/monotone-cubic-spline/-/monotone-cubic-spline-1.0.3.tgz", + "integrity": "sha512-FQXkOta0XBSUPHndIKON2Y9JeQz5ZeMqLYZVVK93FliNBFm7LNMIZmY6FrMEB9XPcDbE2bekMbZD6kzDkxwYjA==", + "license": "MIT" + }, "node_modules/abitype": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.0.tgz", @@ -15361,11 +14883,19 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/apg-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/apg-js/-/apg-js-4.4.0.tgz", - "integrity": "sha512-fefmXFknJmtgtNEXfPwZKYkMFX4Fyeyz+fNF6JWp87biGOPslJbCBVU158zvKRZfHBKnJDy8CMM40oLFGkXT8Q==", - "license": "BSD-2-Clause" + "node_modules/apexcharts": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-4.3.0.tgz", + "integrity": "sha512-PfvZQpv91T68hzry9l5zP3Gip7sQvF0nFK91uCBrswIKX7rbIdbVNS4fOks9m9yP3Ppgs6LHgU2M/mjoG4NM0A==", + "license": "MIT", + "dependencies": { + "@svgdotjs/svg.draggable.js": "^3.0.4", + "@svgdotjs/svg.filter.js": "^3.0.8", + "@svgdotjs/svg.js": "^3.2.4", + "@svgdotjs/svg.resize.js": "^2.0.2", + "@svgdotjs/svg.select.js": "^4.0.1", + "@yr/monotone-cubic-spline": "^1.0.3" + } }, "node_modules/argparse": { "version": "2.0.1", @@ -21132,19 +20662,6 @@ "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, - "node_modules/graphql-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/graphql-request/-/graphql-request-6.1.0.tgz", - "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", - "license": "MIT", - "dependencies": { - "@graphql-typed-document-node/core": "^3.2.0", - "cross-fetch": "^3.1.5" - }, - "peerDependencies": { - "graphql": "14 - 16" - } - }, "node_modules/graphql-tag": { "version": "2.12.6", "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", @@ -23316,63 +22833,6 @@ "node": ">=4.0" } }, - "node_modules/jszip": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", - "integrity": "sha512-xXDvecyTpGLrqFrvkrUSoxxfJI5AH7U8zxxtVclpsUtMCq4JQ290LY8AW5c7Ggnr/Y/oK+bQMbqK2qmtk3pN4g==", - "license": "(MIT OR GPL-3.0-or-later)", - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "setimmediate": "^1.0.5" - } - }, - "node_modules/jszip/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/jszip/node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "license": "MIT", - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/jszip/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/jszip/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/jszip/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/jwa": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", @@ -23596,15 +23056,6 @@ "lit-html": "^2.8.0" } }, - "node_modules/lit-connect-modal": { - "version": "0.1.11", - "resolved": "https://registry.npmjs.org/lit-connect-modal/-/lit-connect-modal-0.1.11.tgz", - "integrity": "sha512-EG6pcCqdxZQJt3MPDq3gJ5Sz4E5sJdydtAF7VFJu6z6GDHO1Ybp8WrTx8CUnHiF54/MQBRi6Nb7cbTvv+BKWvQ==", - "license": "ISC", - "dependencies": { - "micromodal": "^0.4.10" - } - }, "node_modules/lit-element": { "version": "3.3.3", "resolved": "https://registry.npmjs.org/lit-element/-/lit-element-3.3.3.tgz", @@ -23625,23 +23076,6 @@ "@types/trusted-types": "^2.0.2" } }, - "node_modules/lit-siwe": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/lit-siwe/-/lit-siwe-1.1.8.tgz", - "integrity": "sha512-gXI8GG0GAClw6G7T9p4p6Kn9ywDo8j2d90ShaYArJdsqqO9gwXfzxF84SMeY+bpsNqqQ3FahrhEwTCHd6w7wNw==", - "license": "Apache-2.0", - "dependencies": { - "@spruceid/siwe-parser": "1.1.3", - "@stablelib/random": "^1.0.1", - "apg-js": "^4.1.1" - }, - "peerDependencies": { - "@ethersproject/contracts": "^5.2.0", - "@ethersproject/hash": "^5.4.0", - "@ethersproject/providers": "^5.2.0", - "@ethersproject/wallet": "^5.2.0" - } - }, "node_modules/load-json-file": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", @@ -24858,15 +24292,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/micromodal": { - "version": "0.4.10", - "resolved": "https://registry.npmjs.org/micromodal/-/micromodal-0.4.10.tgz", - "integrity": "sha512-BUrEnzMPFBwK8nOE4xUDYHLrlGlLULQVjpja99tpJQPSUEWgw3kTLp1n1qv0HmKU29AiHE7Y7sMLiRziDK4ghQ==", - "license": "ISC", - "engines": { - "node": ">=10" - } - }, "node_modules/miller-rabin": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", @@ -30050,6 +29475,19 @@ "node": ">=0.10.0" } }, + "node_modules/react-apexcharts": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/react-apexcharts/-/react-apexcharts-1.7.0.tgz", + "integrity": "sha512-03oScKJyNLRf0Oe+ihJxFZliBQM9vW3UWwomVn4YVRTN1jsIR58dLWt0v1sb8RwJVHDMbeHiKQueM0KGpn7nOA==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.8.1" + }, + "peerDependencies": { + "apexcharts": ">=4.0.0", + "react": ">=0.13" + } + }, "node_modules/react-dom": { "version": "18.3.1", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", @@ -31958,33 +31396,6 @@ "react": ">=16.8.0" } }, - "node_modules/siwe": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/siwe/-/siwe-2.3.2.tgz", - "integrity": "sha512-aSf+6+Latyttbj5nMu6GF3doMfv2UYj83hhwZgUF20ky6fTS83uVhkQABdIVnEuS8y1bBdk7p6ltb9SmlhTTlA==", - "license": "Apache-2.0", - "dependencies": { - "@spruceid/siwe-parser": "^2.1.2", - "@stablelib/random": "^1.0.1", - "uri-js": "^4.4.1", - "valid-url": "^1.0.9" - }, - "peerDependencies": { - "ethers": "^5.6.8 || ^6.0.8" - } - }, - "node_modules/siwe/node_modules/@spruceid/siwe-parser": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@spruceid/siwe-parser/-/siwe-parser-2.1.2.tgz", - "integrity": "sha512-d/r3S1LwJyMaRAKQ0awmo9whfXeE88Qt00vRj91q5uv5ATtWIQEGJ67Yr5eSZw5zp1/fZCXZYuEckt8lSkereQ==", - "license": "Apache-2.0", - "dependencies": { - "@noble/hashes": "^1.1.2", - "apg-js": "^4.3.0", - "uri-js": "^4.4.1", - "valid-url": "^1.0.9" - } - }, "node_modules/skin-tone": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/skin-tone/-/skin-tone-2.0.0.tgz", @@ -35308,11 +34719,6 @@ "node": ">=8" } }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha512-QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==" - }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", @@ -35677,12 +35083,6 @@ "url": "https://github.com/sponsors/wooorm" } }, - "node_modules/web-vitals": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/web-vitals/-/web-vitals-3.5.2.tgz", - "integrity": "sha512-c0rhqNcHXRkY/ogGDJQxZ9Im9D19hDihbzSQJrsioex+KnFgmMzBiy57Z1EjkhX/+OjyBpclDCzz2ITtjokFmg==", - "license": "Apache-2.0" - }, "node_modules/web3-core": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/web3-core/-/web3-core-1.5.2.tgz", diff --git a/package.json b/package.json index a17c028f5..00251e108 100644 --- a/package.json +++ b/package.json @@ -71,6 +71,7 @@ "@web3auth/ethereum-provider": "~9.4.0", "@web3auth/modal": "~9.4.0", "@web3auth/modal-react-hooks": "~9.4.0", + "apexcharts": "^4.3.0", "autosuggest-highlight": "^3.3.4", "axios": "^1.4.0", "date-fns": "^2.30.0", @@ -93,6 +94,7 @@ "numeral": "^2.0.6", "pbkdf2": "^3.1.2", "react": "^18.2.0", + "react-apexcharts": "^1.7.0", "react-dom": "^18.2.0", "react-dropzone": "^14.2.3", "react-helmet-async": "^1.3.0", diff --git a/src/_mock/_mock.ts b/src/_mock/_mock.ts new file mode 100644 index 000000000..1d1f6a95d --- /dev/null +++ b/src/_mock/_mock.ts @@ -0,0 +1,73 @@ +import { sub } from 'date-fns'; +// config +import { ASSETS_API } from '@src/config-global'; +// +import { + _id, + _ages, + _roles, + _prices, + _emails, + _ratings, + _nativeS, + _nativeM, + _nativeL, + _percents, + _booleans, + _sentences, + _lastNames, + _fullNames, + _tourNames, + _jobTitles, + _taskNames, + _postTitles, + _firstNames, + _fullAddress, + _companyNames, + _productNames, + _descriptions, + _phoneNumbers, +} from './assets'; + +export const _mock = { + id: (index: number) => _id[index], + time: (index: number) => sub(new Date(), { days: index, hours: index }), + boolean: (index: number) => _booleans[index], + role: (index: number) => _roles[index], + // Text + taskNames: (index: number) => _taskNames[index], + postTitle: (index: number) => _postTitles[index], + jobTitle: (index: number) => _jobTitles[index], + tourName: (index: number) => _tourNames[index], + productName: (index: number) => _productNames[index], + sentence: (index: number) => _sentences[index], + description: (index: number) => _descriptions[index], + // Contact + email: (index: number) => _emails[index], + phoneNumber: (index: number) => _phoneNumbers[index], + fullAddress: (index: number) => _fullAddress[index], + // Name + firstName: (index: number) => _firstNames[index], + lastName: (index: number) => _lastNames[index], + fullName: (index: number) => _fullNames[index], + companyName: (index: number) => _companyNames[index], + // Number + number: { + percent: (index: number) => _percents[index], + rating: (index: number) => _ratings[index], + age: (index: number) => _ages[index], + price: (index: number) => _prices[index], + nativeS: (index: number) => _nativeS[index], + nativeM: (index: number) => _nativeM[index], + nativeL: (index: number) => _nativeL[index], + }, + // Image + image: { + cover: (index: number) => `${ASSETS_API}/assets/images/cover/cover_${index + 1}.jpg`, + avatar: (index: number) => `${ASSETS_API}/assets/images/avatar/avatar_${index + 1}.jpg`, + travel: (index: number) => `${ASSETS_API}/assets/images/travel/travel_${index + 1}.jpg`, + company: (index: number) => `${ASSETS_API}/assets/images/company/company_${index + 1}.png`, + product: (index: number) => `${ASSETS_API}/assets/images/m_product/product_${index + 1}.jpg`, + portrait: (index: number) => `${ASSETS_API}/assets/images/portrait/portrait_${index + 1}.jpg`, + }, +}; diff --git a/src/_mock/_overview.ts b/src/_mock/_overview.ts new file mode 100644 index 000000000..3c434d560 --- /dev/null +++ b/src/_mock/_overview.ts @@ -0,0 +1,69 @@ +import { _mock } from './_mock'; + +// BANKING +// ---------------------------------------------------------------------- + +export const _bankingContacts = [...Array(12)].map((_, index) => ({ + id: _mock.id(index), + name: _mock.fullName(index), + email: _mock.email(index), + avatarUrl: _mock.image.avatar(index), +})); + +export const _bankingRecentTransitions = [ + { + id: _mock.id(2), + name: _mock.fullName(2), + avatarUrl: _mock.image.avatar(2), + type: 'Income', + message: 'Receive money from', + category: 'Annette Black', + date: _mock.time(2), + status: 'progress', + amount: _mock.number.price(2), + }, + { + id: _mock.id(3), + name: _mock.fullName(3), + avatarUrl: _mock.image.avatar(3), + type: 'Expenses', + message: 'Payment for', + category: 'Courtney Henry', + date: _mock.time(3), + status: 'completed', + amount: _mock.number.price(3), + }, + { + id: _mock.id(4), + name: _mock.fullName(4), + avatarUrl: _mock.image.avatar(4), + type: 'Receive', + message: 'Payment for', + category: 'Theresa Webb', + date: _mock.time(4), + status: 'failed', + amount: _mock.number.price(4), + }, + { + id: _mock.id(5), + name: null, + avatarUrl: null, + type: 'Expenses', + message: 'Payment for', + category: 'Beauty & Health', + date: _mock.time(5), + status: 'completed', + amount: _mock.number.price(5), + }, + { + id: _mock.id(6), + name: null, + avatarUrl: null, + type: 'Expenses', + message: 'Payment for', + category: 'Books', + date: _mock.time(6), + status: 'progress', + amount: _mock.number.price(6), + }, +]; diff --git a/src/_mock/assets.ts b/src/_mock/assets.ts index 138cfc8d3..41cada26d 100644 --- a/src/_mock/assets.ts +++ b/src/_mock/assets.ts @@ -1,3 +1,417 @@ +// ---------------------------------------------------------------------- + +export const _id = [...Array(40)].map( + (_, index) => `e99f09a7-dd88-49d5-b1c8-1daf80c2d7b${index + 1}` +); + +export const _fullAddress = [ + '19034 Verna Unions Apt. 164 - Honolulu, RI / 87535', + '1147 Rohan Drive Suite 819 - Burlington, VT / 82021', + '18605 Thompson Circle Apt. 086 - Idaho Falls, WV / 50337', + '110 Lamar Station Apt. 730 - Hagerstown, OK / 49808', + '36901 Elmer Spurs Apt. 762 - Miramar, DE / 92836', + '2089 Runolfsson Harbors Suite 886 - Chapel Hill, TX / 32827', + '279 Karolann Ports Apt. 774 - Prescott Valley, WV / 53905', + '96607 Claire Square Suite 591 - St. Louis Park, HI / 40802', + '9388 Auer Station Suite 573 - Honolulu, AK / 98024', + '47665 Adaline Squares Suite 510 - Blacksburg, NE / 53515', + '989 Vernice Flats Apt. 183 - Billings, NV / 04147', + '91020 Wehner Locks Apt. 673 - Albany, WY / 68763', + '585 Candelario Pass Suite 090 - Columbus, LA / 25376', + '80988 Renner Crest Apt. 000 - Fargo, VA / 24266', + '28307 Shayne Pike Suite 523 - North Las Vegas, AZ / 28550', + '205 Farrell Highway Suite 333 - Rock Hill, OK / 63421', + '253 Kara Motorway Suite 821 - Manchester, SD / 09331', + '13663 Kiara Oval Suite 606 - Missoula, AR / 44478', + '8110 Claire Port Apt. 703 - Anchorage, TN / 01753', + '4642 Demetris Lane Suite 407 - Edmond, AZ / 60888', + '74794 Asha Flat Suite 890 - Lancaster, OR / 13466', + '8135 Keeling Pines Apt. 326 - Alexandria, MA / 89442', + '441 Gibson Shores Suite 247 - Pasco, NM / 60678', + '4373 Emelia Valley Suite 596 - Columbia, NM / 42586', +]; + +// ---------------------------------------------------------------------- + +export const _booleans = [ + true, + true, + true, + false, + false, + true, + false, + false, + false, + false, + true, + true, + true, + false, + false, + false, + true, + false, + false, + false, + true, + false, + false, + true, +]; + +// ---------------------------------------------------------------------- + +export const _emails = [ + 'nannie_abernathy70@yahoo.com', + 'ashlynn_ohara62@gmail.com', + 'milo.farrell@hotmail.com', + 'violet.ratke86@yahoo.com', + 'letha_lubowitz24@yahoo.com', + 'aditya_greenfelder31@gmail.com', + 'lenna_bergnaum27@hotmail.com', + 'luella.ryan33@gmail.com', + 'joana.simonis84@gmail.com', + 'marjolaine_white94@gmail.com', + 'vergie_block82@hotmail.com', + 'vito.hudson@hotmail.com', + 'tyrel_greenholt@gmail.com', + 'dwight.block85@yahoo.com', + 'mireya13@hotmail.com', + 'dasia_jenkins@hotmail.com', + 'benny89@yahoo.com', + 'dawn.goyette@gmail.com', + 'zella_hickle4@yahoo.com', + 'avery43@hotmail.com', + 'olen_legros@gmail.com', + 'jimmie.gerhold73@hotmail.com', + 'genevieve.powlowski@hotmail.com', + 'louie.kuphal39@gmail.com', +]; + +// ---------------------------------------------------------------------- + +export const _fullNames = [ + 'Jayvion Simon', + 'Lucian Obrien', + 'Deja Brady', + 'Harrison Stein', + 'Reece Chung', + 'Lainey Davidson', + 'Cristopher Cardenas', + 'Melanie Noble', + 'Chase Day', + 'Shawn Manning', + 'Soren Durham', + 'Cortez Herring', + 'Brycen Jimenez', + 'Giana Brandt', + 'Aspen Schmitt', + 'Colten Aguilar', + 'Angelique Morse', + 'Selina Boyer', + 'Lawson Bass', + 'Ariana Lang', + 'Amiah Pruitt', + 'Harold Mcgrath', + 'Esperanza Mcintyre', + 'Mireya Conner', +]; + +export const _firstNames = [ + 'Mossie', + 'David', + 'Ebba', + 'Chester', + 'Eula', + 'Jaren', + 'Boyd', + 'Brady', + 'Aida', + 'Anastasia', + 'Gregoria', + 'Julianne', + 'Ila', + 'Elyssa', + 'Lucio', + 'Lewis', + 'Jacinthe', + 'Molly', + 'Brown', + 'Fritz', + 'Keon', + 'Ella', + 'Ken', + 'Whitney', +]; + +export const _lastNames = [ + 'Carroll', + 'Simonis', + 'Yost', + 'Hand', + 'Emmerich', + 'Wilderman', + 'Howell', + 'Sporer', + 'Boehm', + 'Morar', + 'Koch', + 'Reynolds', + 'Padberg', + 'Watsica', + 'Upton', + 'Yundt', + 'Pfeffer', + 'Parker', + 'Zulauf', + 'Treutel', + 'McDermott', + 'McDermott', + 'Cruickshank', + 'Parisian', +]; + +// ---------------------------------------------------------------------- + +export const _prices = [ + 83.74, 97.14, 68.71, 85.21, 52.17, 25.18, 43.84, 60.98, 98.42, 53.37, 72.75, 56.61, 64.55, 77.32, + 60.62, 79.81, 93.68, 47.44, 76.24, 92.87, 72.91, 20.54, 94.25, 37.51, +]; + +export const _ratings = [ + 4.2, 3.7, 4.5, 3.5, 0.5, 3.0, 2.5, 2.8, 4.9, 3.6, 2.5, 1.7, 3.9, 2.8, 4.1, 4.5, 2.2, 3.2, 0.6, + 1.3, 3.8, 3.8, 3.8, 2.0, +]; + +export const _ages = [ + 30, 26, 59, 47, 29, 46, 18, 56, 39, 19, 45, 18, 46, 56, 38, 41, 44, 48, 32, 45, 42, 60, 33, 57, +]; + +export const _percents = [ + 10.1, 13.6, 28.2, 42.1, 37.2, 18.5, 40.1, 94.8, 91.4, 53.0, 25.4, 62.9, 86.6, 62.4, 35.4, 17.6, + 52.0, 6.8, 95.3, 26.6, 69.9, 92.1, 46.2, 85.6, +]; + +export const _nativeS = [ + 11, 10, 7, 10, 12, 5, 10, 1, 8, 8, 10, 11, 12, 8, 4, 11, 8, 9, 4, 9, 2, 6, 3, 7, +]; + +export const _nativeM = [ + 497, 763, 684, 451, 433, 463, 951, 194, 425, 435, 807, 521, 538, 839, 394, 269, 453, 821, 364, + 849, 804, 776, 263, 239, +]; + +export const _nativeL = [ + 9911, 1947, 9124, 6984, 8488, 2034, 3364, 8401, 8996, 5271, 8478, 1139, 8061, 3035, 6733, 3952, + 2405, 3127, 6843, 4672, 6995, 6053, 5192, 9686, +]; + +// ---------------------------------------------------------------------- + +export const _phoneNumbers = [ + '365-374-4961', + '904-966-2836', + '399-757-9909', + '692-767-2903', + '990-588-5716', + '955-439-2578', + '226-924-4058', + '552-917-1454', + '285-840-9338', + '306-269-2446', + '883-373-6253', + '476-509-8866', + '201-465-1954', + '538-295-9408', + '531-492-6028', + '981-699-7588', + '500-268-4826', + '205-952-3828', + '222-255-5190', + '408-439-8033', + '272-940-8266', + '812-685-8057', + '353-801-5212', + '606-285-8928', +]; + +// ---------------------------------------------------------------------- + +export const _roles = [ + 'HR Manager', + 'Data Analyst', + 'Legal Counsel', + 'UX/UI Designer', + 'Project Manager', + 'Account Manager', + 'Registered Nurse', + 'Business Analyst', + 'Creative Director', + 'Financial Planner', + 'Event Coordinator', + 'Marketing Director', + 'Software Developer', + 'Research Scientist', + 'Content Strategist', + 'Operations Manager', + 'Sales Representative', + 'Supply Chain Analyst', + 'Operations Coordinator', + 'Customer Service Associate', + 'Quality Assurance Specialist', + 'CEO', + 'CFO', + 'CTO', +]; + +// ---------------------------------------------------------------------- + +export const _postTitles = [ + '10 Essential Tips for Healthy Living', + 'The Ultimate Guide to Productivity Hacks', + 'Exploring the Hidden Gems of [Destination]', + 'How to Master the Art of Public Speaking', + 'The Future of Artificial Intelligence: Trends and Insights', + 'Delicious Recipes for a Vegan Diet', + "A Beginner's Guide to Investing in Stocks", + 'The Impact of Social Media on Society', + '10 Must-Visit Destinations for Adventure Travelers', + 'The Benefits of Mindfulness Meditation', + 'The Importance of Mental Health Awareness', + 'Building a Strong Personal Brand: Tips and Strategies', + '10 Effective Strategies for Digital Marketing Success', + 'Unveiling the Secrets of Successful Entrepreneurs', + 'The Rise of Remote Work and its Impact on the Workforce', + 'The Art of Landscape Photography: Techniques and Inspiration', + 'Understanding Blockchain Technology and its Potential Applications', + 'How to Create Engaging Content for Social Media', + 'The Role of Artificial Intelligence in Healthcare', + '10 Home Organization Hacks for a Clutter-Free Space', + 'Exploring the History and Culture of [City/Region]', + 'The Power of Positive Thinking: Transform Your Mindset', + 'The Influence of Music on Mood and Emotions', + 'Travel Photography Tips: Capturing Memories Around the World', +]; + +// ---------------------------------------------------------------------- + +export const _productNames = [ + 'Nike Air Force 1 NDESTRUKT', + 'Foundations Matte Flip Flop', + 'Nike Air Zoom Pegasus 37 A.I.R. Chaz Bear', + 'Arizona Soft Footbed Sandal', + 'Boston Soft Footbed Sandal', + 'Zoom Freak 2', + 'Gazelle Vintage low-top sneakers', + 'Jordan Delta', + 'Air Jordan XXXV PF', + 'Rod Laver low-top sneakers', + 'Kyrie 7 EP Sisterhood', + 'Pharrell Williams Human Race NMD sneakers', + 'Nike Blazer Low 77 Vintage', + 'ASMC Winter Boot Cold.Rdy', + 'ZX 8000 Lego sneakers', + 'Ultraboost 21 sneakers', + '2750 Cotu Classic Sneaker', + 'ZX 9000 A-ZX Series sneakers', + 'Madrid Big Buckle Sandal', + 'Chuck 70 Hi Sneaker', + 'Relaxed Adjustable Strap Slingback Sandal', + 'Superturf Adventure X Atmos', + 'Chuck Taylor All Star Lift Sneaker', + 'Run Star Hike Platform Sneaker', +]; + +// ---------------------------------------------------------------------- + +export const _tourNames = [ + 'Adventure Seekers Expedition', + 'Historic Heritage Tour', + 'Culinary Delights Exploration', + "Nature's Wonders Escapade", + 'Cultural Immersion Journey', + 'Wildlife Safari Expedition', + "Urban Explorer's City Tour", + 'Coastal Paradise Getaway', + 'Wine Tasting Experience', + 'Spiritual Retreat Tour', + 'Outdoor Adventure Trek', + 'Photography Expedition', + 'Music and Arts Discovery Tour', + 'Wellness and Yoga Retreat', + 'Hidden Gems Discovery Tour', + 'Volcano and Geothermal Exploration', + "Foodie's Gastronomic Tour", + 'Hiking and Camping Adventure', + 'Architecture and Design Tour', + 'Coastal Cruise and Island Hopping', + 'Scenic Train Ride Experience', + 'Historical Landmarks Expedition', + 'Surfing and Beach Adventure', + 'Nightlife and Entertainment Tour', +]; + +// ---------------------------------------------------------------------- + +export const _jobTitles = [ + 'Software Engineer', + 'Marketing Manager', + 'Financial Analyst', + 'Graphic Designer', + 'Sales Representative', + 'Project Manager', + 'Data Scientist', + 'Human Resources Coordinator', + 'Accountant', + 'Customer Service Representative', + 'Nurse', + 'Product Manager', + 'Operations Manager', + 'Social Media Specialist', + 'Business Development Executive', + 'Content Writer', + 'Web Developer', + 'Electrical Engineer', + 'Research Scientist', + 'Legal Assistant', + 'Chef', + 'Financial Planner', + 'Architect', + 'Event Planner', +]; + +// ---------------------------------------------------------------------- + +export const _companyNames = [ + 'Lueilwitz and Sons', + 'Gleichner, Mueller and Tromp', + 'Nikolaus - Leuschke', + 'Hegmann, Kreiger and Bayer', + 'Grimes Inc', + 'Durgan - Murazik', + 'Altenwerth, Medhurst and Roberts', + 'Raynor Group', + 'Mraz, Donnelly and Collins', + 'Padberg - Bailey', + 'Heidenreich, Stokes and Parker', + 'Pagac and Sons', + 'Rempel, Hand and Herzog', + 'Dare - Treutel', + 'Kihn, Marquardt and Crist', + 'Nolan - Kunde', + 'Wuckert Inc', + 'Dibbert Inc', + 'Goyette and Sons', + 'Feest Group', + 'Bosco and Sons', + 'Bartell - Kovacek', + 'Schimmel - Raynor', + 'Tremblay LLC', +]; + +// ---------------------------------------------------------------------- + export const _tags = [ 'Technology', 'Marketing', @@ -24,3 +438,90 @@ export const _tags = [ 'Selfcare', 'Writing', ]; + +// ---------------------------------------------------------------------- + +export const _taskNames = [ + 'Complete Project Proposal', + 'Conduct Market Research', + 'Design User Interface Mockups', + 'Develop Backend API', + 'Implement Authentication System', + 'Write Test Cases', + 'Perform Database Optimization', + 'Create Content Marketing Plan', + 'Update Website Copy', + 'Conduct A/B Testing', + 'Create Social Media Graphics', + 'Optimize Website Performance', + 'Review Competitor Websites', + 'Implement Payment Gateway Integration', + 'Conduct User Acceptance Testing', + 'Prepare Monthly Sales Report', + 'Enhance SEO Strategy', + 'Conduct Customer Satisfaction Survey', + 'Design Email Newsletter Template', + 'Monitor Server Logs for Errors', + 'Create Training Materials', + 'Plan and Execute Marketing Campaign', + 'Develop Mobile Application', + 'Coordinate Project Meetings', +]; + +// ---------------------------------------------------------------------- + +export const _sentences = [ + 'The sun slowly set over the horizon, painting the sky in vibrant hues of orange and pink.', + 'She eagerly opened the gift, her eyes sparkling with excitement.', + 'The old oak tree stood tall and majestic, its branches swaying gently in the breeze.', + 'The aroma of freshly brewed coffee filled the air, awakening my senses.', + 'The children giggled with joy as they ran through the sprinklers on a hot summer day.', + 'He carefully crafted a beautiful sculpture out of clay, his hands skillfully shaping the intricate details.', + 'The concert was a mesmerizing experience, with the music filling the venue and the crowd cheering in delight.', + 'The waves crashed against the shore, creating a soothing symphony of sound.', + 'The scent of blooming flowers wafted through the garden, creating a fragrant paradise.', + 'She gazed up at the night sky, marveling at the twinkling stars that dotted the darkness.', + 'The professor delivered a captivating lecture, engaging the students with thought-provoking ideas.', + 'The hiker trekked through the dense forest, guided by the soft glow of sunlight filtering through the trees.', + 'The delicate butterfly gracefully fluttered from flower to flower, sipping nectar with its slender proboscis.', + 'The aroma of freshly baked cookies filled the kitchen, tempting everyone with its irresistible scent.', + "The majestic waterfall cascaded down the rocks, creating a breathtaking display of nature's power.", + 'The actor delivered a powerful performance, moving the audience to tears with his emotional portrayal.', + 'The book transported me to a magical world, where imagination knew no bounds.', + 'The scent of rain filled the air as dark clouds gathered overhead, promising a refreshing downpour.', + 'The chef skillfully plated the dish, turning simple ingredients into a work of culinary art.', + 'The newborn baby let out a tiny cry, announcing its arrival to the world.', + 'The athlete sprinted across the finish line, arms raised in victory as the crowd erupted in applause.', + 'The ancient ruins stood as a testament to a civilization long gone, their grandeur still awe-inspiring.', + 'The artist dipped the brush into vibrant paint, bringing the canvas to life with bold strokes and vivid colors.', + 'The laughter of children echoed through the playground, filling the atmosphere with pure joy.', +]; + +// ---------------------------------------------------------------------- + +export const _descriptions = [ + `Occaecati est et illo quibusdam accusamus qui. Incidunt aut et molestiae ut facere aut. Est quidem iusto praesentium excepturi harum nihil tenetur facilis. Ut omnis voluptates nihil accusantium doloribus eaque debitis.`, + `Atque eaque ducimus minima distinctio velit. Laborum et veniam officiis. Delectus ex saepe hic id laboriosam officia. Odit nostrum qui illum saepe debitis ullam. Laudantium beatae modi fugit ut. Dolores consequatur beatae nihil voluptates rem maiores.`, + `Rerum eius velit dolores. Explicabo ad nemo quibusdam. Voluptatem eum suscipit et ipsum et consequatur aperiam quia. Rerum nulla sequi recusandae illum velit quia quas. Et error laborum maiores cupiditate occaecati.`, + `Et non omnis qui. Qui sunt deserunt dolorem aut velit cumque adipisci aut enim. Nihil quis quisquam nesciunt dicta nobis ab aperiam dolorem repellat. Voluptates non blanditiis. Error et tenetur iste soluta cupiditate ratione perspiciatis et. Quibusdam aliquid nam sunt et quisquam non esse.`, + `Nihil ea sunt facilis praesentium atque. Ab animi alias sequi molestias aut velit ea. Sed possimus eos. Et est aliquid est voluptatem.`, + `Non rerum modi. Accusamus voluptatem odit nihil in. Quidem et iusto numquam veniam culpa aperiam odio aut enim. Quae vel dolores. Pariatur est culpa veritatis aut dolorem.`, + `Est enim et sit non impedit aperiam cumque animi. Aut eius impedit saepe blanditiis. Totam molestias magnam minima fugiat.`, + `Unde a inventore et. Sed esse ut. Atque ducimus quibusdam fuga quas id qui fuga.`, + `Eaque natus adipisci soluta nostrum dolorem. Nesciunt ipsum molestias ut aliquid natus ut omnis qui fugiat. Dolor et rem. Ut neque voluptatem blanditiis quasi ullam deleniti.`, + `Nam et error exercitationem qui voluptate optio. Officia omnis qui accusantium ipsam qui. Quia sequi nulla perspiciatis optio vero omnis maxime omnis ipsum. Perspiciatis consequuntur asperiores veniam dolores.`, + `Perspiciatis nulla ut ut ut voluptates totam consectetur eligendi qui. Optio ut cum. Dolorum sapiente qui laborum. Impedit temporibus totam delectus nihil. Voluptatem corrupti rem.`, + `Distinctio omnis similique omnis eos. Repellat cumque rerum nisi. Reiciendis soluta non ut veniam temporibus. Accusantium et dolorem voluptas harum. Nemo eius voluptate dicta et hic nemo. Dolorem assumenda et beatae molestias sit quo mollitia quis consequatur.`, + `Sed ut mollitia tempore ipsam et illum doloribus ut. Occaecati ratione veritatis explicabo. Omnis nam omnis sunt placeat tempore accusantium placeat distinctio velit.`, + `Eum illo dicta et perspiciatis ut blanditiis eos sequi. Ea veritatis aut et voluptas aut. Laborum eos quia tempore a culpa.`, + `Aut quos quae dolores repudiandae similique perferendis perferendis earum laudantium. Facere placeat natus nobis. Eius vitae ullam dolorem.`, + `Vero dolorem et voluptatem fugit tempore a quam iure. Fuga consequatur corrupti sunt asperiores vitae. Libero totam repellendus animi debitis illum et sunt officia.`, + `Cupiditate illum officiis id molestiae. Numquam non molestiae aliquid et natus sed hic. Alias quia explicabo sed corrupti sint. Natus in et odio qui unde facilis quia. Est sit eius laboriosam aliquid non aperiam quia quo corporis.`, + `Et a ab. Optio aspernatur minus tempora amet vitae consectetur inventore cumque. Sed et omnis. Aspernatur a magnam.`, + `Ipsum omnis et. Quia ea et autem tempore consequuntur veniam dolorem officiis. Ipsa dicta et ut quidem quia doloremque. Sequi vitae doloremque temporibus. Deserunt incidunt id aperiam itaque natus. Earum sit eaque quas incidunt nihil.`, + `Quae consequatur reiciendis. Consequatur non optio. Eaque id placeat. Commodi quo officia aut repudiandae reiciendis tempore voluptatem et. Ut accusamus qui itaque maxime aliquam. Fugit ut animi molestiae porro maiores.`, + `Modi hic asperiores ab cumque quam est aut. Voluptas atque quos molestias. Ut excepturi distinctio ipsam aspernatur sit.`, + `Sunt totam facilis. Quam commodi voluptatem veniam. Tempora deleniti itaque fugit nihil voluptas.`, + `Ipsam aliquam velit nobis repellendus officiis aut deserunt id et. Nihil sunt aut dolores aut. Dolores est ipsa quia et laborum quidem laborum accusamus id. Facilis odit quod hic laudantium saepe omnis nisi in sint. Sed cupiditate possimus id.`, + `Magnam non eveniet optio optio ut aliquid atque. Velit libero aspernatur quis laborum consequatur laudantium. Tempora facere optio fugit accusantium ut. Omnis aspernatur reprehenderit autem esse ut ut enim voluptatibus.`, +]; diff --git a/src/_mock/index.ts b/src/_mock/index.ts index df6446646..985eb5f06 100644 --- a/src/_mock/index.ts +++ b/src/_mock/index.ts @@ -1 +1,2 @@ export * from './assets'; +export * from './_overview'; diff --git a/src/assets/illustrations/booking-illustration.tsx b/src/assets/illustrations/booking-illustration.tsx new file mode 100644 index 000000000..abb163f42 --- /dev/null +++ b/src/assets/illustrations/booking-illustration.tsx @@ -0,0 +1,307 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function BookingIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHTER = theme.palette.primary.lighter; + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(BookingIllustration); diff --git a/src/assets/illustrations/check-in-illustration.tsx b/src/assets/illustrations/check-in-illustration.tsx new file mode 100644 index 000000000..232c2e845 --- /dev/null +++ b/src/assets/illustrations/check-in-illustration.tsx @@ -0,0 +1,96 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function CheckInIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHTER = theme.palette.primary.lighter; + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(CheckInIllustration); diff --git a/src/assets/illustrations/check-out-illustration.tsx b/src/assets/illustrations/check-out-illustration.tsx new file mode 100644 index 000000000..b124b5a53 --- /dev/null +++ b/src/assets/illustrations/check-out-illustration.tsx @@ -0,0 +1,69 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; + +// ---------------------------------------------------------------------- + +function CheckoutIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_MAIN = theme.palette.primary.main; + + const PRIMARY_DARK = theme.palette.primary.dark; + + const PRIMARY_DARKER = theme.palette.primary.darker; + + return ( + + + + + + + + + + + + + + + ); +} + +export default memo(CheckoutIllustration); diff --git a/src/assets/illustrations/index.ts b/src/assets/illustrations/index.ts index 9d3358458..73ee0b5cc 100644 --- a/src/assets/illustrations/index.ts +++ b/src/assets/illustrations/index.ts @@ -1,3 +1,6 @@ +export { default as BookingIllustration } from './booking-illustration'; +export { default as CheckInIllustration } from './check-in-illustration'; +export { default as CheckoutIllustration } from './check-out-illustration'; export { default as UploadIllustration } from './upload-illustration'; export { default as ForbiddenIllustration } from './forbidden-illustration'; export { default as SeverErrorIllustration } from './sever-error-illustration'; diff --git a/src/components/chart/chart.tsx b/src/components/chart/chart.tsx new file mode 100644 index 000000000..b50b9c85b --- /dev/null +++ b/src/components/chart/chart.tsx @@ -0,0 +1,67 @@ +import { memo } from 'react'; +import ApexChart from 'react-apexcharts'; +// @mui +import { alpha, styled } from '@mui/material/styles'; +// theme +import { bgBlur } from '@src/theme/css'; + +// ---------------------------------------------------------------------- + +const Chart = styled(ApexChart)(({ theme }) => ({ + '& .apexcharts-canvas': { + // Tooltip + '& .apexcharts-tooltip': { + ...bgBlur({ + color: theme.palette.background.default, + }), + color: theme.palette.text.primary, + boxShadow: theme.customShadows.dropdown, + borderRadius: theme.shape.borderRadius * 1.25, + '&.apexcharts-theme-light': { + borderColor: 'transparent', + ...bgBlur({ + color: theme.palette.background.default, + }), + }, + }, + '& .apexcharts-xaxistooltip': { + ...bgBlur({ + color: theme.palette.background.default, + }), + borderColor: 'transparent', + color: theme.palette.text.primary, + boxShadow: theme.customShadows.dropdown, + borderRadius: theme.shape.borderRadius * 1.25, + '&:before': { + borderBottomColor: alpha(theme.palette.grey[500], 0.24), + }, + '&:after': { + borderBottomColor: alpha(theme.palette.background.default, 0.8), + }, + }, + '& .apexcharts-tooltip-title': { + textAlign: 'center', + fontWeight: theme.typography.fontWeightBold, + backgroundColor: alpha(theme.palette.grey[500], 0.08), + color: theme.palette.text[theme.palette.mode === 'light' ? 'secondary' : 'primary'], + }, + + // LEGEND + '& .apexcharts-legend': { + padding: 0, + }, + '& .apexcharts-legend-series': { + display: 'inline-flex !important', + alignItems: 'center', + }, + '& .apexcharts-legend-marker': { + marginRight: 8, + }, + '& .apexcharts-legend-text': { + lineHeight: '18px', + textTransform: 'capitalize', + }, + }, +})); + +export default memo(Chart); diff --git a/src/components/chart/index.ts b/src/components/chart/index.ts new file mode 100644 index 000000000..046920972 --- /dev/null +++ b/src/components/chart/index.ts @@ -0,0 +1,5 @@ +// ---------------------------------------------------------------------- + +export { default as useChart } from './use-chart'; + +export { default } from './chart'; diff --git a/src/components/chart/use-chart.ts b/src/components/chart/use-chart.ts new file mode 100644 index 000000000..e8e9475e5 --- /dev/null +++ b/src/components/chart/use-chart.ts @@ -0,0 +1,213 @@ +import merge from 'lodash/merge'; +import { ApexOptions } from 'apexcharts'; +// @mui +import { useTheme, alpha } from '@mui/material/styles'; + +// ---------------------------------------------------------------------- + +export default function useChart(options?: ApexOptions) { + const theme = useTheme(); + + const LABEL_TOTAL = { + show: true, + label: 'Total', + color: theme.palette.text.secondary, + fontSize: theme.typography.subtitle2.fontSize, + fontWeight: theme.typography.subtitle2.fontWeight, + lineHeight: theme.typography.subtitle2.lineHeight, + }; + + const LABEL_VALUE = { + offsetY: 8, + color: theme.palette.text.primary, + fontSize: theme.typography.h3.fontSize, + fontWeight: theme.typography.h3.fontWeight, + lineHeight: theme.typography.h3.lineHeight, + }; + + const baseOptions = { + // Colors + colors: [ + theme.palette.primary.main, + theme.palette.warning.main, + theme.palette.info.main, + theme.palette.error.main, + theme.palette.success.main, + theme.palette.warning.dark, + theme.palette.success.darker, + theme.palette.info.dark, + theme.palette.info.darker, + ], + + // Chart + chart: { + toolbar: { show: false }, + zoom: { enabled: false }, + // animations: { enabled: false }, + foreColor: theme.palette.text.disabled, + fontFamily: theme.typography.fontFamily, + }, + + // States + states: { + hover: { + filter: { + type: 'lighten', + value: 0.04, + }, + }, + active: { + filter: { + type: 'darken', + value: 0.88, + }, + }, + }, + + // Fill + fill: { + opacity: 1, + gradient: { + type: 'vertical', + shadeIntensity: 0, + opacityFrom: 0.4, + opacityTo: 0, + stops: [0, 100], + }, + }, + + // Datalabels + dataLabels: { + enabled: false, + }, + + // Stroke + stroke: { + width: 3, + curve: 'smooth', + lineCap: 'round', + }, + + // Grid + grid: { + strokeDashArray: 3, + borderColor: theme.palette.divider, + xaxis: { + lines: { + show: false, + }, + }, + }, + + // Xaxis + xaxis: { + axisBorder: { show: false }, + axisTicks: { show: false }, + }, + + // Markers + markers: { + size: 0, + strokeColors: theme.palette.background.paper, + }, + + // Tooltip + tooltip: { + theme: false, + x: { + show: true, + }, + }, + + // Legend + legend: { + show: true, + fontSize: 13, + position: 'top', + horizontalAlign: 'right', + markers: { + radius: 12, + }, + fontWeight: 500, + itemMargin: { + horizontal: 8, + }, + labels: { + colors: theme.palette.text.primary, + }, + }, + + // plotOptions + plotOptions: { + // Bar + bar: { + borderRadius: 4, + columnWidth: '28%', + borderRadiusApplication: 'end', + borderRadiusWhenStacked: 'last', + }, + + // Pie + Donut + pie: { + donut: { + labels: { + show: true, + value: LABEL_VALUE, + total: LABEL_TOTAL, + }, + }, + }, + + // Radialbar + radialBar: { + track: { + strokeWidth: '100%', + background: alpha(theme.palette.grey[500], 0.16), + }, + dataLabels: { + value: LABEL_VALUE, + total: LABEL_TOTAL, + }, + }, + + // Radar + radar: { + polygons: { + fill: { colors: ['transparent'] }, + strokeColors: theme.palette.divider, + connectorColors: theme.palette.divider, + }, + }, + + // polarArea + polarArea: { + rings: { + strokeColor: theme.palette.divider, + }, + spokes: { + connectorColors: theme.palette.divider, + }, + }, + }, + + // Responsive + responsive: [ + { + // sm + breakpoint: theme.breakpoints.values.sm, + options: { + plotOptions: { bar: { columnWidth: '40%' } }, + }, + }, + { + // md + breakpoint: theme.breakpoints.values.md, + options: { + plotOptions: { bar: { columnWidth: '32%' } }, + }, + }, + ], + }; + + return merge(baseOptions, options); +} diff --git a/src/components/table/index.ts b/src/components/table/index.ts new file mode 100644 index 000000000..9a470e23a --- /dev/null +++ b/src/components/table/index.ts @@ -0,0 +1,11 @@ +export * from './types'; +export * from './utils'; + +export { default as useTable } from './use-table'; + +export { default as TableNoData } from './table-no-data'; +export { default as TableSkeleton } from './table-skeleton'; +export { default as TableEmptyRows } from './table-empty-rows'; +export { default as TableHeadCustom } from './table-head-custom'; +export { default as TableSelectedAction } from './table-selected-action'; +export { default as TablePaginationCustom } from './table-pagination-custom'; diff --git a/src/components/table/table-empty-rows.tsx b/src/components/table/table-empty-rows.tsx new file mode 100644 index 000000000..87f6781b8 --- /dev/null +++ b/src/components/table/table-empty-rows.tsx @@ -0,0 +1,28 @@ +// @mui +import TableRow from '@mui/material/TableRow'; +import TableCell from '@mui/material/TableCell'; + +// ---------------------------------------------------------------------- + +type Props = { + height?: number; + emptyRows: number; +}; + +export default function TableEmptyRows({ emptyRows, height }: Props) { + if (!emptyRows) { + return null; + } + + return ( + + + + ); +} diff --git a/src/components/table/table-head-custom.tsx b/src/components/table/table-head-custom.tsx new file mode 100644 index 000000000..52b4a4580 --- /dev/null +++ b/src/components/table/table-head-custom.tsx @@ -0,0 +1,92 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import TableRow from '@mui/material/TableRow'; +import Checkbox from '@mui/material/Checkbox'; +import TableHead from '@mui/material/TableHead'; +import TableCell from '@mui/material/TableCell'; +import TableSortLabel from '@mui/material/TableSortLabel'; + +// ---------------------------------------------------------------------- + +const visuallyHidden = { + border: 0, + margin: -1, + padding: 0, + width: '1px', + height: '1px', + overflow: 'hidden', + position: 'absolute', + whiteSpace: 'nowrap', + clip: 'rect(0 0 0 0)', +} as const; + +// ---------------------------------------------------------------------- + +type Props = { + order?: 'asc' | 'desc'; + orderBy?: string; + headLabel: any[]; + rowCount?: number; + numSelected?: number; + onSort?: (id: string) => void; + onSelectAllRows?: (checked: boolean) => void; + sx?: SxProps; +}; + +export default function TableHeadCustom({ + order, + orderBy, + rowCount = 0, + headLabel, + numSelected = 0, + onSort, + onSelectAllRows, + sx, +}: Props) { + return ( + + + {onSelectAllRows && ( + + ) => + onSelectAllRows(event.target.checked) + } + /> + + )} + + {headLabel.map((headCell) => ( + + {onSort ? ( + onSort(headCell.id)} + > + {headCell.label} + + {orderBy === headCell.id ? ( + + {order === 'desc' ? 'sorted descending' : 'sorted ascending'} + + ) : null} + + ) : ( + headCell.label + )} + + ))} + + + ); +} diff --git a/src/components/table/table-no-data.tsx b/src/components/table/table-no-data.tsx new file mode 100644 index 000000000..51ae5941b --- /dev/null +++ b/src/components/table/table-no-data.tsx @@ -0,0 +1,34 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import TableRow from '@mui/material/TableRow'; +import TableCell from '@mui/material/TableCell'; +// +import EmptyContent from '../empty-content'; + +// ---------------------------------------------------------------------- + +type Props = { + notFound: boolean; + sx?: SxProps; +}; + +export default function TableNoData({ notFound, sx }: Props) { + return ( + + {notFound ? ( + + + + ) : ( + + )} + + ); +} diff --git a/src/components/table/table-pagination-custom.tsx b/src/components/table/table-pagination-custom.tsx new file mode 100644 index 000000000..4a8f0c1b4 --- /dev/null +++ b/src/components/table/table-pagination-custom.tsx @@ -0,0 +1,50 @@ +// @mui +import { Theme, SxProps } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Switch from '@mui/material/Switch'; +import FormControlLabel from '@mui/material/FormControlLabel'; +import TablePagination, { TablePaginationProps } from '@mui/material/TablePagination'; + +// ---------------------------------------------------------------------- + +type Props = { + dense?: boolean; + onChangeDense?: (event: React.ChangeEvent) => void; + sx?: SxProps; +}; + +export default function TablePaginationCustom({ + dense, + onChangeDense, + rowsPerPageOptions = [5, 10, 25], + sx, + ...other +}: Props & TablePaginationProps) { + return ( + + + + {onChangeDense && ( + } + sx={{ + pl: 2, + py: 1.5, + top: 0, + position: { + sm: 'absolute', + }, + }} + /> + )} + + ); +} diff --git a/src/components/table/table-selected-action.tsx b/src/components/table/table-selected-action.tsx new file mode 100644 index 000000000..21fb0bfb0 --- /dev/null +++ b/src/components/table/table-selected-action.tsx @@ -0,0 +1,75 @@ +// @mui +import Checkbox from '@mui/material/Checkbox'; +import Typography from '@mui/material/Typography'; +import Stack, { StackProps } from '@mui/material/Stack'; + +// ---------------------------------------------------------------------- + +interface Props extends StackProps { + dense?: boolean; + action?: React.ReactNode; + rowCount: number; + numSelected: number; + onSelectAllRows: (checked: boolean) => void; +} + +export default function TableSelectedAction({ + dense, + action, + rowCount, + numSelected, + onSelectAllRows, + sx, + ...other +}: Props) { + if (!numSelected) { + return null; + } + + return ( + + ) => + onSelectAllRows(event.target.checked) + } + /> + + + {numSelected} selected + + + {action && action} + + ); +} diff --git a/src/components/table/table-skeleton.tsx b/src/components/table/table-skeleton.tsx new file mode 100644 index 000000000..b8be83c9b --- /dev/null +++ b/src/components/table/table-skeleton.tsx @@ -0,0 +1,24 @@ +// @mui +import Stack from '@mui/material/Stack'; +import Skeleton from '@mui/material/Skeleton'; +import TableCell from '@mui/material/TableCell'; +import TableRow, { TableRowProps } from '@mui/material/TableRow'; + +// ---------------------------------------------------------------------- + +export default function TableSkeleton({ ...other }: TableRowProps) { + return ( + + + + + + + + + + + + + ); +} diff --git a/src/components/table/types.ts b/src/components/table/types.ts new file mode 100644 index 000000000..c92484785 --- /dev/null +++ b/src/components/table/types.ts @@ -0,0 +1,36 @@ +// ---------------------------------------------------------------------- + +export type TableProps = { + dense: boolean; + page: number; + rowsPerPage: number; + order: 'asc' | 'desc'; + orderBy: string; + // + selected: string[]; + onSelectRow: (id: string) => void; + onSelectAllRows: (checked: boolean, newSelecteds: string[]) => void; + // + onResetPage: VoidFunction; + onSort: (id: string) => void; + onChangePage: (event: unknown, newPage: number) => void; + onChangeRowsPerPage: (event: React.ChangeEvent) => void; + onChangeDense: (event: React.ChangeEvent) => void; + onUpdatePageDeleteRow: (totalRowsInPage: number) => void; + onUpdatePageDeleteRows: ({ + totalRows, + totalRowsInPage, + totalRowsFiltered, + }: { + totalRows: number; + totalRowsInPage: number; + totalRowsFiltered: number; + }) => void; + // + setPage: React.Dispatch>; + setDense: React.Dispatch>; + setOrder: React.Dispatch>; + setOrderBy: React.Dispatch>; + setSelected: React.Dispatch>; + setRowsPerPage: React.Dispatch>; +}; diff --git a/src/components/table/use-table.ts b/src/components/table/use-table.ts new file mode 100644 index 000000000..6b91f64f1 --- /dev/null +++ b/src/components/table/use-table.ts @@ -0,0 +1,144 @@ +import { useState, useCallback } from 'react'; +// +import { TableProps } from './types'; + +// ---------------------------------------------------------------------- + +type ReturnType = TableProps; + +export type UseTableProps = { + defaultDense?: boolean; + defaultOrder?: 'asc' | 'desc'; + defaultOrderBy?: string; + defaultSelected?: string[]; + defaultRowsPerPage?: number; + defaultCurrentPage?: number; +}; + +export default function useTable(props?: UseTableProps): ReturnType { + const [dense, setDense] = useState(!!props?.defaultDense); + + const [page, setPage] = useState(props?.defaultCurrentPage || 0); + + const [orderBy, setOrderBy] = useState(props?.defaultOrderBy || 'name'); + + const [rowsPerPage, setRowsPerPage] = useState(props?.defaultRowsPerPage || 5); + + const [order, setOrder] = useState<'asc' | 'desc'>(props?.defaultOrder || 'asc'); + + const [selected, setSelected] = useState(props?.defaultSelected || []); + + const onSort = useCallback( + (id: string) => { + const isAsc = orderBy === id && order === 'asc'; + if (id !== '') { + setOrder(isAsc ? 'desc' : 'asc'); + setOrderBy(id); + } + }, + [order, orderBy] + ); + + const onSelectRow = useCallback( + (inputValue: string) => { + const newSelected = selected.includes(inputValue) + ? selected.filter((value) => value !== inputValue) + : [...selected, inputValue]; + + setSelected(newSelected); + }, + [selected] + ); + + const onChangeRowsPerPage = useCallback((event: React.ChangeEvent) => { + setPage(0); + setRowsPerPage(parseInt(event.target.value, 10)); + }, []); + + const onChangeDense = useCallback((event: React.ChangeEvent) => { + setDense(event.target.checked); + }, []); + + const onSelectAllRows = useCallback((checked: boolean, inputValue: string[]) => { + if (checked) { + setSelected(inputValue); + return; + } + setSelected([]); + }, []); + + const onChangePage = useCallback((event: unknown, newPage: number) => { + setPage(newPage); + }, []); + + const onResetPage = useCallback(() => { + setPage(0); + }, []); + + const onUpdatePageDeleteRow = useCallback( + (totalRowsInPage: number) => { + setSelected([]); + if (page) { + if (totalRowsInPage < 2) { + setPage(page - 1); + } + } + }, + [page] + ); + + const onUpdatePageDeleteRows = useCallback( + ({ + totalRows, + totalRowsInPage, + totalRowsFiltered, + }: { + totalRows: number; + totalRowsInPage: number; + totalRowsFiltered: number; + }) => { + const totalSelected = selected.length; + + setSelected([]); + + if (page) { + if (totalSelected === totalRowsInPage) { + setPage(page - 1); + } else if (totalSelected === totalRowsFiltered) { + setPage(0); + } else if (totalSelected > totalRowsInPage) { + const newPage = Math.ceil((totalRows - totalSelected) / rowsPerPage) - 1; + setPage(newPage); + } + } + }, + [page, rowsPerPage, selected.length] + ); + + return { + dense, + order, + page, + orderBy, + rowsPerPage, + // + selected, + onSelectRow, + onSelectAllRows, + // + onSort, + onChangePage, + onChangeDense, + onResetPage, + onChangeRowsPerPage, + onUpdatePageDeleteRow, + onUpdatePageDeleteRows, + // + setPage, + setDense, + setOrder, + setOrderBy, + setSelected, + setRowsPerPage, + }; +} diff --git a/src/components/table/utils.ts b/src/components/table/utils.ts new file mode 100644 index 000000000..08d28132d --- /dev/null +++ b/src/components/table/utils.ts @@ -0,0 +1,30 @@ +// ---------------------------------------------------------------------- + +export function emptyRows(page: number, rowsPerPage: number, arrayLength: number) { + return page ? Math.max(0, (1 + page) * rowsPerPage - arrayLength) : 0; +} + +function descendingComparator(a: T, b: T, orderBy: keyof T) { + if (a[orderBy] === null) { + return 1; + } + if (b[orderBy] === null) { + return -1; + } + if (b[orderBy] < a[orderBy]) { + return -1; + } + if (b[orderBy] > a[orderBy]) { + return 1; + } + return 0; +} + +export function getComparator( + order: 'asc' | 'desc', + orderBy: Key +): (a: { [key in Key]: number | string }, b: { [key in Key]: number | string }) => number { + return order === 'desc' + ? (a, b) => descendingComparator(a, b, orderBy) + : (a, b) => -descendingComparator(a, b, orderBy); +} diff --git a/src/pages/dashboard/finance.tsx b/src/pages/dashboard/finance.tsx index e0ad49026..9cac800a8 100644 --- a/src/pages/dashboard/finance.tsx +++ b/src/pages/dashboard/finance.tsx @@ -1,6 +1,8 @@ import { Helmet } from 'react-helmet-async'; -import BlankView from '../../sections/blank/view'; -import ComingSoonView from '../../sections/coming-soon/view'; +import OverviewBankingView from "@src/sections/finance"; +import Header from "@src/layouts/dashboard/header.tsx"; +import HeaderContent from "@src/layouts/dashboard/header-content.tsx"; + // ---------------------------------------------------------------------- @@ -11,9 +13,10 @@ export default function OverviewBankingPage() { WatchIt | Finance - - - +
+ +
+ ); } diff --git a/src/sections/finance/components/banking-balance-statistics.tsx b/src/sections/finance/components/banking-balance-statistics.tsx new file mode 100644 index 000000000..8d2e1bba7 --- /dev/null +++ b/src/sections/finance/components/banking-balance-statistics.tsx @@ -0,0 +1,117 @@ +import { ApexOptions } from 'apexcharts'; +import { useState, useCallback } from 'react'; +// @mui +import Box from '@mui/material/Box'; +import MenuItem from '@mui/material/MenuItem'; +import ButtonBase from '@mui/material/ButtonBase'; +import CardHeader from '@mui/material/CardHeader'; +import Card, { CardProps } from '@mui/material/Card'; +// components +import Iconify from '@src/components/iconify'; +import Chart, { useChart } from '@src/components/chart'; +import CustomPopover, { usePopover } from '@src/components/custom-popover'; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title?: string; + subheader?: string; + chart: { + categories?: string[]; + colors?: string[]; + series: { + type: string; + data: { + name: string; + data: number[]; + }[]; + }[]; + options?: ApexOptions; + }; +} + +export default function BankingBalanceStatistics({ title, subheader, chart, ...other }: Props) { + const { categories, colors, series, options } = chart; + + const popover = usePopover(); + + const [seriesData, setSeriesData] = useState('Year'); + + const chartOptions = useChart({ + colors, + stroke: { + show: true, + width: 2, + colors: ['transparent'], + }, + xaxis: { + categories, + }, + tooltip: { + y: { + formatter: (value: number) => `$${value}`, + }, + }, + ...options, + }); + + const handleChangeSeries = useCallback( + (newValue: string) => { + popover.onClose(); + setSeriesData(newValue); + }, + [popover] + ); + + return ( + <> + + + {seriesData} + + + + } + /> + + {series.map((item) => ( + + {item.type === seriesData && ( + + )} + + ))} + + + + {series.map((option) => ( + handleChangeSeries(option.type)} + > + {option.type} + + ))} + + + ); +} diff --git a/src/sections/finance/components/banking-contacts.tsx b/src/sections/finance/components/banking-contacts.tsx new file mode 100644 index 000000000..37341d599 --- /dev/null +++ b/src/sections/finance/components/banking-contacts.tsx @@ -0,0 +1,61 @@ +// @mui +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import Tooltip from '@mui/material/Tooltip'; +import IconButton from '@mui/material/IconButton'; +import CardHeader from '@mui/material/CardHeader'; +import Card, { CardProps } from '@mui/material/Card'; +import ListItemText from '@mui/material/ListItemText'; +// components +import Iconify from '@src/components/iconify'; +import {Profile} from "@lens-protocol/api-bindings"; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title?: string; + subheader?: string; + list: Profile[]; +} + +export default function BankingContacts({ title, subheader, list, ...other }: Props) { + return ( + + } + > + View All + + } + /> + + + {list.map((profile) => ( + + + + + + + + + + + + ))} + + + ); +} diff --git a/src/sections/finance/components/banking-current-balance.tsx b/src/sections/finance/components/banking-current-balance.tsx new file mode 100644 index 000000000..c787e22fb --- /dev/null +++ b/src/sections/finance/components/banking-current-balance.tsx @@ -0,0 +1,201 @@ +import { useCallback } from 'react'; +// @mui +import { Theme, useTheme, alpha, SxProps } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import MenuItem from '@mui/material/MenuItem'; +import IconButton from '@mui/material/IconButton'; +import Typography from '@mui/material/Typography'; +// theme +import { bgGradient } from '@src/theme/css'; +// utils +import { fCurrency } from '@src/utils/format-number'; +// hooks +import { useBoolean } from '@src/hooks/use-boolean'; +// components +import Iconify from '@src/components/iconify'; +import CustomPopover, { usePopover } from '@src/components/custom-popover'; +import Carousel, { CarouselDots, useCarousel } from '@src/components/carousel'; + +// ---------------------------------------------------------------------- + +type ItemProps = { + id: string; + cardType: string; + balance: number; + cardHolder: string; + cardNumber: string; + cardValid: string; +}; + +type Props = { + list: ItemProps[]; + sx?: SxProps; +}; + +export default function BankingCurrentBalance({ list, sx }: Props) { + const theme = useTheme(); + + const carousel = useCarousel({ + fade: true, + speed: 100, + ...CarouselDots({ + sx: { + right: 16, + bottom: 16, + position: 'absolute', + color: 'primary.light', + }, + }), + }); + + return ( + div': { + height: 1, + }, + '&:before, &:after': { + left: 0, + mx: 2.5, + right: 0, + zIndex: -2, + height: 200, + bottom: -16, + content: "''", + opacity: 0.16, + borderRadius: 2, + bgcolor: 'grey.500', + position: 'absolute', + }, + '&:after': { + mx: 1, + bottom: -8, + opacity: 0.24, + }, + ...sx, + }} + > + + {list.map((card) => ( + + ))} + + + ); +} + +// ---------------------------------------------------------------------- + +type CardItemProps = { + card: ItemProps; +}; + +function CardItem({ card }: CardItemProps) { + const { id, cardType, balance, cardHolder, cardNumber, cardValid } = card; + + const currency = useBoolean(); + + const popover = usePopover(); + + const handleDelete = useCallback(() => { + popover.onClose(); + console.info('DELETE', id); + }, [id, popover]); + + const handleEdit = useCallback(() => { + popover.onClose(); + console.info('EDIT', id); + }, [id, popover]); + + return ( + <> + + + + + +
+ + Current Balance + + + + + {currency.value ? '********' : fCurrency(balance)} + + + + + + +
+ + + + {cardType === 'mastercard' && } + {cardType === 'visa' && } + + {cardNumber} + + + + + Card Holder + {cardHolder} + + + Valid Dates + {cardValid} + + +
+ + + + + Delete + + + + + Edit + + + + ); +} diff --git a/src/sections/finance/components/banking-invite-friends.tsx b/src/sections/finance/components/banking-invite-friends.tsx new file mode 100644 index 000000000..e868f3333 --- /dev/null +++ b/src/sections/finance/components/banking-invite-friends.tsx @@ -0,0 +1,84 @@ +// @mui +import { useTheme } from '@mui/material/styles'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import InputBase from '@mui/material/InputBase'; +import Box, { BoxProps } from '@mui/material/Box'; +// theme +import { bgGradient } from '@src/theme/css'; + +// ---------------------------------------------------------------------- + +interface Props extends BoxProps { + img?: string; + title?: string; + price?: string; + description?: string; +} + +export default function BankingInviteFriends({ + img, + price, + title, + description, + sx, + ...other +}: Props) { + const theme = useTheme(); + + return ( + + + + + + {title} + {price} + + + {description} + + + Invite + + } + sx={{ + pl: 1.5, + height: 40, + borderRadius: 1, + color: 'primary.main', + bgcolor: 'common.white', + }} + /> + + + ); +} diff --git a/src/sections/finance/components/banking-quick-transfer.tsx b/src/sections/finance/components/banking-quick-transfer.tsx new file mode 100644 index 000000000..44c5c8f86 --- /dev/null +++ b/src/sections/finance/components/banking-quick-transfer.tsx @@ -0,0 +1,400 @@ +import React, { useState, useEffect, useCallback } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import Slider from '@mui/material/Slider'; +import Tooltip from '@mui/material/Tooltip'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import CardHeader from '@mui/material/CardHeader'; +import Typography from '@mui/material/Typography'; +import DialogTitle from '@mui/material/DialogTitle'; +import { CardProps } from '@mui/material/Card'; +import ListItemText from '@mui/material/ListItemText'; +import DialogActions from '@mui/material/DialogActions'; +import Dialog, { DialogProps } from '@mui/material/Dialog'; +import Input, { InputProps, inputClasses } from '@mui/material/Input'; +// hooks +import { useBoolean } from '@src/hooks/use-boolean'; +// components +import Iconify from '@src/components/iconify'; +import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; +import {useSelector} from "react-redux"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import {Profile} from "@lens-protocol/api-bindings"; + +// ---------------------------------------------------------------------- + +const STEP = 50; + +const MIN_AMOUNT = 0; + +const AVATAR_SIZE = 40; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title?: string; + subheader?: string; + list: Profile[] | undefined; +} + +export default function BankingQuickTransfer({ title, subheader,sx, list, ...other }: Props) { + const theme = useTheme(); + + const balance = useSelector((state: any) => state.auth.balance); + + const MAX_AMOUNT = balance; + + + + + const carousel = useCarousel({ + centerMode: true, + swipeToSlide: true, + focusOnSelect: true, + centerPadding: '0px', + // @ts-ignore + slidesToShow: list?.length > 7 ? 7 : list?.length ?? 1, + responsive: [ + { + // Down 1600 + breakpoint: 1600, + settings: { + slidesToShow: 5, + }, + }, + { + // Down 1400 + breakpoint: 1400, + settings: { + slidesToShow: 3, + }, + }, + { + // Down 900 + breakpoint: theme.breakpoints.values.md, + settings: { + slidesToShow: 5, + }, + }, + { + // Down 400 + breakpoint: 400, + settings: { + slidesToShow: 3, + }, + }, + ], + }); + + const [autoWidth, setAutoWidth] = useState(24); + + const [amount, setAmount] = useState(0); + + const confirm = useBoolean(); + + const getContactInfo = list?.find((_, index) => index === carousel.currentIndex); + + useEffect(() => { + if (amount) { + handleAutoWidth(); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [amount]); + + + + + const handleAutoWidth = useCallback(() => { + const getNumberLength = amount.toString().length; + setAutoWidth(getNumberLength * 24); + }, [amount]); + + const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { + setAmount(newValue as number); + }, []); + + const handleChangeInput = useCallback((_event: React.ChangeEvent) => { + setAmount(Number(_event.target.value)); + }, []); + + const handleBlur = useCallback(() => { + if (amount < 0) { + setAmount(0); + } else if (amount > MAX_AMOUNT) { + setAmount(MAX_AMOUNT); + } + }, [amount]); + + const renderCarousel = ( + + + + {list?.map((profile, index) => ( + + + + + + ))} + + + + ); + + const renderInput = ( + + + insert amount + + + + + + + + + Your Balance + + MMC {balance} + + + + + ); + + return ( + <> + + + + + + + Recent + + + + + + {renderCarousel} + + {renderInput} + + + + + + ); +} + +// ---------------------------------------------------------------------- + +interface InputAmountProps extends InputProps { + autoWidth: number; + max: number; + amount: number | number[]; +} + +function InputAmount({ autoWidth, amount, onBlur, onChange, max, sx, ...other }: InputAmountProps) { + return ( + + MMC + + + + ); +} + +// ---------------------------------------------------------------------- + +type TConfirmTransferDialogProps = InputAmountProps & DialogProps; + +interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { + contactInfo?: { + id: string; + ownedBy: {address: string} + metadata: { + displayName: string; + picture: { + optimized: { + uri: string; + }; + }; + }; + + }; + onClose: VoidFunction; +} + +function ConfirmTransferDialog({ + open, + amount, + autoWidth, + contactInfo, + max, + onClose, + onBlur, + onChange, +}: ConfirmTransferDialogProps) { + return ( + + Transfer to + + + + + + + + + + + + + + + + + + + + ); +} diff --git a/src/sections/finance/components/banking-recent-transitions.tsx b/src/sections/finance/components/banking-recent-transitions.tsx new file mode 100644 index 000000000..9a21c26ae --- /dev/null +++ b/src/sections/finance/components/banking-recent-transitions.tsx @@ -0,0 +1,234 @@ +import { format } from 'date-fns'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Table from '@mui/material/Table'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import Divider from '@mui/material/Divider'; +import MenuItem from '@mui/material/MenuItem'; +import TableRow from '@mui/material/TableRow'; +import TableCell from '@mui/material/TableCell'; +import TableBody from '@mui/material/TableBody'; +import IconButton from '@mui/material/IconButton'; +import CardHeader from '@mui/material/CardHeader'; +import Card, { CardProps } from '@mui/material/Card'; +import ListItemText from '@mui/material/ListItemText'; +import Badge, { badgeClasses } from '@mui/material/Badge'; +import TableContainer from '@mui/material/TableContainer'; +// utils +import { fCurrency } from '@src/utils/format-number'; +// components +import Label from '@src/components/label'; +import Iconify from '@src/components/iconify'; +import Scrollbar from '@src/components/scrollbar'; +import CustomPopover, { usePopover } from '@src/components/custom-popover'; +import { TableHeadCustom } from '@src/components/table'; + +// ---------------------------------------------------------------------- + +type RowProps = { + id: string; + type: string; + status: string; + amount: number; + message: string; + category: string; + name: string | null; + avatarUrl: string | null; + date: Date | number | string; +}; + +interface Props extends CardProps { + title?: string; + subheader?: string; + tableData: RowProps[]; + tableLabels: any; +} + +export default function BankingRecentTransitions({ + title, + subheader, + tableLabels, + tableData, + ...other +}: Props) { + return ( + + + + + + + + + + {tableData.map((row) => ( + + ))} + +
+
+
+ + + + + + +
+ ); +} + +// ---------------------------------------------------------------------- + +type BankingRecentTransitionsRowProps = { + row: RowProps; +}; + +function BankingRecentTransitionsRow({ row }: BankingRecentTransitionsRowProps) { + const theme = useTheme(); + + const isLight = theme.palette.mode === 'light'; + + const popover = usePopover(); + + const handleDownload = () => { + popover.onClose(); + console.info('DOWNLOAD', row.id); + }; + + const handlePrint = () => { + popover.onClose(); + console.info('PRINT', row.id); + }; + + const handleShare = () => { + popover.onClose(); + console.info('SHARE', row.id); + }; + + const handleDelete = () => { + popover.onClose(); + console.info('DELETE', row.id); + }; + + const renderAvatar = ( + + + } + sx={{ + [`& .${badgeClasses.badge}`]: { + p: 0, + width: 20, + }, + }} + > + + {row.category === 'Books' && } + {row.category === 'Beauty & Health' && } + + + + ); + + return ( + <> + + + {renderAvatar} + + + + + + + + {fCurrency(row.amount)} + + + + + + + + + + + + + + + + Download + + + + + Print + + + + + Share + + + + + + + Delete + + + + ); +} diff --git a/src/sections/finance/components/banking-widget-summary.tsx b/src/sections/finance/components/banking-widget-summary.tsx new file mode 100644 index 000000000..486dd747a --- /dev/null +++ b/src/sections/finance/components/banking-widget-summary.tsx @@ -0,0 +1,178 @@ +import { ApexOptions } from 'apexcharts'; +// @mui +import { useTheme, alpha } from '@mui/material/styles'; +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import { CardProps } from '@mui/material/Card'; +import Typography from '@mui/material/Typography'; +// utils +import { fCurrency, fPercent } from '@src/utils/format-number'; +// theme +import { ColorSchema } from '@src/theme/palette'; +import { bgGradient } from '@src/theme/css'; +// components +import Iconify from '@src/components/iconify'; +import Chart, { useChart } from '@src/components/chart'; +// @ts-ignore +import mmcTokenIcon from '@src/assets/mmc_token.ico'; +import {m} from "framer-motion"; +import {varHover} from "@src/components/animate"; +import IconButton from "@mui/material/IconButton"; +import {useSelector} from "react-redux"; + +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + title: string; + total: number; + percent: number; + color?: ColorSchema; + icon: string; + chart: { + series: { + x: number; + y: number; + }[]; + options?: ApexOptions; + }; +} + +export default function BankingWidgetSummary({ + title, + total, + icon, + percent, + color = 'primary', + chart, + sx, + ...other +}: Props) { + const sessionData = useSelector((state: any) => state.auth.session); + + console.log('sessionData', sessionData); + + const theme = useTheme(); + + const { series, options } = chart; + + const chartOptions = useChart({ + colors: [theme.palette[color].dark], + chart: { + sparkline: { + enabled: true, + }, + }, + xaxis: { + labels: { + show: false, + }, + }, + yaxis: { + labels: { + show: false, + }, + }, + legend: { + show: false, + }, + grid: { + show: false, + }, + tooltip: { + marker: { + show: false, + }, + y: { + formatter: (value: number) => fCurrency(value), + title: { + formatter: () => '', + }, + }, + }, + ...options, + }); + + return ( + + + + + {title} + + + + MMC Token + + {total} + + + + + + + {percent > 0 && '+'} + {fPercent(percent)} + + + than last month + + + + + + ); +} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx new file mode 100644 index 000000000..99863a4ec --- /dev/null +++ b/src/sections/finance/index.tsx @@ -0,0 +1,181 @@ +import Stack from '@mui/material/Stack'; +import Container from '@mui/material/Container'; +import Grid from '@mui/material/Unstable_Grid2'; +// _mock +import { _bankingContacts, _bankingRecentTransitions } from '@src/_mock'; +// components +import { useSettingsContext } from '@src/components/settings'; +// +import BankingContacts from '@src/sections/finance/components/banking-contacts'; +import BankingQuickTransfer from '@src/sections/finance/components/banking-quick-transfer'; +import BankingInviteFriends from '@src/sections/finance/components/banking-invite-friends'; +import BankingWidgetSummary from '@src/sections/finance/components/banking-widget-summary'; +import BankingBalanceStatistics from '@src/sections/finance/components/banking-balance-statistics'; +import BankingRecentTransitions from '@src/sections/finance/components/banking-recent-transitions'; +import {useSelector} from "react-redux"; +import {useProfileFollowing} from "@lens-protocol/react"; + +// ---------------------------------------------------------------------- + +export default function OverviewBankingView() { + + const settings = useSettingsContext(); + + const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); + const sessionData = useSelector((state: any) => state.auth.session); + + const { data: following } = useProfileFollowing({ + // @ts-ignore + for: sessionData?.profile?.id, + }); + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} From b51ac4395090bb7a2b6b4a41794c5087e9398b97 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 19 Dec 2024 16:29:15 -0600 Subject: [PATCH 02/71] refactor: remove unused `_bankingContacts` mock data - `src/sections/finance/index.tsx`: Removed `_bankingContacts` import as it is no longer used. - `src/_mock/_overview.ts`: Deleted `_bankingContacts` definition to clean up unnecessary code. Simplifies the codebase and removes redundant data. --- src/_mock/_overview.ts | 7 ------- src/sections/finance/index.tsx | 2 +- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/src/_mock/_overview.ts b/src/_mock/_overview.ts index 3c434d560..7abd6d118 100644 --- a/src/_mock/_overview.ts +++ b/src/_mock/_overview.ts @@ -3,13 +3,6 @@ import { _mock } from './_mock'; // BANKING // ---------------------------------------------------------------------- -export const _bankingContacts = [...Array(12)].map((_, index) => ({ - id: _mock.id(index), - name: _mock.fullName(index), - email: _mock.email(index), - avatarUrl: _mock.image.avatar(index), -})); - export const _bankingRecentTransitions = [ { id: _mock.id(2), diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 99863a4ec..00722320e 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -2,7 +2,7 @@ import Stack from '@mui/material/Stack'; import Container from '@mui/material/Container'; import Grid from '@mui/material/Unstable_Grid2'; // _mock -import { _bankingContacts, _bankingRecentTransitions } from '@src/_mock'; +import { _bankingRecentTransitions } from '@src/_mock'; // components import { useSettingsContext } from '@src/components/settings'; // From 270ba0c9062214dfcd6af5b2a8abedca68b0a35e Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 19 Dec 2024 16:35:30 -0600 Subject: [PATCH 03/71] refactor: update notifications image import path - Renamed `empty-notifications.png` from `public/assets/illustrations` to `src/assets/illustrations`. - Updated import path in `notifications-popover.tsx` to reflect the new location. --- .../assets/illustrations/empty-notifications.png | Bin .../notifications-popover/notifications-popover.tsx | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename {public => src}/assets/illustrations/empty-notifications.png (100%) diff --git a/public/assets/illustrations/empty-notifications.png b/src/assets/illustrations/empty-notifications.png similarity index 100% rename from public/assets/illustrations/empty-notifications.png rename to src/assets/illustrations/empty-notifications.png diff --git a/src/layouts/_common/notifications-popover/notifications-popover.tsx b/src/layouts/_common/notifications-popover/notifications-popover.tsx index 209e375e3..74b3692b1 100644 --- a/src/layouts/_common/notifications-popover/notifications-popover.tsx +++ b/src/layouts/_common/notifications-popover/notifications-popover.tsx @@ -21,7 +21,7 @@ import { useNotifications } from "@src/hooks/use-notifications.ts"; import {Box} from "@mui/system"; import Image from "@src/components/image"; // @ts-ignore -import emptyImage from "@public/assets/illustrations/empty-notifications.png"; +import emptyImage from "@src/assets/illustrations/empty-notifications.png"; export default function NotificationsPopover() { const { notifications, markAsRead, markAllAsRead } = useNotifications(); From 07fe377da612e66a0b010bd5162994b531970199 Mon Sep 17 00:00:00 2001 From: jadapema Date: Thu, 19 Dec 2024 16:37:13 -0600 Subject: [PATCH 04/71] fix: length --- src/sections/finance/index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 00722320e..582091086 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -163,8 +163,8 @@ export default function OverviewBankingView() { Date: Thu, 19 Dec 2024 17:31:21 -0600 Subject: [PATCH 05/71] fix: some small fixes --- .../components/banking-invite-friends.tsx | 19 ++++++++-- .../components/banking-quick-transfer.tsx | 19 +++++----- .../components/banking-widget-summary.tsx | 36 ++++++------------- src/sections/finance/index.tsx | 13 ++++--- 4 files changed, 44 insertions(+), 43 deletions(-) diff --git a/src/sections/finance/components/banking-invite-friends.tsx b/src/sections/finance/components/banking-invite-friends.tsx index e868f3333..8727d6e4c 100644 --- a/src/sections/finance/components/banking-invite-friends.tsx +++ b/src/sections/finance/components/banking-invite-friends.tsx @@ -6,6 +6,8 @@ import InputBase from '@mui/material/InputBase'; import Box, { BoxProps } from '@mui/material/Box'; // theme import { bgGradient } from '@src/theme/css'; +import Typography from '@mui/material/Typography'; +import { COLORS } from '@src/layouts/config-layout.ts'; // ---------------------------------------------------------------------- @@ -45,6 +47,7 @@ export default function BankingInviteFriends({ - {title} - {price} + + {title} + + {price} + MMC + + - {description} + {description} 7 ? 7 : list?.length ?? 1, responsive: [ @@ -90,7 +88,7 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth ], }); - const [autoWidth, setAutoWidth] = useState(24); + const [autoWidth, setAutoWidth] = useState(32); const [amount, setAmount] = useState(0); @@ -105,9 +103,6 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth // eslint-disable-next-line react-hooks/exhaustive-deps }, [amount]); - - - const handleAutoWidth = useCallback(() => { const getNumberLength = amount.toString().length; setAutoWidth(getNumberLength * 24); @@ -192,6 +187,9 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth ); + const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balance); + const renderInput = ( @@ -221,7 +219,7 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth Your Balance - MMC {balance} + {formattedBalance} MMC +
+ ); +} + +export default notLoggedIn; diff --git a/src/components/should-login/withAuth.tsx b/src/components/should-login/withAuth.tsx new file mode 100644 index 000000000..2021778a8 --- /dev/null +++ b/src/components/should-login/withAuth.tsx @@ -0,0 +1,17 @@ +import React from 'react'; +import { useSelector } from 'react-redux'; +import ShouldLogin from '@src/components/should-login/should-login'; + +const withAuth = (WrappedComponent: React.ComponentType) => { + return (props: any) => { + const sessionData = useSelector((state: any) => state.auth.session); + + if (!sessionData?.authenticated) { + return ; + } + + return ; + }; +}; + +export default withAuth; From 36476aba1a1cf84aee68e76056cdb9d19e24a9ae Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Fri, 20 Dec 2024 09:25:21 -0600 Subject: [PATCH 10/71] fix(layout): add missing relative positioning to dashboard - Updated `src/layouts/dashboard/main.tsx`: - Added `position: 'relative'` to the main component's styles to ensure proper layout behavior. - This fixes potential issues with child component positioning. --- src/layouts/dashboard/main.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/layouts/dashboard/main.tsx b/src/layouts/dashboard/main.tsx index aeee16ad1..a3b134d0f 100644 --- a/src/layouts/dashboard/main.tsx +++ b/src/layouts/dashboard/main.tsx @@ -18,6 +18,7 @@ export default function Main({ children, sx, ...other }: BoxProps) { Date: Fri, 20 Dec 2024 09:25:40 -0600 Subject: [PATCH 11/71] feat(finance): update balance titles and add auth wrapper - **src/sections/finance/index.tsx**: Updated widget titles from "Main Wallet" to "Main Balance" and "Pool Wallet" to "Pool Balance" for consistency. - **src/pages/dashboard/finance.tsx**: Wrapped `OverviewBankingView` with `withAuth` HOC to enforce authentication. These changes improve clarity in financial summaries and enhance security by requiring authentication for the finance page. --- src/pages/dashboard/finance.tsx | 6 +++--- src/sections/finance/index.tsx | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/pages/dashboard/finance.tsx b/src/pages/dashboard/finance.tsx index 9cac800a8..40c937a21 100644 --- a/src/pages/dashboard/finance.tsx +++ b/src/pages/dashboard/finance.tsx @@ -2,9 +2,9 @@ import { Helmet } from 'react-helmet-async'; import OverviewBankingView from "@src/sections/finance"; import Header from "@src/layouts/dashboard/header.tsx"; import HeaderContent from "@src/layouts/dashboard/header-content.tsx"; - - +import withAuth from '@src/components/should-login/withAuth'; // ---------------------------------------------------------------------- +const OverviewBankingViewWithAuth = withAuth(OverviewBankingView); export default function OverviewBankingPage() { return ( @@ -16,7 +16,7 @@ export default function OverviewBankingPage() {
- + ); } diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index b793e8ef5..05b739c12 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -34,11 +34,11 @@ export default function OverviewBankingView() { maxWidth: '100% !important', }} > - + Date: Fri, 20 Dec 2024 09:33:28 -0600 Subject: [PATCH 12/71] feat(subscribe-profile-modal): add RainbowEffect component - Introduced `RainbowEffect` to enhance UI with animated styles, which dynamically switches between `NeonPaper` and `Box` based on loading state. - Updated button wrapper in modal to apply `RainbowEffect`, adding animation properties like `borderRadius` and `animationSpeed`. - Imported relevant components and removed unused imports for better code clarity. --- src/components/subscribe-profile-modal.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/components/subscribe-profile-modal.tsx b/src/components/subscribe-profile-modal.tsx index b77b7f9c7..c56249c98 100644 --- a/src/components/subscribe-profile-modal.tsx +++ b/src/components/subscribe-profile-modal.tsx @@ -28,15 +28,15 @@ import { Profile } from '@lens-protocol/api-bindings'; import { useResolveTerms } from '@src/hooks/use-resolve-terms.ts'; import LinearProgress from '@mui/material/LinearProgress'; -import { ProfileSession, useSession } from '@lens-protocol/react-web'; // @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import { setBalance } from '@redux/auth'; import { useDispatch, useSelector } from 'react-redux'; import { useGetBalance } from '@src/hooks/use-get-balance.ts'; import { useSnackbar } from 'notistack'; import {useNotifications} from "@src/hooks/use-notifications.ts"; import { useNotificationPayload } from '@src/hooks/use-notification-payload.ts'; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; // ---------------------------------------------------------------------- @@ -187,6 +187,8 @@ export const SubscribeProfileModal = ({ } }; + const RainbowEffect = loading ? NeonPaper : Box; + return ( <> @@ -294,6 +296,8 @@ export const SubscribeProfileModal = ({ + + Join + )} From 9133f944a4dd085e7c430be695da07262f965c8b Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Fri, 20 Dec 2024 15:28:06 -0600 Subject: [PATCH 13/71] feat: add comment metadata to background task payload - Updated `backgroundTaskMiddleware.ts` to include `pendingComment.metadata.content` in the task payload. - Enhances the middleware's ability to process comment-related tasks with more contextual metadata. --- src/redux/middlewares/backgroundTaskMiddleware.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/redux/middlewares/backgroundTaskMiddleware.ts b/src/redux/middlewares/backgroundTaskMiddleware.ts index 80a9d9de3..4696bde07 100644 --- a/src/redux/middlewares/backgroundTaskMiddleware.ts +++ b/src/redux/middlewares/backgroundTaskMiddleware.ts @@ -73,6 +73,7 @@ const processBackgroundComment = (store: any, data: any) => { displayName: owner?.displayName, avatar: owner?.avatar, }, { + comment: pendingComment?.metadata?.content, root_id: root, comment_id: commentOn, rawDescription: `${sessionData?.profile?.metadata?.displayName} left a comment`, From 0ac167b0283b24ce2812ebc7dee2adc3fc3eec5c Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Fri, 20 Dec 2024 15:29:24 -0600 Subject: [PATCH 14/71] feat: enhance notifications system and transfer functionality - **src/utils/subscribe-notifications-supabase.ts**: Added support for subscribing to multiple tables in notifications. - **src/layouts/_common/notifications-popover**: Enhanced popover with tabs for filtering notifications (all, unread, archived) and improved notification rendering. - **src/layouts/_common/notification-item.tsx**: Added actions for liking comments, replying, and deleting notifications, along with transaction/message rendering logic. - **src/sections/finance/components/banking-quick-transfer.tsx**: Implemented notification and transaction creation for fund transfers with supabase integration. - **src/hooks/use-notifications.ts**: Added a method to delete notifications from supabase and redux. - **src/redux/notifications/index.ts**: Integrated sound alert for new notifications and updated redux logic to support notification deletion. - **src/types/notification.ts**: Introduced a new notification category, "TRANSFER." - **src/routes/sections/index.tsx**: Configured notifications to subscribe to both "notifications" and "transactions" tables. - **src/components/activate-subscription-profile-modal.tsx**: Replaced circular progress with animated effect during subscription confirmation. - **src/assets/audio/notify.mp3**: Added notification sound file for audio alerts. --- src/assets/audio/notify.mp3 | Bin 0 -> 72205 bytes .../activate-subscription-profile-modal.tsx | 24 ++- src/hooks/use-notifications.ts | 17 ++ .../notification-item.tsx | 165 +++++++++++++++++- .../notifications-popover.tsx | 117 +++++++++++-- src/redux/notifications/index.ts | 14 +- src/routes/sections/index.tsx | 2 +- .../components/banking-quick-transfer.tsx | 90 ++++++++-- src/types/notification.ts | 1 + src/utils/subscribe-notifications-supabase.ts | 30 ++-- 10 files changed, 393 insertions(+), 67 deletions(-) create mode 100644 src/assets/audio/notify.mp3 diff --git a/src/assets/audio/notify.mp3 b/src/assets/audio/notify.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..d2eacaafd9ff7f8fd34ceb804e73351f95582953 GIT binary patch literal 72205 zcmeFa2UJtr)-S#jLI@Bbp-DG{&|7FyLRcRt1O6Z|UM?gxb(gg$s1PN7| z3Wx||0TdKL1r-Ylc{%qTzw!T%ci(&W-TR$;&bh}uMv~2D?=|QA&AH~DbFQ`5Hq=p| z0jL{Yn6(MqJq5`PWa6}UyYBPL&8ug*cMoq$4YD)F6xfAxIRyf@^(Q@~9Wo6v(q~!0 zj-Rluf;BwM%rxh+Nn{Y5i;E97Z308^0pDwR*>Y~BEe~B9JpKKaYop9>=hWiipta)82w6nXq}~S_S{R*$ zHVYEl!dX?ru)MDGF**uBiEuJA(0O~$<29jNTu_9&2s;-T5n%Dgec%c0`~?5!JxW=D zAAI>sa=o6tm$C-J^&*C|AhjZl_tI^i!Q?ZeNwUXp)Ek+O3nw1@0z`$pTLNQ|1?RLW zFYizuW>5qyO<9w56)R6E^Ix~;r9nAC>8xl-wQ^a4Z1BKS*t;y+^qDT$NE)FtB5GI< zfom5C+fuZnijaPs9)1!m5t{aPVA2r@z!)ajw36QQDR!p~4~k%dgz$)&xhq_5RcBba z`~BJ$yI1WZT)8pKOGg_RYMN8>D077d39sO3L_S514qaHdcN4Pdtphku}a zd|Ywg)J=>)JI&s~m2a+**L~%*$(w-p*H!kHxNcCbVfiukM$GHcXiC3mGCJEJ*GRmB zH=s+pZFHU=3=r(GQZRS+);erCtvds11RDX#f#Ss!DzI^2-1?yuCUbA&1hN#0c9H{- zt`zD4hS@D%0fgGZg-Bs!oKc;LlcL>i)gD?5$`lH!nS*9Et| zbL?s1sXm+5+xwu@U;@sRMIJ}tpl`(dPp820{mA`ykpy_nmG1Lzr$D(L&&`@w<=V;) z)+^m%*1(WB#x$OT2p6S?nec-^pcFQlkw(V)ICc^q0$Kur2?!jB2?&JH2zXaW^t^vh zT!j15;Ec4`0B^j)d5|`GRy)zVlz&1=i_pT1i%uBO86O&57s@U>2uYT4Ge8UqU^_?1=W$KZY%#=Z;hEsj(zzaCm`CXbH?HIjha(7diLz z^q$e0{$mnfXMlbz{p3wHAsK+P1_|I?1g(g?g@JDwge1Wd8$$ylR093)Th#Ar6GqFi zWFTs8m@wt~MNhp@Pj_NNgCsQCV}1o3$r4`G`TEp{ zj!^}UqgTf3vqC4M$D*T#Cy6hu~Myp1k^s6)wI{!1vXAfXPRJa*}F*v06* z+GDxypzmERh84!GV&K|lk1T%A z?VcnGH!(b1-Lg!Kx&O6cI_O;HD=}5p+cEpChJuMtzV2qV#H`P)_jt}?V?q6#_L*Ez z)VT4jjCV&Mr?54_yTPRRm|W-d#itatv->JcY0xLY&6(tr`+UuBEi~Rbop}D0+1>E& zq@JkAv+YnO%9sEEuys+K??4bVedRGPiN899Z)y*$_{TK3h>uc2;2G(;9mdVeZ{%9@ z>y;iW-TG9xPx;&$U&n)^AB$jvqNdhA78q!e@jOk5hRsR?XS(hES!<-$?7H$5OXbIXpR*=4bxMb6vZgIG znLc~axS`i%leX}n`J*+O^dw9qwnf?Ho^shgW=22H`iBtMzovAj;}cel77PY2A*U)2 zFoM(SuJQ=fSP9*k5Q8c{L<1{XMm_5yM!$g}$NtM>Z)%p+1 z1uwNnIP0y}Z91Kd5>r4duB^qx4j)&LxvH|RQ~)xGX)*Z(u4y~D@aCl__6>~$bjtVM zHJP%siHH(u$ulzbIyV#cacqw_t4+M}F%K(!-LkNRS3E@}-1@d@Ws-d#1D>l}aT6N+za8`Leyl8T7_hvfW!K8efVz$uC!0Kz8WR92L(#eOTz+2k5Q zR)MD)9q-eYT5-hONIp7?j7f#1NucA|@4a^AjfIOxPdEZ@Np~?e%O3u+=>)@;hAA`zgThR5=5(e&DWjUvbns%6D-F&m(=5*8pR$)`6`STJLyT zC6PoN4;y3h0XmS#0jo8A+6{!-I+B+=QdJT1B-~R19x5id`jFW;8hW^`ab8^_Qi0*j zQ^qh!!&CE35_fwa8K05ykVgx<+&-fHxMQ&tr~x~TjMYs&aQt5UBT|sI*yveiEzx^{Kf?U0`!sv)bJ5lCD3ZZksvb6 z0Cw-3VFs)IPV-YFvu*XeD)rMaA5Kua{)6}K65>Jw9h`==t1Q+5VFM-U+Lt`7_^U3T z^*5iZ?tGFTruIzet9u4a;`B~*!vC{keqQjKBe2_#x*1Jz02so>7;M-fia`j}d+wPS zE#ZkJ8XAI$p^d_5d=KpDc){4?a)=ad6gEkOfc5CFHZ}6R$ftPFMA@E5&iHDZfE@FlKeXf%vp&qP##SIUbti6Qpn82qZY^bo%d9+W>|ec`M=C-ZJ}PYX?R?pshu7s9o9vYDs!eB~*2lVt*d zNgrK8!|WN{IyNPH{(Ll?@@O6n_p&M8!xR>dJ^X1 z%?iq2bjJfJqiQ$FWT5zU%R_TjvgS;|>o>Br1Q^*H1vkNYcQ)BPb{l7PS$+TL7VPn> zM37jEYJJhg9+`EMsUUD#W_WT?Dor0%H0hETQga1xV{pZp8j*Eq7 zFY*E)5+@A+ks{Kv-{E4ihHi$7X%qOr>1z?T^kY7yaS<2;1!&LR{|>+=!W zNhSC5ZhyE?m7T0Dl`<~tDlsl(j1^;69B|!63z~V%DJ&eIswcp|?Zo2gH|aFMzz2bG z1lhkoaCQJwyOP?uU>-h58XXlhXQw-iAp|0d;F=XQgdhM422VDlLArI9Bn_|oi<7D% z(qGVDbgeaaQ|&x*8;}Y>CDu$}2Duq{;>44^xGV3rB*(~K(G%>4aS>*Hbf$|4i3-An z@QYq-b(amj1VOPl5gry$B9tFnWaH)kMRhLtDa*$HGZxZF*{fRhMD+| zM&&I3uCnWwjIQ7-XmPRXyhqXKoUk>?!$|!nSBG*zrowfjj^Gunfs$3v8^KU*W7vCn z`Q-vQ1DK}aGstu~IN3{egZaXKb^84nAPFJLSoYziJhH;@xbxY36qw|bZ7DmzXSL)r45& zszbwI>}~|C)v>6;t`rroMENPi?UhM6X1#eFfV==7s+_JBz)oLN^1I7#Rr;8($#K$x zhLI4*FdCv@rl9-aL(nqYd0RF??dJlt+Oz|M>Ah^-Bmo@{~GxieF|P zEZ(ytt`boegIw|0&-gV^_^M&)cVzUP% zTM2MlA1*N-W$p_G2NT~F`E%3L(ynMe2*m(klR-G{#g4YV_`xgO_Z_g|r$9_}Q^WT4 z*P9De_fNc{)#Z4RVkY$=_O9>5NekE@k0VHEIu*g=#dPH2hPL^~C>%HW>$%jbyJZUj z<9<6nL6qAE-)^s64a-+JERpUooaMU%5AUAvb9zWA zdI+$LBCyx%XfqYi0a9xD${r(Ws>hHS%0Ob=+X+V-IX7&Qclb4g6&D9H78l@BD1z_Pu--$B5Ix_uZXwExR!L=JX9O z^k*xFfs=V>F7N{}y1SR=pEjRr*R@aMV5f;&fBNqA^XH)6ul>B=bzcitjh%f2!J|oB zn6H>XbG0bOtmb>GyS9o0$5x(jIhlI_Y$qC!g95|AUuWT+ePJ}XA_t;qc96n3@mZxooEx?}L@dtT1$_U&B`gvN9T1?C#2icOYoWR5+)*zenbk+4dY~BDnRiyaDTjy_?!AyHqA#C0t2U) zS5vPYl5(W=G`k+wF+Dkk6C|HxKaE<`k3D=arotvEUVci^DB4RvJ>h%xaq`97nXVVc zlv6{d^L6P%ed5YHmyMs^^)>r@n)pJ5C|;$!;bL{0S6Klx<8-~=J>r6&DoSyKLy6aG zV!5v1rUV}fa4J4*sd633)nzhl3d$v)zH7Ob@4&Ie%q@K4^G@bi4tHsDfq01#S7?up zrI3cT%w*QrWZhbKVe?Ale3N~EVUQKZ%mzvQN|i+0SIODG!ngCh!l(Fut8) zf0XV~`dKEIRQyZh=9c%{?tJSzw@XEc@!D3=UzlQs^sR6P5J2Wg`*$uLFArS4p1W^X zVgH5)kx_AXF6%Q_Oq>pYit95xRb{E{D5IX`W88J1^@6>0+FalGsc~9d-i?!;(T7W{ zGol(Uv_0*kFh+kd?fZMG`+4jSgurWIA$H2XBtEbf7)7kXLFs7INfBno>=KxeoG*<6 zpDJIfaK?cevAdEENyWf` z(1H?uvC1b4S7zfyIU(+Li(ajvowP7iR8WK)?{SrA|2tAqF$xX~I{@oh?Pq^OYkRsZ zaRZgP`0P6k9+MdeLQhPA;AQ+R2jC6))I>#YOJ|;hYvDZD_Pnd}LE{sBeY{1wbNkgJ z8FLW-OiaOLZ2Y=I8UBt(TAl^!XsP4zS|(AKzcu`|dY|`4`f${8gK&Uf^5l5Q8PV!A zu9p@&V+6T;zV%yOI4BXUopHW}2`DZnuf8U%td-zGUCp&_Rzc(7h5|}<_K=1{cIx1( zEJxe7TI4)gH_sjjJH=n|oI-1H{Z8R{gXXg)_fEe)@!sCE&VyyOj6Hj29Vy@AC^%|?F(h#cR4W*)o(i%Oe(l#X+mYRY zMGPc|I^S0#-WF4|&)v*sXfqAC#^d58e^S)^11BU|^l#GcyGDQgyLa+GI2QjG_CCrX zSv|Zd%kBUf&?1NSqwXW~ble6D8z%9LSRyTKfI!1oQ@|!9Go;dlMnr0$tPDU=fF6H> zmW2HC#%>&&K_Z{B$oNTvt`)vQp9RHPFYkv}HuhY8A-i7@LrH=UK{S!>ZxXx#6fBV0 z)qE_|q6W!%Q21zN^#>R&fslCMJPT_)iqkYG4#RuP03HFQfs%QN;aEjPf$a)I?g*?r zwc@ERGa^h`B$dwgjN%h7skq~wK6TXgpPW9sOWChX+W!$Lu)EC6ox?*m8+O(1`2*Qv ztH!-g0C}zAdX1YcP~RQfq8q$E?Th)>31k62c?{r>R|!l62n06 zZp+fV?Mnp@+9#fUJ+~cs-#+OaGllZ<(@M};8~T8DT~&KfJo61nmu{Pnd)LmMr<7@` zM!n_q6*3^=$ZQCs3-6*g2$`3Z)Lv~}dffVKB}PuH{r(PoZh|^PMId@lSok7kd9P~3 z#`moi_KyD+v8{}RC|94-3={J-M13}x6IC#MM*F3*(XwYALSmTR2%#3{?RT_p)lGt_A<*XD{;&QM2*53W>%gy9-VqT7& z_bB_(#mz3vjp|JDQZ}sSD=xC?V?KN38nM3_)6`%Xw_u$?9 zLvID2L+nA;BA26cA3>8XdOG{kNeU&Ja`pCS zvnNz7Q&n4e&EetRDNpKdTHVJA5bZsqk`cgs=5;wH9stJ^V&Q`XrvbqF~(SYi`8@geDIbX)a!V@DASjBdc@$nfYyC4g9R)g(tSS^cDY+Iae(`m}hm(Qt9 zUpkE$XS0~TYWk?8!TtSs(OliLho1t6X+mx_HQu1~oN_6uv15aKYznDVvKmtBU!TH) zD3rN_l#oO;2AvMieUAe>TuLY|AMHns4qJZgC(RBJoK_{t6VD&_FPT8FB&;3tnac|x zUlSeRrh#5f!$OV3tx!(PE4OTw8jHj<-p1s3x=ZWG!r4!bl)VqX*m3W0Q4_~D%kekG z5npXDa7;ItS!TMQwt zV7yXca2XM)4xoUWo{MtfkK~Dt3LgvQ&eO<89brh;(?jSrA6R?PU2`+rOYItF*UJqz{A7`!A^8jHbvB zKK*1~lR3e1VU_ti6Ux&sf*#iL3)mJ%>=xs%ov$0yY1>q0;#rqyIL)`?9=cc6YMI^0 z?z%Kn7c#|VhX5gh)==>Rg*doK;fr;6TiPHZIMTzpcYxW{OVC~{*V*j+8&?JETk2Ry zPoe;rgrC9*UQX~U#DWt*ShBNihsQX!N(<|;pg_-u<$@synt+1qp-Td&VI(p(rEpdB z5#U*9=s;iot#*fzUovgN*WosJ{~FGl_O(g&Wc$!DmpkGv*aKP6{Ou4eklDa^GlWg# z+8NKQY>hqkAx8`@1toK(R2i)kScQ$)7s^N*nU2C3qVTwn55tskXtqhhCL*~qQ{Wh^ z=%Q}Lx{tULOfOzjDl={t9kM3FT8SwWX0>C@<14Lk1bq~d;XWwb?v&kP@Z7Uh#?Y=Y z*GNM2)~6OH%`ERIHQ`v^dO=sum^HG_njXZRByl{y-+>lK!>se1(L6_uBM!CHg?mx3 zkg1j_WBG}l55gvD*IuY84Vl^*^4BudKD}wXTHnEF*$Y%a;Bg`-smxBJuX(~V*V{ob z`XM+R?n}!RTgUnw6%ypooFicVAauZZ;34}w*@n)ldI`sH2%W<#-2ev@(zQ^=isXsz zVNH^d<#Y(o{rBr~VnuJ_JI!X7!zCV#NPcsyhEDV<-!%blZK=~3AZUAJ<*Gum2?-(f9f;@R8{_K?( ztiH%O=V8<5vgh=JB1w`EP>y(4w}@2e6aP{1S?p_FVJq#$$D^!na}iH^%~I(opEvxU zNB`Nn?_Y%9M<7g6&NEv;Hq`!LT#Q^LM?&f>j#+82fw`DDG%}+sFZCp)9Thvh>K7-ye2)^cox7TKdrc=GS5i@jhe_vw1ueI@y}SW1 zt5%*zv3joMLfH@M`;%g-1rxjba;^oK0)}i`PjN0_+1bII_H}^~u@zVpv)v$|zFKvK zp$vMkuyM$~MpA~AwS=^Ws3ky+Hgxx|#fE7;^|?H8?&*hpRo>`L-BsBglMtf>arX{N z?RxRK-J^!jbkEpodMD*Pngim~2+}bJW`}O$s|76Dr&OXCcxYm^0EaIvzN`#{l_P>< zHeb~F*{>H#$iMH^Br`gf58vDiHwiR-UrW1c8SQFrjT9b(sPY)AS^(K2d}*_q5$!%J z^=~ClHysp_qU?3Qzxb<3s*j$vp79DhrC++;h088!Z7hq?cO^Tizk3m1 zrNfIT*T;bX6m;-WmFK{`ib%@U3P}0#l4gQ2U8>xHRfRJ9&%Gv-*G%hppO7e7<_VUBc*yq?n95G@X8bw7~B_49)!(nApAOffkzMd{E`F z{$o%Y0$~IUIVg(twiviC31W_MN@DV6Xfj1#h&GJDDi8YSU9z=0IZb-4?`GaeLQfRV zA|B-Tw5HWHu{$HChzIp{Ry~1>bJl&7?bF+ock3PiD_SXipB-TIO<;s_0ysP#ec=*z zxxrmB32{`VbUBH8o`_uwF;;08jI~Ok^Px4D68wD3@~hA}^UcX}@ZHP~Sbn4Q^{;yc z4PG67^V;&M?K{%zGLR0htCTNS4SqNUVe509?!9`I<44>xG*Vl#jGNbex|EpLdvE8x zbO%uALm8A=fJ22H9F1T~J`V=0HI&#~1di(h;h{K4_2Yy9+JtRSGOEAa;n=GWkK>I^ z70-#G2`cR7FTic_AD{Y*FqBTk@N!QC&3!%{uG+(Lsz0u@W!vqxpn^tl8q1}dKgSUN zusvfBfaGXAA_4%OiS`JGe>|gQ15wYrp>}(V4|LL-g z*l_zHA1J38;;~alFnI}@$cj7DWCBVJ*>dB!b2@`=vEY~d1C`Amq!?@Ob5(V&nBLYm z`Xo%$F~ywV*)ac~6B=2*W30~=sRdZabw|5*>!6%&*%-6bQR z=W)Pk$tZP3{sPPANl+150S3=N%dpxNtEM1Sdw?6e{b(t7d(iXaObPUykQrZBnOaKy z_UNBS@ZXZtsa(r4$`$}*RX5wtwpmPB3JNCRL?xsPRSv14^;+oZl(9mb=cXW_Xb~qI zGH{tQr=4ihR`iKAl`XyKJ55d^?*aV_cm`>QuP!5OJn$p*|}gVmb4hoB!%z9h$GXZuK+6C-x}N=Auc?Mm;17%X}ed`+Hd_D9WA+# z+pR1rMD+;+4gUTz?vqi_tQMpd@n-Q(%;o9R?KEjEN2!Q@c89v1}O0}9Et)Y zkQbaQo-#lag$KNEhgbA}GejSe%U_Y)IDf~tWiWtXnCQ2@-|Ay;Mo7Ax;o_#~^4oFy zCv16l40GwibppVI5d+yz!vgKoX8WPq1zM#AwAFg81L((s6bo#Wetw%%(q?YhFA-n)c)ZVzH`p_g}a%0 z$MIyiOWBVGTA04^6p!FYdDT&TM0PUU@bWKCp@n#2TkuH~_ke?PY;1ZeObROGa2e6M zoA=%SF0!bRZ*liU5)+LxDl{Y^7=0}_`P}KQ<5!+MMx6LrIQSEq>VL8P*%gUajG!z5 zG!Ufb=&&S~%kaHWVtEOZDx1{_)VqWt6-F^>t%vmvm&9;1A%Ur42sYEWwYk)!xSZ?A zf=3@r-dwvcRK3siUk(1;`TGcXB9Uml3~C0zqebr=7?WG`y@IWTvyG%H_AVtGP8KWl`C{S2)33$HplVEjXN?3WS%l6RpU0GOtv7+t_u`55aJ zg#wjca}x0bx1li(8#e;G;toAb$fK_^SR;SvAWsfGR1Da&53o3tqoZ`e`&-W4c$nA6 zA0-72OTTa@t!!d&FYU4^eN)Kmx|0`-_#c_lLU-a6?AWQ!SHqW_Mnq^wbpVxEU9%n6M&=ACG4IeIR}w z{lg=$hXd7Jm<0d`X|~A({M^m6TjmK@tke{V7atr889N?+mDyjhsX%;y2}(Pec4HIi zuOndhWX$#b2Md1uS~hQu_dDbtUdZ2r!Od8-i1+qqs<&N(am*l@-w3S6WCya`D8#1G zPb0jUE-Ed@AH#9*Ag=Blvv8= -YOKUlun$fcLyb=-e2{02@`N|p2cVZ+2Z}yJ~Vi^^pJ_%BJ=$b{W}$JgzrDt zc3J`xwU~yD-k;g|=tjAWg zumu%=>tq~sF!c$G%<;$XVsvbm>8#B}TH=Q}jfeB^9;j;lc1mV-$`YMZ`sDJ7 zeT8e3mACgq+*ra!HUIL9<(vV)R<^(NC|;bVzE0vbZIDi#ij5`5!DH+v^=Ec9nI9H_t?u zzvUiibz?`p_^!t@c1N&6~X|QG7&4}A~gB*2i!&*w5+fIy>3_75s-;D$t?Yb#^NXJ z9Mp1RVv06egQoiaC8PX#@$ZWO)hTe?bi@NjOTup*3kr=VqALdYy`~D#f>mi|)p~KS ziefdRYi#V{&ReZ1CLhPWrKpc1Hzfolh}^^n2@*H^7%mIf_qIfS-Ex&<)51cbk8rEg zo1X_M=C$@*BD_%=zpr?|H+39i_PY-1eSNrb=RiFd-O%-|Ojr?G9IKPV&O?baj4&5P z+?cpyYTgxyC2n!Cpk3!Nr-DR^nA^`KDPoG8zXf;$Mi%z{xXxGVGzdB!nI7yo9RW$C z1?x)U!FY?Nq?gCuXifp6n#<7g|YF76VJNyQf0jZ1gCfRx&uwCXFfz~bc%YB{ofqTWVW zOq#CLNxvBX83jR-s0;3qUdhYdHbWC)O%Fk;n4KTg_|iBf$GqpYc}nKUlS>?KU!8>&-~NAp{U571ht zmFj_04h*|8-N&s|?7p$Ur~p#R?5sQ^6NN+uv-h^LN`TDc3Nn!Xs^ zU=@{k@wh{oxSM_)Y;^3Yvv%|!QmWsNsgIzVwQr6nKpH(QXKfPMuY~?4CgWQdYbpjw zgxM%;YJu3av&TzE*2tMgR~gsR@WQp%gsoqf+~mxxxAL)Zhn#=hwYyvO@*pzGWn%w* z1k^-Jg+wZcl?_MBe;#w4XH0t8O9B|5*-_VEPe7;oGq?A!X+1Q$qf>0d;jY~n``z*5q7=dAM?0x*auCt%oGyy+`zCN8V93%rGZbuYz?=;Gz7+)uo*y~If- zt(k**!CdqTPcDUh80cYk<>tr66k1&6?09zf!Uv~Qi%slo57f497020icDo%H8bc?j zm0xC4IGXODcO{R)OIjbDP#_M_1IJbnYTUfUwm zJdP+GypZ4ONQ&1&0+)@TzK&|uPA6PwcKEV-d6lC7H*Nma5ARps;4fYF0O+`FO0cNr ztsXL9m(@JrgBt9Va2#3D&N7c!%ClYBuw*T`>s}31xMjb(aCWLSHDU(%2-o zJi7p$d-$%~rG9c2EIvcyL9|-h(24n`tptfC%C0QMQthv927g}p-(d1rcOL&nJ1h)=5_g1OQJO1BTxuTl!+w?zvRiIPFeo)Ohc}2G0az|@ZxGk-Ht7m zJX87gOYW%#w+9FRydeBLIQJ12mYuT&K(|v{2I2YPL2HQt9vflp5D5bqYth#8P=vp@ z?JZ|f=(nq!sfZ)$g&&TEMMxx9k>HoZt}(f^iJyIt0&>wM06Eqj=1&^GB?8|J zMGS9|sAEq{`n?A#mm(R3Y61?sk@AJf*`%sIR`#Vpm8#2@=s0j{@RRs;5!0f<_9w?V z+2ZYNgMLf4{u*t+flwy_Q~RE2Z6qhi_5 zxNcT9(_#5H%eRB+65S;LfUfgNc;B7)0Hmdlo>mU+_}Mgh9>$tR z!U5(=MrF3FY0-k9{K}_lmRP+yrlcj`HUKQYLG8OD2bE?nKGf=$<<~CbR*VrzX{&O) zqSc>pn@;3LV&QS!YvEhb7Mfq-+yEeg3}v<=hHn`9GFhhhY&-fwHvwLccBFdfPu_TJc7~5M~n{~oPmNAlkjMBdu(4XY~6$I8W>^0P>OF+~u zotjMUY=oUCL>FGD&C%FM`-X#=d zU~1e%9d5W_!8?RGKae7wmU%0C4Q+Bmy_>m2M4wyXfTaq9{UJB*87@TrF@&t!aTbct zjxU!!dn9G=8V9FG+i;N^pu6YKM4)@*<;8S|pVLZK4pQ~1H$X5OtRNI<@WmyMmKbDA z7w_Qq6?a`qXZ`s^RzRK7f*uZapG>TyY>1gdAtC!MDC+v|D>!QQuq!a*$H-pd=Ow}K z?w6BPd``Qu#WDy}Ai9%w{n&gSrfh>+eV$p0LL2~SYuq8dumyQ&CBj^Sb4PeUUG2rguVwojeSbmq{-=rjMkoK}?g9!hwu@9fz#IsFUoNy( zcvFYLB_&rSTjVvZMU;sar)21fB@`$@$PAkH{pQt)V4XE}S3NHdh#Pq+6EFd-`zAg+ zV*8A;?@n3l8of+6%hcpq61Y+H?$mv2sGD_0^nV&?|C~H~B+O#>A`W1%j0Tq?9)pV++JnqI3tERtSB|tQ^KhrW+q&~g`DRr+RP7}D zY&T4KH#2~;Uq<<=xbe%S#5)o!r-Yx!}b1Dd4z`;f0w5%out>6AYsHv*ChAdukE&l8tuMv$OyEVj3bzP7b~OEn^@nnQ;{8P8)FB8cUUpwslIJ#_cWG6Oqn z^2uDzl6c9;^EVFwMn2!-XTGW=KVoLRsrDmMKu-CoXr4}5@#XjE${JBWtkJlf5dJjz zap8grp|H z2Cr(@6pgVezwEGDYnTZ$azEr&_e&*Go8_Me8n@yMHdq@4<|x7HIqd z2{nJ6T6NqK=4R9U6K3i>@#hQ>%(r?b82-5?*;_LB2v@oDcA7gjjM=(3w;f?T;w3_4 zd0l)fsBqlB^%-SnztvmL(I#Eik4N3XHh*XMnp1y8IH7!csT-i}b*H+LDzF=LorD;q zkygx8tI*am^VG*?65Q!Lgl6wL+2P{3{p51RyIn+x^cS{&L<*v2ekvAwQDD_Qcb0=m z^QMOzmF2OE$tTa0$mM4uE?-s=!h_Ixs-7K*V}tT~#RBo*vR6w8ynJC!8%IomM^(n4 zJo`mWN#&CUaQnBARgJ*QN5}W^sAm+)2kvvPzS2<4PyV^I^^@Bl2&`giKF`7cz}2Ui z;OS&ZGgD5JaG?fm!P$GT{CZTu+NW42`w`5fK0D65KN0>^ebOrI zt~7hMnp7AuyM#Hqdr=R#cyUiBwS^R`0`A#!HryC z@%p?F0O-h@gnsgmCXif{yC%gBV6?vN3ZJdN&uj7F`J=7cd@K|=b;a8GBcwKQRiY& zI0cbML<^2ce0z!|FikvRs}%Og*u#=9&yJmF{fV;YsqsgU;m^*)3xIRAl^U(#%;IKH zknMzl;j^H|6Jvd}G4TDF1DV>$neNkBJ`EG@O-5bbhBcI-z=txL_<@;c_A{2ps57bo zIu#eiT4J$2fj0cwRlxvDoDQ9Y285MMPE<>~;lid?Om#x3gvY|wTKdbeyT3YxudK)X zxck$IXv1D!F3^aR;o-(*L+m2#rBVt0Ss-9}eT3?7Y+rceE#j~v8RD3PMgzWW;1YCc z=sK3D55jjF&~HvoyAnI3*TN}pG(@wG|Jl{>lm8zGbb~NAe+fX@nTuB{NXnTv!imsi z`nytKKs~$e43bT+ZQj9Jy<$4DVJjkN_r%Lj!h(n!2Yy`r^Y_0CffqpTTk6CBz^Z=+ zgRx3gcVSGlNv<$5P^pCpNX=yxB&;;ZX0zk`$0makbkKPM^@I&ILqp?VRM*h1$N`3d zD#WbzU3B_oCm;FAu=u?I2rEnsG)y6qtT7h)M98Yu?7gV3)pTH`%8HK7{xEcLDLUo!=jUPC)#y3IG;mR`7Tfdl4}t*f*3UwW6Cz ztUu>;fukqPJwMcjna8W3EX`8fA02ngbt&_E^zYC1ei(14Ubvi>)ygSpC7v;EE63xFNAtI=Fe2R1BT*CtY^t zI$$!z`Ec~ti}&`lBu0tE9Fw3H0F*bprh~HQRD%WQ>(s1zzC(kj>PWf&m>V{i9LlF6bWrslih5dwC6rm>z?EcaWkNggBxg`cRDDmJ+;CLSZCyhzE7 zqmZnBbqe2@Cc{<9hjW+5GU!-XXi2IHlP4kgKIqzB+Omlu5-emGNwo?t%cGcY#mo7g z^TJt8=-Dx`2Z_3pjI|iQe4gwSe(hxzhU+UK9e)`${Y3;_M*;E1vIJ`Sn4DS5AwDVy z3fA?#;rbvlhSk+n>);3PvKJTqJ@qbzC!%fngGV&}BC!0vV$K=rO!J@sK-EKxgWd4{ z%hHIJ-qV>&&!)$EFDleefk~F1SP)Pc>EYFx#TA|*Lkph2B@i70l{lvIRU~gsf`pZT z^%;$+TfrqPhGVd6x8ZI5;>+UaLSK#-{OS~TnT)roPN6`su#AqLg%+=@Fu9!I-349i z5nY1Vv9k$z;{ibBfS2Lj>_nw2VziwKRk>Fj?3p>5C)=t#VCOKNAIbL*d0*b<`B`B6 zeXZrcpZXjQl8$zv-V0jExzj8K2>VT!`eYP`56!SwswE!F8|-S5&AE_gfu5n*p(pM{`^(HtV*=_58sVShEpaMp+tP?$}^D*|`t+$Qtx^00o zRnCY`F*`xlX;y|5PTl|e0{lGs=S5&0gBCIQW!)|41`33`oT&{Z+#J}=W6g&OBN4AK zlPaco0Dr;Z82Lo{;VXY$G5@ffKgHC%{be-L&jU>(g5s6eKF$;TMPK*3giSijVJ$(F z3O>chUNP^(v13{@oVb`uI%Zid5iTJ_C!i2LMRny7%~c&9z-&5G6mjMXgM*@CE@!S1 zhJ#(8AQ+lD_+EAC6ePw$2F4)C&2=~U=}bfBk9Wp>Wt%*Q;HQswQ_Z0L0)oz)%BE4L zDLkUDQG|QQ8X!0nk~0zjK)FPoR(v6I6m*?oBGS=A!_fNjz{)X>T5HUJXPe@e^SQN8 zw_iZu;}S@Qas=1qmYL-0cD^OWK*HsG>I+2`-+r$UVUkx|ONyvrFE%JRq#RbL zof0edQATn6k%vBQ3S0hWM1iOW=l@y0pa1=nA@JEkSlk~E0NggAoLY6F3lTzILH@Iu z$CzV`CC|@fGJ8*3s`ebuOIZq4K5<9B{1Ze{{n?*P#6K0gYXlx!6Ka7^F7i3iAvHJ) z5M_<1=7g07J*g*g)Px(3j(&~mxJG|kjj|Z0wLvmDyGM=kByP4(54mx^nOAsGA`^^Y zfDZ|No<$<~LahXpI%hv#kg#Jv(b3rVS&ZR;oy(7!0;@?lm-o3Gw4pPdER*h(q1>j& zCcZCOSP`zSt_pDI7O+rTK8UY)}h#jX1u6w(riwSe+r>*9Qj(oKlIhY zIJ!p(Q0sp7e{J#S3I8Gj>tOV>0uzCn(S3Y-<1z?`4Iru_yhrV>$uT>68B{W9wi;Vr zoy{ewd_r&R&|MUxRi?fM7NE(I?K&L~ie#L+HWiRkzK)c=ZtgRF(cEpm!m+k(?#2IT z@66+pPPae)1zAL(Kur;~P(e}ATu{-hP*K4pwbjfD*R(OStfqAWw`kGS+$t&*b=0(M zD$8mT%_yxLEvwO-LR_ZJMjLG`$u8aBb?&^HdEM&XW`4ooU-0GOIp_U(d>y`=^KhPX zrpM3xav}2Y!-?txwy6h?ZQ5_lS{*@(g7UpdoXA2+Ra&3S-~xq~UGjnrz0)pn1BsPvgP9_eWCvu%|_Y81j#^l6K*+1B3q~t?KQcp8|bgqIJgGoC17g%lQ{> zO|Yc$7ge|%XM1k(<>)k|GZGcQ$SUf@JzS$3b9I6$tMHet;1Fy2z%l?}hH8k^IiO>S zZZ%Ic`UdBCXp>hH2a+Ak6NoA}=X%&OWq!6(Ns3qs3`f{sbhnlWB3> z{+Fp)g2))48JTc!&XMx-9cIhqZCn4@q4CwEt39+f^MbHid7?1_dVxjSbD^40o<^cx z$F0-me9`F%zz4?Wrr6k8qO{ghxu+?pBJM_3>mA{>r-WBgr&`OVgfn@s`)p2rVQ{>+ z#eT$U7gt{J-o*&^ zd$~}%`ShMdu+~GOCl5L!1tmX`%2TibkKVsEzDP!+!K`UG{P5OnLOs&aavH@?uhG!# zjl65CR31Dgzr;3wL5q#$7uGI?(m+t2w;3laOi~Q%tu`oj4KA^MBOe569`rbEWMV^h zGPt&4KO&NDs9DX(0aDr4PB&jbG~6K%I@&W3^YeDEou*ncB~qZ$KYlwK0D#Qay;_>; z>DH5gw!k5O1o&u4=F1?HK^V8PIhj{hea7wLJSC!53=~g8PC{IHP!P z1aJM~SObbqC$SX~KHecj3fjJ#+0OZk;7rd1XfhYmZY3OSqLYBUD*T0kW%I4$0%@vne!S4fY4`u zo{i(`Jja6OW#$H!jSfn7NvE204g{R4T4paibo*nbRE_;a3XGd0I^;nCAuj!HvOfJu z-=W}MFh^Uo%GSFZtS*I}>o4*QdbD=Nzx!qK4v^xkrM-B~-OykUow6OemK-1GN;@OM z5A{ZVKVo6H%GZ?QiIf7enT--5_+dMVa6LUQ;&d`+HW0H{9uy3SuDIM{c}f8UL0uG; zYZ-M|XsEA2(ucL}_4JDaOhfM;s&Oc2n7REEVXCJ2+!T;%YJ{X`P}aL?4U|w`E+A`# zCX2;$U2t73?u8+{2A-bO`rJJJ`}iYk4L#pRIRTQwwhqOzrTyYywnuo|u$1hg(JWXL z((vG2DaOsAPGz;eQHS6uby`GVOHi(9N=#ryY=T&HJvtS=BlCdaor%3mGELS)9BoTp zQmla*c`~$`MXE$%VrtZTsi?-8)UT~x$hW?O;!QO1&JB}>;&afRK9DIcHx9>UC% zE@|oZ($a*KsFpQ=xl1EKesITw(IFi$!4S(acfW~7S!muD?#Hq+JxXeW zbVvI5ex;#}mZm1#s=|J$M(=A@FItjL2cY--C@+l=Sxmi!8W(n9=p`i3IcCcjk+hC- zc1SiJxo8-OJJ9@VP++q40ypuCf}g5U(9o;ihV000$-%VV1XLsi%OzFIa|)EC`2ecs zwih$Y#iJqUni<7nfBOuZJc%9F1b3tbIQeNfRkM6<3Z#KF9R&aw7r&Z*RY*7~i18Os zGlfL1=tw@gat=bYfYQ(~5RPmGRIT#?+M+-VQ2(ii!!5OW z1q(wbb~%q>#lbkt8h+u~cDSiN%yl}R(`Ulo4eiN9MG_%NT@1Rxks@dovM@S;dIwJ} z={(teSL8)t7v7gX-CsAf{5OVG50y*-Np@GPfldYrMULZ;!L`T=iduZS!vl61u%UOu z-8)nG+DZnjNH{PSF_K*zCdAVmZk1{m`lO64Ho0_THhGvz1077d_j{Cata%f*7C2x}2hY20RL~yE}3%#k1l~XYiFjz~VHmDk5IW!r1vetwFm6 z-xTZkZDOp;7KLBw*}TDOV(*d+D;D6$v3xG?lsu*2wbdKXVHXOL(}Wn54HdFapZODQ zkP|^p^8M<^Q|;%|mTf)iyeiXe0S#sT3jGI0RhN`Vfx)@{RL@Ok&(hucnVv~3qHS^y z@ATsPMm95lzG)|_^+qZYtHPl`iCv7JkZdEoE@G^{1|wr7zOc}BF@=&ZRLzdoiBIa%Ku zVut6y0dgYDI1@#QgB0&$JeuN$c^)ez)%e~xV4J2(DsM+^T8%%xPW991Khj;Pt|f_9 z8q*f`GwtpNDZ@U_E?8Y_9^S&)X z?TgQxbgFv~3y`yqKsPDEWOQ%8=TcA7yt>f2+#}Q;@_3_QMdd_LKzIp)*|q$_n07cq zA5NZ*6bMhUbQe*^s>Mc&{q;d#l?_m&SPff`f0A)sB;66Upfv=T$)zz{iW0P z_aebq28^{E8Yp&p1hYg|UX^eCPeq585FSM_q9!VmuaK7oIJPsNyRlIXrVs0q7ayV| zl8y3|0&0&9h?q@WITit-Gk^Bl%x3DL9nS>;zc`les(Y_#)d0m;KosxTs(I7c$j)6a zx2$64H%D44EvZ?>8VinYS9~}HCy?oxtio2+bJDIru3t?L0W}WRH<}8o_a2tDeElEL zM$wM@)zD2^hrqT*OR}tVb=LNu>3kv)V$wkg+rH=gyZ9h*X3Fmr&R$b9MZqKGcM9D} zk`<{YaVXb77)y&8E8a5?q4p)j!E(fI5qVD}8v1$-?VH*E!LaHjB~hS0p4ess!<~aP z=t!4^i?imWm6A_et!Q?%HSdz$ey${xiit6-vz;E`8x^3-!$d+dm9z)K+`|3=9myQgeEJ5w(_q zi9dP}Gz)LN`E~CS!c%~=InOVoHG=x}m<*D(JSdd;qzEx^ekiDPC*TF7rZ(0y3wc4z zjneNn%>FRDs!>XyfW)zr0ULa#6>TCL)6fh4_Sq^yUF1#O`(ODrh#+FXk$dQd zF%eN0+trVuCYrIqt`I;Q5qvJW9Tcmj-m9m>u?c5WAwmp<9|{#W(|w+Jm>NIxf?GdK zd^P*OGOc=(f+`^LKgGkd2g3V74@uKo;Hrb=KcjV&fp-F+GEV*#@DI~J@@vCyDaJv} z6rc>@pyty14DsukaZoP-ihPhChC2m>Yayspa2%*H!8%142ox|tR3;E<6u=p4`t3Zb z$A1$AB$`ZuI!b=1(4K?Is8@dzXa&KPfwPDJ&p$4L`M+)&l4xhqk@mi~Zr43cpGYYH zUh)PE2);4FSkn-jYv#g(Q;qeg!n?K;qXt1<^_6<|kHw!z6I*(qp?kKJmP& z={{2h#wRM0fG_85P~adEejgM*Q{Po?sT5Et@TVy7f4!V#s-WV(rGVloFyGBv L{zc*c?GN=2XHb5n literal 0 HcmV?d00001 diff --git a/src/components/activate-subscription-profile-modal.tsx b/src/components/activate-subscription-profile-modal.tsx index 8cf5711e2..9b4936654 100644 --- a/src/components/activate-subscription-profile-modal.tsx +++ b/src/components/activate-subscription-profile-modal.tsx @@ -9,7 +9,6 @@ import { DialogTitle, DialogContent, DialogActions, - CircularProgress, Typography, Stack, Paper, @@ -26,6 +25,9 @@ import { encodeAbiParameters } from 'viem'; import { GLOBAL_CONSTANTS } from '@src/config-global'; import { useAuthorizePolicy } from '@src/hooks/use-authorize-policy.ts'; import { useSnackbar } from 'notistack'; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import LoadingButton from "@mui/lab/LoadingButton"; // ---------------------------------------------------------------------- @@ -107,6 +109,7 @@ export const ActivateSubscriptionProfileModal = ({ const fifteenDaysCost = (amountNumber * 15).toFixed(2); const monthlyCost = (amountNumber * 30).toFixed(2); + const RainbowEffect = loading ? NeonPaper : Box; return ( <> @@ -229,14 +232,17 @@ export const ActivateSubscriptionProfileModal = ({ - + + + Confirm price + + diff --git a/src/hooks/use-notifications.ts b/src/hooks/use-notifications.ts index a3b45fb93..29261f331 100644 --- a/src/hooks/use-notifications.ts +++ b/src/hooks/use-notifications.ts @@ -12,6 +12,7 @@ type UseNotificationsReturn = { markAsRead: (id: string) => Promise; sendNotification: (receiver_id: string, sender_id: string, payload: any) => Promise; markAllAsRead: () => Promise; + deleteNotification: (id: string) => Promise; }; export function useNotifications(): UseNotificationsReturn { @@ -74,11 +75,27 @@ export function useNotifications(): UseNotificationsReturn { } } + // async deleteNotification(id: string) + async function deleteNotification(id: string) { + const { error } = await supabase + .from('notifications') + .delete() + .eq('id', id); + + if (error) { + console.error('Error deleting notification:', error); + } else { + const updatedNotifications = notifications.filter(notification => notification.id !== id); + dispatch(setNotifications(updatedNotifications)); + } + } + return { getNotifications, notifications, markAllAsRead, markAsRead, sendNotification, + deleteNotification }; } diff --git a/src/layouts/_common/notifications-popover/notification-item.tsx b/src/layouts/_common/notifications-popover/notification-item.tsx index dad66f8cb..2760cd736 100644 --- a/src/layouts/_common/notifications-popover/notification-item.tsx +++ b/src/layouts/_common/notifications-popover/notification-item.tsx @@ -11,19 +11,47 @@ import TextMaxLine from "@src/components/text-max-line"; import {useRouter} from "@src/routes/hooks"; import {paths} from "@src/routes/paths.ts"; import { NotificationCategories, type NotificationColumnsProps } from "@src/types/notification.ts"; +import IconButton from "@mui/material/IconButton"; +import Iconify from "@src/components/iconify"; +import {useNotifications} from "@src/hooks/use-notifications.ts"; +import {openLoginModal} from "@redux/auth"; +import {PublicationReactionType, useReactionToggle} from "@lens-protocol/react-web"; +import {decrementCounterLikes, incrementCounterLikes} from "@redux/comments"; +import {useEffect, useState} from "react"; +import {useDispatch, useSelector} from "react-redux"; +import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; +import {usePublication} from "@lens-protocol/react"; +import {CircularProgress} from "@mui/material"; -type NotificationItemProps = { +export type NotificationItemProps = { + id: any; notification: NotificationColumnsProps; onMarkAsRead: (id: string) => void; }; export default function NotificationItem({ notification, onMarkAsRead }: NotificationItemProps) { + const commentId = notification?.payload?.data?.content?.comment_id; + + const sessionData = useSelector((state: any) => state.auth.session); + const { deleteNotification } = useNotifications(); + const dispatch = useDispatch(); + const { execute: toggle, loading: loadingLike } = useReactionToggle(); + const typeOfNotification = notification?.payload?.category; + const receiver = notification?.payload?.data?.to?.displayName; + const message = notification?.payload?.data?.content?.message ||notification?.payload?.data?.content?.comment || ''; + const [hasLiked, setHasLiked] = useState(false) + const { sendNotification } = useNotifications(); + const { generatePayload } = useNotificationPayload(sessionData); const router = useRouter(); + const { data: comment, loading }: any = usePublication({ forId: commentId as any }); + + useEffect(() => { + setHasLiked(comment?.operations?.hasUpvoted); + }, [comment]); + const handleItemClick = () => { onMarkAsRead(notification.id); - const typeOfNotification = notification?.payload?.category; - // Verify if is LIKE / COMMENT if (typeOfNotification === NotificationCategories.LIKE || typeOfNotification === NotificationCategories.COMMENT) { router.push(paths.dashboard.publication.details(notification.payload.data.content.root_id)); @@ -35,6 +63,42 @@ export default function NotificationItem({ notification, onMarkAsRead }: Notific } }; + const toggleReaction = async () => { + if (!sessionData?.authenticated) return dispatch(openLoginModal()); + + try { + await toggle({ + reaction: PublicationReactionType.Upvote, + publication: comment, + }).then(() => { + // Send notification to the author of the comment + const notificationPayload = generatePayload('LIKE', { + id: comment?.by?.id, + displayName: comment?.by?.metadata?.displayName ?? 'no name', + avatar: comment?.by?.metadata?.avatar, + }, { + root_id: comment?.commentOn?.root?.id ?? comment?.commentOn?.id, + parent_id: comment?.commentOn?.id, + comment_id: comment?.id, + rawDescription: `${sessionData?.profile?.metadata?.displayName} liked your comment`, + }); + + if (!hasLiked){ + dispatch(incrementCounterLikes(comment.id)); + } else { + dispatch(decrementCounterLikes(comment.id)); + } + + if(!hasLiked && comment?.by?.id !== sessionData?.profile?.id) { + sendNotification(comment?.by?.id, sessionData?.profile?.id, notificationPayload); + } + }); + setHasLiked(!hasLiked); // Toggle the UI based on the reaction state + } catch (err) { + console.error('Error toggling reaction:', err); + } + }; + const renderAvatar = ( @@ -60,6 +124,77 @@ export default function NotificationItem({ notification, onMarkAsRead }: Notific /> ); + function reader(data: string) { + return ( + data.length > 8 ? ( + ):null + ); + } + + const transferAction = ( + + + {reader(`

@${receiver} ${message}.

`)} +
+
+ ); + + const messageAction = ( + message.length > 0 && ( + + + + {reader( + `

${message}.

` + )} +
+ + {/*Stack for show IconHeart and Reply icon*/} + + + { + loading ||loadingLike ? ( + + ) : ( + hasLiked ? ( + + ) : ( + + ))} + + + + + + +
+ ) + ); + const renderUnReadBadge = !notification.read && ( ); + const onDelete = async (id: string) => { + await deleteNotification(id); + } + + const renderDeleteButton = () => { + return ( notification.read && + onDelete(notification.id)} + sx={{ position: 'absolute', right: 20, top: 30, width: 32, height:32, transform: 'translateY(-50%)', borderRadius: '50%', bgcolor: 'background.neutral' }} + > + + + ); + } + return ( {renderUnReadBadge} + {renderDeleteButton()} + {renderAvatar} - {renderText} + + {renderText} + {typeOfNotification === NotificationCategories.TRANSFER && transferAction} + {typeOfNotification === NotificationCategories.COMMENT && messageAction} + ); } diff --git a/src/layouts/_common/notifications-popover/notifications-popover.tsx b/src/layouts/_common/notifications-popover/notifications-popover.tsx index 74b3692b1..c49f99555 100644 --- a/src/layouts/_common/notifications-popover/notifications-popover.tsx +++ b/src/layouts/_common/notifications-popover/notifications-popover.tsx @@ -22,13 +22,40 @@ import {Box} from "@mui/system"; import Image from "@src/components/image"; // @ts-ignore import emptyImage from "@src/assets/illustrations/empty-notifications.png"; +import {useCallback, useState} from "react"; +import Tabs from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import Label from "@src/components/label"; export default function NotificationsPopover() { const { notifications, markAsRead, markAllAsRead } = useNotifications(); + const unreadNotifications = notifications.filter((notification) => !notification.read); + const drawer = useBoolean(); const smUp = useResponsive('up', 'sm'); - const unreadNotifications = notifications.filter((notification) => !notification.read); + const [currentTab, setCurrentTab] = useState('all'); + const handleChangeTab = useCallback((event: React.SyntheticEvent, newValue: string) => { + setCurrentTab(newValue); + }, []); + + const TABS = [ + { + value: 'all', + label: 'All', + count: notifications.length, + }, + { + value: 'unread', + label: 'Unread', + count: unreadNotifications.length, + }, + { + value: 'archived', + label: 'Archived', + count: notifications.length - unreadNotifications.length, + }, + ]; const renderHead = ( @@ -37,7 +64,7 @@ export default function NotificationsPopover() { {notifications.length ? ( - + @@ -52,6 +79,53 @@ export default function NotificationsPopover() { ); + const renderTabs = ( + + {TABS.map((tab) => ( + + {tab.count} + + } + sx={{ + '&:not(:last-of-type)': { + mr: 3, + }, + }} + /> + ))} + + ); + + + const renderNotifications = (notifications: any) => ( + + + { notifications.length > 0 ? ( + notifications.map((notification: NotificationColumnsProps) => ( + + )) + ) : } + + + ); + return ( <> - - - { notifications.length > 0 ? ( - notifications.map((notification: NotificationColumnsProps) => ( - - )) - ) : } - - + + {renderTabs} + {/* + + */} + + + + + { + currentTab === 'all' && renderNotifications(notifications) + } + + { + currentTab === 'unread' && renderNotifications(unreadNotifications) + } + + { + currentTab === 'archived' && renderNotifications(notifications.filter((notification) => notification.read)) + } + ); diff --git a/src/redux/notifications/index.ts b/src/redux/notifications/index.ts index 756192680..e023e4abb 100644 --- a/src/redux/notifications/index.ts +++ b/src/redux/notifications/index.ts @@ -1,8 +1,11 @@ import { createSlice, PayloadAction } from '@reduxjs/toolkit'; -import { NotificationColumnsProps } from '@src/layouts/_common/notifications-popover/notification-item.tsx'; +import { NotificationItemProps } from '@src/layouts/_common/notifications-popover/notification-item.tsx'; + +// @ts-ignore +import Ding from '@src/assets/audio/notify.mp3'; interface NotificationsState { - notifications: NotificationColumnsProps[]; + notifications: NotificationItemProps[]; } const initialState: NotificationsState = { @@ -13,14 +16,17 @@ const notificationsSlice = createSlice({ name: 'notifications', initialState, reducers: { - setNotifications(state, action: PayloadAction) { + setNotifications(state, action: PayloadAction) { state.notifications = action.payload; }, - appendNotification(state, action: PayloadAction) { + appendNotification(state, action: PayloadAction) { const existingIndex = state.notifications.findIndex(notification => notification.id === action.payload.id); if (existingIndex !== -1) { state.notifications[existingIndex] = action.payload; } else { + // Play a sound when a new notification is appended + const audio = new Audio(Ding); + audio.play(); state.notifications = [action.payload, ...state.notifications]; } }, diff --git a/src/routes/sections/index.tsx b/src/routes/sections/index.tsx index 3262fc660..0533cb81d 100644 --- a/src/routes/sections/index.tsx +++ b/src/routes/sections/index.tsx @@ -16,7 +16,7 @@ export default function Router() { useEffect(() => { if (sessionData?.profile?.id) { // Subscribe to notifications channel - subscribeToNotifications(sessionData?.profile?.id, dispatch); + subscribeToNotifications(sessionData?.profile?.id, dispatch, ['notifications','transactions']); // Set the notifications in first render getNotifications(sessionData?.profile?.id).then(() => {}); diff --git a/src/sections/finance/components/banking-quick-transfer.tsx b/src/sections/finance/components/banking-quick-transfer.tsx index 909cd9c2e..dc450f598 100644 --- a/src/sections/finance/components/banking-quick-transfer.tsx +++ b/src/sections/finance/components/banking-quick-transfer.tsx @@ -24,6 +24,12 @@ import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel' import {useSelector} from "react-redux"; import {truncateAddress} from "@src/utils/wallet.ts"; import {Profile} from "@lens-protocol/api-bindings"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { supabase } from '@src/utils/supabase'; +import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; +import {useNotifications} from "@src/hooks/use-notifications.ts"; +import {useSnackbar} from "notistack"; // ---------------------------------------------------------------------- @@ -94,7 +100,7 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth const confirm = useBoolean(); - const getContactInfo = list?.find((_, index) => index === carousel.currentIndex); + const getContactInfo: Profile | undefined= list?.find((_, index) => index === carousel.currentIndex); useEffect(() => { if (amount) { @@ -327,19 +333,7 @@ function InputAmount({ autoWidth, amount, onBlur, onChange, max, sx, ...other } type TConfirmTransferDialogProps = InputAmountProps & DialogProps; interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { - contactInfo?: { - id: string; - ownedBy: {address: string} - metadata: { - displayName: string; - picture: { - optimized: { - uri: string; - }; - }; - }; - - }; + contactInfo?: Profile; onClose: VoidFunction; } @@ -353,6 +347,56 @@ function ConfirmTransferDialog({ onBlur, onChange, }: ConfirmTransferDialogProps) { + const sessionData = useSelector((state: any) => state.auth.session); + const { generatePayload } = useNotificationPayload(sessionData); + const { sendNotification } = useNotifications(); + const { enqueueSnackbar } = useSnackbar(); + const [message, setMessage] = useState(''); + const [loading, setLoading] = useState(false); + + async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { + setLoading(true); + + const { error } = await supabase + .from('transactions') + .insert([{ receiver_id, sender_id, payload }]); + + if (error) { + console.error('Error storing transaction:', error); + } else { + console.log('Transaction stored successfully'); + } + } + + const handleConfirmTransfer = async () => { + setLoading(true); + const senderId = sessionData?.profile?.id; + + const notificationPayload = generatePayload('TRANSFER', { + id: contactInfo.id, + displayName: contactInfo?.metadata?.displayName ?? 'no name', + avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri, + }, { + rawDescription: `${sessionData?.profile?.metadata?.displayName} sent you ${amount} MMC`, + message, + }); + + await storeTransactionInSupabase(contactInfo?.id, senderId, { + address: contactInfo?.ownedBy?.address, + amount, + message, + notificationPayload + }); + + await sendNotification(contactInfo.id, sessionData?.profile?.id, notificationPayload); + + enqueueSnackbar('The transfer has been sent to ' + contactInfo?.metadata?.displayName , { variant: 'success' }) + + setLoading(false); + onClose(); + }; + + const RainbowEffect = loading ? NeonPaper : Box; return ( Transfer to @@ -384,15 +428,25 @@ function ConfirmTransferDialog({ sx={{ justifyContent: 'flex-end' }} /> - + setMessage(e.target.value)} + fullWidth multiline rows={3} placeholder="Write a message..." />
- + + + Confirm & Transfer + + ); diff --git a/src/types/notification.ts b/src/types/notification.ts index 70b4c3d53..73266b911 100644 --- a/src/types/notification.ts +++ b/src/types/notification.ts @@ -4,6 +4,7 @@ export enum NotificationCategories { COMMENT = 'COMMENT', JOIN = 'JOIN', MENTION = 'MENTION', + TRANSFER = 'TRANSFER', } export type NotificationColumnsProps = { diff --git a/src/utils/subscribe-notifications-supabase.ts b/src/utils/subscribe-notifications-supabase.ts index 560084fe0..9bb481c70 100644 --- a/src/utils/subscribe-notifications-supabase.ts +++ b/src/utils/subscribe-notifications-supabase.ts @@ -2,20 +2,18 @@ import { supabase } from '@src/utils/supabase'; import { Dispatch } from 'redux'; import {Events} from "@src/utils/events.ts"; -/** - * Subscribe to notifications channel from Supabase - * @param profileId - * @param dispatch - */ -export function subscribeToNotifications(profileId: string, dispatch?: Dispatch) { - supabase - .channel('notifications') - .on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'notifications', filter: `receiver_id=eq.${profileId}`}, payload => { - Events.Handlers(payload, profileId, dispatch) - }) - // This is a handler when update the notifications table manually using the Supabase Dashboard - .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'notifications', filter: `receiver_id=eq.${profileId}`}, payload => { - Events.Handlers(payload, profileId, dispatch) - }) - .subscribe(); +export function subscribeToNotifications(profileId: string, dispatch?: Dispatch, tables: string[] = ['notifications']) { + const channel = supabase.channel('changes'); + + tables.forEach(table => { + channel + .on('postgres_changes', { event: 'INSERT', schema: 'public', table, filter: `receiver_id=eq.${profileId}` }, payload => { + Events.Handlers(payload, profileId, dispatch); + }) + .on('postgres_changes', { event: 'UPDATE', schema: 'public', table, filter: `receiver_id=eq.${profileId}` }, payload => { + Events.Handlers(payload, profileId, dispatch); + }); + }); + + channel.subscribe(); } From f4ee07a2fdd71b215321f1fb6b8f4c646bc7600f Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Fri, 20 Dec 2024 22:00:35 -0600 Subject: [PATCH 15/71] feat: add recent transactions redux slice - Create a new redux slice under `src/redux/recent-transactions/index.ts`. - Define `TransactionItemProps` and `TransactionsState` types for transactions. - Add `setTransactions` and `appendTransaction` reducers for managing transactions. --- src/redux/recent-transactions/index.ts | 60 ++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/redux/recent-transactions/index.ts diff --git a/src/redux/recent-transactions/index.ts b/src/redux/recent-transactions/index.ts new file mode 100644 index 000000000..b7f3a097e --- /dev/null +++ b/src/redux/recent-transactions/index.ts @@ -0,0 +1,60 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +export type TransactionItemProps = { + id: string; + receiver_id: string; + sender_id: string; + payload: { + amount: number; + address: string; + message: string; + type: string; + category: string; + data: { + to : { + id: string; + displayName: string; + avatar: string; + }, + from: { + id: string; + displayName: string; + avatar: string; + }, + content: { + message: string; + rawDescription: string; + }; +} + } +} + +interface TransactionsState { + transactions: TransactionItemProps[]; +} + +const initialState: TransactionsState = { + transactions: [], +}; + +const transactionsSlice = createSlice({ + name: 'notifications', + initialState, + reducers: { + setTransactions(state, action: PayloadAction) { + state.transactions = action.payload; + }, + appendTransaction(state, action: PayloadAction) { + const existingIndex = state.transactions.findIndex(transaction => transaction.id === action.payload.id); + if (existingIndex !== -1) { + state.transactions[existingIndex] = action.payload; + } else { + // Play a sound when a new transaction is appended + state.transactions = [action.payload, ...state.transactions]; + } + }, + }, +}); + +export const { setTransactions, appendTransaction } = transactionsSlice.actions; +export default transactionsSlice.reducer; From 82b012fb1e22a60f8679d78fbbb84f9d78742c78 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Fri, 20 Dec 2024 22:00:58 -0600 Subject: [PATCH 16/71] feat(finance): enhance banking transfer UI and payload handling - **banking-quick-transfer.tsx**: - Add `InputBase` from MUI for address input, replacing "Recent" label and "View All" button. This improves the user interface by enabling direct address input. - Refactor spread operator usage to include notification payload when sending a transfer. This optimizes the data sent in the API call and ensures completeness. --- .../components/banking-quick-transfer.tsx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/sections/finance/components/banking-quick-transfer.tsx b/src/sections/finance/components/banking-quick-transfer.tsx index dc450f598..18a559056 100644 --- a/src/sections/finance/components/banking-quick-transfer.tsx +++ b/src/sections/finance/components/banking-quick-transfer.tsx @@ -30,6 +30,7 @@ import { supabase } from '@src/utils/supabase'; import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; import {useNotifications} from "@src/hooks/use-notifications.ts"; import {useSnackbar} from "notistack"; +import InputBase from "@mui/material/InputBase"; // ---------------------------------------------------------------------- @@ -254,18 +255,17 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth - - Recent - - - + {renderCarousel} @@ -385,7 +385,7 @@ function ConfirmTransferDialog({ address: contactInfo?.ownedBy?.address, amount, message, - notificationPayload + ...notificationPayload, }); await sendNotification(contactInfo.id, sessionData?.profile?.id, notificationPayload); From 0aa0175094b6599482e66fef4b847a71958de11b Mon Sep 17 00:00:00 2001 From: jadapema Date: Mon, 23 Dec 2024 09:51:38 -0600 Subject: [PATCH 17/71] feat: added transfer card improvements --- src/components/input-amount.tsx | 52 +++++ .../finance/components/banking-contacts.tsx | 27 ++- .../components/banking-quick-transfer.tsx | 203 ++++++++---------- src/sections/finance/index.tsx | 12 +- 4 files changed, 166 insertions(+), 128 deletions(-) create mode 100644 src/components/input-amount.tsx diff --git a/src/components/input-amount.tsx b/src/components/input-amount.tsx new file mode 100644 index 000000000..779937543 --- /dev/null +++ b/src/components/input-amount.tsx @@ -0,0 +1,52 @@ +import { useEffect, useState } from 'react'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import Input, { InputProps, inputClasses } from '@mui/material/Input'; + +const STEP = 50; +const MIN_AMOUNT = 0; + +export interface InputAmountProps extends InputProps { + max: number; + amount: number | number[]; +} + +export const InputAmount = ({ amount, onBlur, onChange, max, sx, ...other }: InputAmountProps) => { + const [autoWidth, setAutoWidth] = useState(32); + + useEffect(() => { + const getNumberLength = amount.toString().length || 1; + setAutoWidth(getNumberLength * 24); + }, [amount]); + + return ( + + + + MMC + + ); +}; diff --git a/src/sections/finance/components/banking-contacts.tsx b/src/sections/finance/components/banking-contacts.tsx index 37341d599..135cf1be2 100644 --- a/src/sections/finance/components/banking-contacts.tsx +++ b/src/sections/finance/components/banking-contacts.tsx @@ -10,6 +10,8 @@ import ListItemText from '@mui/material/ListItemText'; // components import Iconify from '@src/components/iconify'; import {Profile} from "@lens-protocol/api-bindings"; +import { paths } from '@src/routes/paths.ts'; +import { useRouter } from '@src/routes/hooks'; // ---------------------------------------------------------------------- @@ -20,6 +22,13 @@ interface Props extends CardProps { } export default function BankingContacts({ title, subheader, list, ...other }: Props) { + const router = useRouter(); + + const goToProfile = (id: string) => { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + router.push(paths.dashboard.user.root(id)); + }; + return ( {list.map((profile) => ( - - - + goToProfile(profile.id)}> + + + + diff --git a/src/sections/finance/components/banking-quick-transfer.tsx b/src/sections/finance/components/banking-quick-transfer.tsx index dc450f598..3bce451e6 100644 --- a/src/sections/finance/components/banking-quick-transfer.tsx +++ b/src/sections/finance/components/banking-quick-transfer.tsx @@ -9,17 +9,14 @@ import Tooltip from '@mui/material/Tooltip'; import TextField from '@mui/material/TextField'; import Box from '@mui/material/Box'; import CardHeader from '@mui/material/CardHeader'; -import Typography from '@mui/material/Typography'; import DialogTitle from '@mui/material/DialogTitle'; import { CardProps } from '@mui/material/Card'; import ListItemText from '@mui/material/ListItemText'; import DialogActions from '@mui/material/DialogActions'; import Dialog, { DialogProps } from '@mui/material/Dialog'; -import Input, { InputProps, inputClasses } from '@mui/material/Input'; // hooks import { useBoolean } from '@src/hooks/use-boolean'; // components -import Iconify from '@src/components/iconify'; import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; import {useSelector} from "react-redux"; import {truncateAddress} from "@src/utils/wallet.ts"; @@ -30,6 +27,8 @@ import { supabase } from '@src/utils/supabase'; import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; import {useNotifications} from "@src/hooks/use-notifications.ts"; import {useSnackbar} from "notistack"; +import { InputAmount, InputAmountProps } from '@src/components/input-amount.tsx'; +import { ethers } from 'ethers'; // ---------------------------------------------------------------------- @@ -47,13 +46,20 @@ interface Props extends CardProps { list: Profile[] | undefined; } +// ---------------------------------------------------------------------- + +const isValidAddress = (address: string): boolean => { + return ethers.isAddress(address); +}; + +// ---------------------------------------------------------------------- + export default function BankingQuickTransfer({ title, subheader,sx, list, ...other }: Props) { const theme = useTheme(); - const balance = useSelector((state: any) => state.auth.balance); - + const [walletAddress, setWalletAddress] = useState(''); + const [addressError, setAddressError] = useState(false); const MAX_AMOUNT = balance; - const carousel = useCarousel({ centerMode: true, swipeToSlide: true, @@ -93,26 +99,35 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth }, ], }); - - const [autoWidth, setAutoWidth] = useState(32); - const [amount, setAmount] = useState(0); - const confirm = useBoolean(); - + const [initialized, setInitialized] = useState(false); const getContactInfo: Profile | undefined= list?.find((_, index) => index === carousel.currentIndex); useEffect(() => { - if (amount) { - handleAutoWidth(); + if (!initialized && list?.length && carousel.carouselRef.current) { + carousel.setCurrentIndex(list?.length > 5 ? 2 : 0); + setInitialized(true); } - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [amount]); + }, [list, carousel, initialized]); - const handleAutoWidth = useCallback(() => { - const getNumberLength = amount.toString().length; - setAutoWidth(getNumberLength * 24); - }, [amount]); + useEffect(() => { + const currentProfile = list?.[carousel.currentIndex]; + if (currentProfile?.ownedBy?.address) { + setWalletAddress(currentProfile.ownedBy.address); + } + }, [carousel.currentIndex, list]); + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setWalletAddress(value); + + if (isValidAddress(value)) { + setAddressError(false); + } else { + setAddressError(true); + } + }; const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { setAmount(newValue as number); @@ -130,8 +145,28 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth } }, [amount]); + const handleTransferFinish = () => { + setAmount(0) + setWalletAddress('') + confirm.onFalse?.(); + } + + const renderWalletInput = ( + + + + ); + const renderCarousel = ( - + {list?.map((profile, index) => ( - + - - insert amount - @@ -232,7 +263,7 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth size="large" color="inherit" variant="contained" - disabled={amount === 0} + disabled={amount === 0 || !isValidAddress(walletAddress)} onClick={confirm.onTrue} > Transfer Now @@ -253,22 +284,9 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth - - - Recent - - - - + {renderWalletInput} - {renderCarousel} + {!!list?.length ? renderCarousel : undefined} {renderInput} @@ -279,8 +297,8 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth amount={amount} onBlur={handleBlur} open={confirm.value} - autoWidth={autoWidth} - onClose={confirm.onFalse} + address={walletAddress} + onClose={handleTransferFinish} contactInfo={getContactInfo} onChange={handleChangeInput} /> @@ -290,62 +308,20 @@ export default function BankingQuickTransfer({ title, subheader,sx, list, ...oth // ---------------------------------------------------------------------- -interface InputAmountProps extends InputProps { - autoWidth: number; - max: number; - amount: number | number[]; -} - -function InputAmount({ autoWidth, amount, onBlur, onChange, max, sx, ...other }: InputAmountProps) { - return ( - - - - MMC - - ); -} - -// ---------------------------------------------------------------------- - type TConfirmTransferDialogProps = InputAmountProps & DialogProps; interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { contactInfo?: Profile; + address?: string; onClose: VoidFunction; } function ConfirmTransferDialog({ open, amount, - autoWidth, contactInfo, - max, onClose, - onBlur, - onChange, + address }: ConfirmTransferDialogProps) { const sessionData = useSelector((state: any) => state.auth.session); const { generatePayload } = useNotificationPayload(sessionData); @@ -353,6 +329,9 @@ function ConfirmTransferDialog({ const { enqueueSnackbar } = useSnackbar(); const [message, setMessage] = useState(''); const [loading, setLoading] = useState(false); + const isSame = contactInfo?.ownedBy?.address === address; + const defaultImage = `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${address}`; + const defaultName = 'Destination wallet'; async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { setLoading(true); @@ -373,7 +352,7 @@ function ConfirmTransferDialog({ const senderId = sessionData?.profile?.id; const notificationPayload = generatePayload('TRANSFER', { - id: contactInfo.id, + id: contactInfo?.id ?? '', displayName: contactInfo?.metadata?.displayName ?? 'no name', avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri, }, { @@ -388,7 +367,7 @@ function ConfirmTransferDialog({ notificationPayload }); - await sendNotification(contactInfo.id, sessionData?.profile?.id, notificationPayload); + await sendNotification(contactInfo?.id ?? '', sessionData?.profile?.id, notificationPayload); enqueueSnackbar('The transfer has been sent to ' + contactInfo?.metadata?.displayName , { variant: 'success' }) @@ -400,34 +379,28 @@ function ConfirmTransferDialog({ return ( Transfer to + + + + + + + - - - - - + + + - - - setMessage(e.target.value)} fullWidth multiline rows={3} placeholder="Write a message..." /> diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 05b739c12..b590996e4 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -161,11 +161,13 @@ export default function OverviewBankingView() { - + {following?.length ? ( + + ) : undefined} Date: Mon, 23 Dec 2024 12:43:53 -0600 Subject: [PATCH 18/71] feat(finance): add wallet transfer button with tooltip - Added a new IconButton wrapped in a Tooltip for transferring between wallets in `src/sections/finance/index.tsx`. - Adjusted spacing in the summary widgets Stack from 3 to 1 for better alignment. --- src/sections/finance/index.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index b590996e4..bc1259d65 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -13,6 +13,11 @@ import BankingBalanceStatistics from '@src/sections/finance/components/banking-b import BankingRecentTransitions from '@src/sections/finance/components/banking-recent-transitions'; import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; +import Iconify from '@src/components/iconify'; +import IconButton from "@mui/material/IconButton"; +import { Box } from '@mui/system'; +import Typography from "@mui/material/Typography"; +import Tooltip from "@mui/material/Tooltip"; // ---------------------------------------------------------------------- @@ -36,7 +41,7 @@ export default function OverviewBankingView() { > - + + + + + + + + + + + Date: Mon, 23 Dec 2024 21:45:31 -0600 Subject: [PATCH 19/71] feat(finance): add wallet transfer functionality - Introduced `FinanceTransferAccounts` component for wallet transfers in `finance/index.tsx`. - Added `FinanceWalletTransferWidgetHorizontal` for horizontal wallet balance display. - Implemented `ConfirmTransferDialog` for wallet transfer confirmation, including input swap, slider, and amount validation functionality. - Removed old tooltip-based wallet transfer logic and replaced with new components for better UX. --- .../components/finance-transfer-accounts.tsx | 296 ++++++++++++++++++ ...ance-wallet-transfer-widget-horizontal.tsx | 49 +++ src/sections/finance/index.tsx | 20 +- 3 files changed, 347 insertions(+), 18 deletions(-) create mode 100644 src/sections/finance/components/finance-transfer-accounts.tsx create mode 100644 src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx diff --git a/src/sections/finance/components/finance-transfer-accounts.tsx b/src/sections/finance/components/finance-transfer-accounts.tsx new file mode 100644 index 000000000..f16468fba --- /dev/null +++ b/src/sections/finance/components/finance-transfer-accounts.tsx @@ -0,0 +1,296 @@ +import React, { useState, useCallback, FC } from 'react'; +// @mui +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import DialogTitle from '@mui/material/DialogTitle'; +import Card, { CardProps } from '@mui/material/Card'; +import DialogActions from '@mui/material/DialogActions'; +import Dialog, { DialogProps } from '@mui/material/Dialog'; +// hooks +import { useBoolean } from '@src/hooks/use-boolean'; +// components +import { useSelector } from "react-redux"; +import { Profile } from "@lens-protocol/api-bindings"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { useSnackbar } from "notistack"; +import { InputAmount, InputAmountProps } from '@src/components/input-amount.tsx'; +import IconButton from "@mui/material/IconButton"; +import Tooltip from "@mui/material/Tooltip"; +import Iconify from "@src/components/iconify"; +import Slider from "@mui/material/Slider"; +import { Divider, useTheme } from '@mui/material'; +import Scrollbar from '@src/components/scrollbar'; +import FinanceWalletTransferWidgetHorizontal from "@src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx"; +import Typography from "@mui/material/Typography"; + +// ---------------------------------------------------------------------- + +type ButtonSwapProps = { + icon: string; + tooltip?: string; + onClick?: VoidFunction; + flipIcon?: boolean; +} + +const ButtonSwap: FC = ({ onClick, tooltip, icon, flipIcon }) => { + return ( + + + + + + + + ); +} + +// ---------------------------------------------------------------------- +export default function FinanceTransferAccounts() { + const sessionData = useSelector((state: any) => state.auth.session); + + const balanceETH = useSelector((state: any) => state.auth.balance); + const watchitBalance = balanceETH + 1000; // Just for testing purposes + + const confirm = useBoolean(); + + const [maxBalance, setMaxBalance] = useState(balanceETH); + const [fromWallet, setFromWallet] = useState(sessionData?.address); + const [toWallet, setToWallet] = useState('0x4B0897b0513fdc7C541B6d9D7E929C4e5364D2dB'); + const [labelFrom, setLabelFrom] = useState('From ETH Wallet'); + const [labelTo, setLabelTo] = useState('To Watchit Wallet'); + + const handleTransferFinish = () => { + confirm.onFalse?.(); + } + + const handleOpenModal = () => { + confirm.onTrue?.(); + }; + + const handleSwapWallets = () => { + // Swap the wallets + setFromWallet(toWallet); + setToWallet(fromWallet); + + // Swap the labels + setLabelFrom((prevLabel) => (prevLabel === 'From ETH Wallet' ? 'From Watchit Wallet' : 'From ETH Wallet')); + setLabelTo((prevLabel) => (prevLabel === 'To Watchit Wallet' ? 'To ETH Wallet' : 'To Watchit Wallet')); + + // Swap the max balance + setMaxBalance(() => (labelTo === 'To Watchit Wallet' ? watchitBalance : balanceETH)); + }; + + return ( + <> + + + + + + ); +} + +// ---------------------------------------------------------------------- + +type TConfirmTransferDialogProps = InputAmountProps & DialogProps; + +interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { + address?: string; + onClose: VoidFunction; + fromWallet: string; + toWallet: string; + labelFrom: string; + labelTo: string; + onSwapWallets: VoidFunction; + balanceETH: number; + balanceWatchit: number; +} + +function ConfirmTransferDialog({ + open, + onClose, + fromWallet, + toWallet, + labelFrom, + labelTo, + max, + onSwapWallets, + balanceETH, + balanceWatchit, + }: ConfirmTransferDialogProps) { + const { enqueueSnackbar } = useSnackbar(); + const [loading, setLoading] = useState(false); + const [amount, setAmount] = useState(0); + + const handleConfirmTransfer = async () => { + setLoading(true); + setTimeout(() => { + // Notification for the user from wallet to wallet + enqueueSnackbar(`The transfer was successful ${labelFrom.toLowerCase()} to ${labelTo.toLowerCase()}`, { variant: 'success' }); + onClose(); + setLoading(false); + }, 2000); + }; + + const handleInputChange = (event: React.ChangeEvent) => { + // const value = event.target.value; + }; + + const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { + setAmount(newValue as number); + }, []); + + const handleChangeInput = useCallback((_event: React.ChangeEvent) => { + setAmount(Number(_event.target.value)); + }, []); + + const handleBlur = useCallback(() => { + if (amount < 0) { + setAmount(0); + } else if (amount > max) { + setAmount(max); + } + }, [amount]); + + const RainbowEffect = loading ? NeonPaper : Box; + + const renderFromWalletInput = ( + + + + ); + const renderToWalletInput = ( + + + + ); + + const theme = useTheme(); + + return ( + + Transfer between your wallets + + + + } + sx={{ py: 4 }} + > + + + + + + + + + + {renderFromWalletInput} + + {renderToWalletInput} + + + + + + + + + + + + + + Max: {max} MMC + + + + + + + Confirm & Transfer + + + + + ); +} diff --git a/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx b/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx new file mode 100644 index 000000000..dbd3901dc --- /dev/null +++ b/src/sections/finance/components/finance-wallet-transfer-widget-horizontal.tsx @@ -0,0 +1,49 @@ +import Box from '@mui/material/Box'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; +import CircularProgress from '@mui/material/CircularProgress'; +// components +import Iconify from '@src/components/iconify'; + +// ---------------------------------------------------------------------- + +type Props = { + icon: string; + title: string; + value: number; + color?: string; +}; + +export default function FinanceWalletTransferWidgetHorizontal({ title, icon, color, value }: Props) { + return ( + + + + + + + + + {title} + + + Balance + + + {value} MMC + + + ); +} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index bc1259d65..f54dc9dff 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -13,11 +13,7 @@ import BankingBalanceStatistics from '@src/sections/finance/components/banking-b import BankingRecentTransitions from '@src/sections/finance/components/banking-recent-transitions'; import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; -import Iconify from '@src/components/iconify'; -import IconButton from "@mui/material/IconButton"; -import { Box } from '@mui/system'; -import Typography from "@mui/material/Typography"; -import Tooltip from "@mui/material/Tooltip"; +import FinanceTransferAccounts from "@src/sections/finance/components/finance-transfer-accounts.tsx"; // ---------------------------------------------------------------------- @@ -67,19 +63,7 @@ export default function OverviewBankingView() { }} /> - - - - - - - - - + Date: Mon, 23 Dec 2024 21:46:36 -0600 Subject: [PATCH 20/71] refactor: simplify banking widget by removing unused imports - Removed unused imports from `banking-widget-summary.tsx` including framer-motion, IconButton, and color-related constants. - These imports were not utilized in the component and their removal helps streamline the code and reduces unnecessary dependencies. --- src/sections/finance/components/banking-widget-summary.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/sections/finance/components/banking-widget-summary.tsx b/src/sections/finance/components/banking-widget-summary.tsx index b3c675e21..b569f666d 100644 --- a/src/sections/finance/components/banking-widget-summary.tsx +++ b/src/sections/finance/components/banking-widget-summary.tsx @@ -15,11 +15,7 @@ import Iconify from '@src/components/iconify'; import Chart, { useChart } from '@src/components/chart'; // @ts-ignore import mmcTokenIcon from '@src/assets/mmc_token.ico'; -import {m} from "framer-motion"; -import {varHover} from "@src/components/animate"; -import IconButton from "@mui/material/IconButton"; import {useSelector} from "react-redux"; -import { COLORS } from '@src/layouts/config-layout.ts'; // ---------------------------------------------------------------------- From 21923ea938554a12f67907425fdaddeedcb33f72 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 23 Dec 2024 21:48:59 -0600 Subject: [PATCH 21/71] refactor: rename "banking" components to "finance" - Renamed `banking-current-balance.tsx` to `finance-current-balance.tsx` and updated its export. - Renamed and updated all other component files under `src/sections/finance/components`: - `banking-balance-statistics.tsx` -> `finance-balance-statistics.tsx` - `banking-contacts.tsx` -> `finance-contacts.tsx` - `banking-recent-transitions.tsx` -> `finance-recent-transitions.tsx` - `banking-widget-summary.tsx` -> `finance-widget-summary.tsx` - `banking-invite-friends.tsx` -> `finance-invite-friends.tsx` - `banking-quick-transfer.tsx` -> `finance-quick-transfer.tsx` - Updated imports and references in `src/sections/finance/index.tsx` accordingly. --- ...ics.tsx => finance-balance-statistics.tsx} | 2 +- ...king-contacts.tsx => finance-contacts.tsx} | 2 +- ...alance.tsx => finance-current-balance.tsx} | 2 +- ...friends.tsx => finance-invite-friends.tsx} | 2 +- ...ransfer.tsx => finance-quick-transfer.tsx} | 2 +- ...ons.tsx => finance-recent-transitions.tsx} | 2 +- ...summary.tsx => finance-widget-summary.tsx} | 2 +- src/sections/finance/index.tsx | 26 +++++++++---------- 8 files changed, 20 insertions(+), 20 deletions(-) rename src/sections/finance/components/{banking-balance-statistics.tsx => finance-balance-statistics.tsx} (97%) rename src/sections/finance/components/{banking-contacts.tsx => finance-contacts.tsx} (97%) rename src/sections/finance/components/{banking-current-balance.tsx => finance-current-balance.tsx} (98%) rename src/sections/finance/components/{banking-invite-friends.tsx => finance-invite-friends.tsx} (98%) rename src/sections/finance/components/{banking-quick-transfer.tsx => finance-quick-transfer.tsx} (99%) rename src/sections/finance/components/{banking-recent-transitions.tsx => finance-recent-transitions.tsx} (99%) rename src/sections/finance/components/{banking-widget-summary.tsx => finance-widget-summary.tsx} (98%) diff --git a/src/sections/finance/components/banking-balance-statistics.tsx b/src/sections/finance/components/finance-balance-statistics.tsx similarity index 97% rename from src/sections/finance/components/banking-balance-statistics.tsx rename to src/sections/finance/components/finance-balance-statistics.tsx index 8d2e1bba7..7c9d2e798 100644 --- a/src/sections/finance/components/banking-balance-statistics.tsx +++ b/src/sections/finance/components/finance-balance-statistics.tsx @@ -30,7 +30,7 @@ interface Props extends CardProps { }; } -export default function BankingBalanceStatistics({ title, subheader, chart, ...other }: Props) { +export default function FinanceBalanceStatistics({ title, subheader, chart, ...other }: Props) { const { categories, colors, series, options } = chart; const popover = usePopover(); diff --git a/src/sections/finance/components/banking-contacts.tsx b/src/sections/finance/components/finance-contacts.tsx similarity index 97% rename from src/sections/finance/components/banking-contacts.tsx rename to src/sections/finance/components/finance-contacts.tsx index 135cf1be2..83ecb3c5b 100644 --- a/src/sections/finance/components/banking-contacts.tsx +++ b/src/sections/finance/components/finance-contacts.tsx @@ -21,7 +21,7 @@ interface Props extends CardProps { list: Profile[]; } -export default function BankingContacts({ title, subheader, list, ...other }: Props) { +export default function FinanceContacts({ title, subheader, list, ...other }: Props) { const router = useRouter(); const goToProfile = (id: string) => { diff --git a/src/sections/finance/components/banking-current-balance.tsx b/src/sections/finance/components/finance-current-balance.tsx similarity index 98% rename from src/sections/finance/components/banking-current-balance.tsx rename to src/sections/finance/components/finance-current-balance.tsx index c787e22fb..3582827bf 100644 --- a/src/sections/finance/components/banking-current-balance.tsx +++ b/src/sections/finance/components/finance-current-balance.tsx @@ -33,7 +33,7 @@ type Props = { sx?: SxProps; }; -export default function BankingCurrentBalance({ list, sx }: Props) { +export default function FinanceCurrentBalance({ list, sx }: Props) { const theme = useTheme(); const carousel = useCarousel({ diff --git a/src/sections/finance/components/banking-invite-friends.tsx b/src/sections/finance/components/finance-invite-friends.tsx similarity index 98% rename from src/sections/finance/components/banking-invite-friends.tsx rename to src/sections/finance/components/finance-invite-friends.tsx index 8727d6e4c..43162eef3 100644 --- a/src/sections/finance/components/banking-invite-friends.tsx +++ b/src/sections/finance/components/finance-invite-friends.tsx @@ -18,7 +18,7 @@ interface Props extends BoxProps { description?: string; } -export default function BankingInviteFriends({ +export default function FinanceInviteFriends({ img, price, title, diff --git a/src/sections/finance/components/banking-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx similarity index 99% rename from src/sections/finance/components/banking-quick-transfer.tsx rename to src/sections/finance/components/finance-quick-transfer.tsx index 98f36a0af..61630408e 100644 --- a/src/sections/finance/components/banking-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -54,7 +54,7 @@ const isValidAddress = (address: string): boolean => { // ---------------------------------------------------------------------- -export default function BankingQuickTransfer({ title, subheader,sx, list, ...other }: Props) { +export default function FinanceQuickTransfer({ title, subheader,sx, list, ...other }: Props) { const theme = useTheme(); const balance = useSelector((state: any) => state.auth.balance); const [walletAddress, setWalletAddress] = useState(''); diff --git a/src/sections/finance/components/banking-recent-transitions.tsx b/src/sections/finance/components/finance-recent-transitions.tsx similarity index 99% rename from src/sections/finance/components/banking-recent-transitions.tsx rename to src/sections/finance/components/finance-recent-transitions.tsx index 9a21c26ae..6c80d9835 100644 --- a/src/sections/finance/components/banking-recent-transitions.tsx +++ b/src/sections/finance/components/finance-recent-transitions.tsx @@ -46,7 +46,7 @@ interface Props extends CardProps { tableLabels: any; } -export default function BankingRecentTransitions({ +export default function FinanceRecentTransitions({ title, subheader, tableLabels, diff --git a/src/sections/finance/components/banking-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx similarity index 98% rename from src/sections/finance/components/banking-widget-summary.tsx rename to src/sections/finance/components/finance-widget-summary.tsx index b569f666d..2638e2000 100644 --- a/src/sections/finance/components/banking-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -34,7 +34,7 @@ interface Props extends CardProps { }; } -export default function BankingWidgetSummary({ +export default function FinanceWidgetSummary({ title, total, icon, diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index f54dc9dff..8d57d963d 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -5,12 +5,12 @@ import Grid from '@mui/material/Unstable_Grid2'; import { _bankingRecentTransitions } from '@src/_mock'; // -import BankingContacts from '@src/sections/finance/components/banking-contacts'; -import BankingQuickTransfer from '@src/sections/finance/components/banking-quick-transfer'; -import BankingInviteFriends from '@src/sections/finance/components/banking-invite-friends'; -import BankingWidgetSummary from '@src/sections/finance/components/banking-widget-summary'; -import BankingBalanceStatistics from '@src/sections/finance/components/banking-balance-statistics'; -import BankingRecentTransitions from '@src/sections/finance/components/banking-recent-transitions'; +import FinanceContacts from '@src/sections/finance/components/finance-contacts.tsx'; +import FinanceQuickTransfer from '@src/sections/finance/components/finance-quick-transfer.tsx'; +import FinanceInviteFriends from '@src/sections/finance/components/finance-invite-friends.tsx'; +import FinanceWidgetSummary from '@src/sections/finance/components/finance-widget-summary.tsx'; +import FinanceBalanceStatistics from '@src/sections/finance/components/finance-balance-statistics.tsx'; +import FinanceRecentTransitions from '@src/sections/finance/components/finance-recent-transitions.tsx'; import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; import FinanceTransferAccounts from "@src/sections/finance/components/finance-transfer-accounts.tsx"; @@ -38,7 +38,7 @@ export default function OverviewBankingView() { - - - - - + {following?.length ? ( - ) : undefined} - Date: Mon, 23 Dec 2024 22:01:49 -0600 Subject: [PATCH 22/71] feat(should-login): enhance login prompt with icon & subtitle - `should-login.tsx`: Updated `notLoggedIn` component to accept `icon` and `subtitle` as props, added an icon display using `Iconify`, and adjusted styling/layout elements. - `withAuth.tsx`: Modified to pass `icon` and `subtitle` props to `ShouldLogin` for a more customized unauthorized view. - `finance.tsx`: Updated `withAuth` implementation to include new `icon` and `subtitle` parameters for the login prompt. This improves the user experience with a clearer and more visually appealing login prompt. --- src/components/should-login/should-login.tsx | 22 +++++++++++++++++--- src/components/should-login/withAuth.tsx | 4 ++-- src/pages/dashboard/finance.tsx | 4 ++-- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/src/components/should-login/should-login.tsx b/src/components/should-login/should-login.tsx index bd6ef6266..c20964a20 100644 --- a/src/components/should-login/should-login.tsx +++ b/src/components/should-login/should-login.tsx @@ -4,8 +4,16 @@ import Button from "@mui/material/Button"; import {COLORS} from "@src/layouts/config-layout.ts"; import {openLoginModal} from "@redux/auth"; import {useDispatch, useSelector} from "react-redux"; +import Iconify from "@src/components/iconify"; +import { FC } from "react"; -const notLoggedIn = () => { +// Create a type for the component props to receive the icon and subtitle +type Props = { + icon: string; + subtitle: string; +} + +const notLoggedIn: FC = ({icon, subtitle} ) => { const dispatch = useDispatch(); const sessionData = useSelector((state: any) => state.auth.session); @@ -21,7 +29,6 @@ const notLoggedIn = () => { alignItems: 'center', height: '100vh', flexDirection: 'column', - gap: '1rem', backgroundColor: COLORS.GRAY_DARK, color: 'white', position: 'absolute', @@ -31,10 +38,19 @@ const notLoggedIn = () => { zIndex: 10, }} > - Please log in to view this content + + Please log in + + {subtitle} + - ); } diff --git a/src/sections/finance/components/finance-transfer-accounts.tsx b/src/sections/finance/components/finance-transfer-accounts.tsx index f16468fba..7676a942c 100644 --- a/src/sections/finance/components/finance-transfer-accounts.tsx +++ b/src/sections/finance/components/finance-transfer-accounts.tsx @@ -5,14 +5,13 @@ import Button from '@mui/material/Button'; import TextField from '@mui/material/TextField'; import Box from '@mui/material/Box'; import DialogTitle from '@mui/material/DialogTitle'; -import Card, { CardProps } from '@mui/material/Card'; +import Card from '@mui/material/Card'; import DialogActions from '@mui/material/DialogActions'; import Dialog, { DialogProps } from '@mui/material/Dialog'; // hooks import { useBoolean } from '@src/hooks/use-boolean'; // components import { useSelector } from "react-redux"; -import { Profile } from "@lens-protocol/api-bindings"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; import LoadingButton from "@mui/lab/LoadingButton"; import { useSnackbar } from "notistack"; @@ -162,7 +161,7 @@ function ConfirmTransferDialog({ }, 2000); }; - const handleInputChange = (event: React.ChangeEvent) => { + const handleInputChange = (_event: React.ChangeEvent) => { // const value = event.target.value; }; diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 2194dcbf9..40b6514a2 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -34,10 +34,7 @@ export default function OverviewBankingView() { const processedData = groupedTransactionData(groupedData); const dataForBalanceStatistics = processedData.slice(0, -1); - const daySeriesData = processDayData(processedData).map(item => ({ - x: parseInt(item.x.replace('-', ''), 10), // Convert x to number - y: item.y, - })); + const daySeriesData = processDayData(processedData); // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; From ed13feb8ee051cd7e6b4cf59b595081f40192896 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 24 Dec 2024 19:33:19 -0600 Subject: [PATCH 27/71] feat: add custom date range picker utility hook - **Added `useDateRangePicker` hook** (`use-date-range-picker.ts`) with state management and error handling for date range selection. - **Defined type structures** for the date range picker in `types.ts` to ensure consistency and flexibility. - **Implemented utility functions** (`utils.ts`) like `shortDateLabel` for formatted date representations. - Exported all utilities** and main hook via `index.ts` to streamline module imports. --- .../custom-date-range-picker/index.ts | 6 ++ .../custom-date-range-picker/types.ts | 25 +++++++ .../use-date-range-picker.ts | 68 +++++++++++++++++++ .../custom-date-range-picker/utils.ts | 32 +++++++++ 4 files changed, 131 insertions(+) create mode 100644 src/components/custom-date-range-picker/index.ts create mode 100644 src/components/custom-date-range-picker/types.ts create mode 100644 src/components/custom-date-range-picker/use-date-range-picker.ts create mode 100644 src/components/custom-date-range-picker/utils.ts diff --git a/src/components/custom-date-range-picker/index.ts b/src/components/custom-date-range-picker/index.ts new file mode 100644 index 000000000..9f4e86257 --- /dev/null +++ b/src/components/custom-date-range-picker/index.ts @@ -0,0 +1,6 @@ +export * from './utils'; +export * from './types'; + +export { default as useDateRangePicker } from './use-date-range-picker'; + +export { default } from './custom-date-range-picker'; diff --git a/src/components/custom-date-range-picker/types.ts b/src/components/custom-date-range-picker/types.ts new file mode 100644 index 000000000..6aeb5a81d --- /dev/null +++ b/src/components/custom-date-range-picker/types.ts @@ -0,0 +1,25 @@ +// ---------------------------------------------------------------------- + +export type DateRangePickerProps = { + startDate: Date | null; + endDate: Date | null; + onChangeStartDate: (newValue: Date | null) => void; + onChangeEndDate: (newValue: Date | null) => void; + // + open: boolean; + onOpen?: VoidFunction; + onClose: VoidFunction; + onReset?: VoidFunction; + // + selected?: boolean; + error?: boolean; + // + label?: string; + shortLabel?: string; + // + title?: string; + variant?: 'calendar' | 'input'; + // + setStartDate?: React.Dispatch>; + setEndDate?: React.Dispatch>; +}; diff --git a/src/components/custom-date-range-picker/use-date-range-picker.ts b/src/components/custom-date-range-picker/use-date-range-picker.ts new file mode 100644 index 000000000..65f159155 --- /dev/null +++ b/src/components/custom-date-range-picker/use-date-range-picker.ts @@ -0,0 +1,68 @@ +import { useState, useCallback } from 'react'; +// utils +import { fDate } from '@src/utils/format-time'; +// +import { shortDateLabel } from './utils'; +import { DateRangePickerProps } from './types'; + +// ---------------------------------------------------------------------- + +type ReturnType = DateRangePickerProps; + +export default function useDateRangePicker(start: Date | null, end: Date | null): ReturnType { + const [open, setOpen] = useState(false); + + const [endDate, setEndDate] = useState(end); + + const [startDate, setStartDate] = useState(start); + + const error = start && end ? new Date(start).getTime() > new Date(end).getTime() : false; + + const onOpen = useCallback(() => { + setOpen(true); + }, []); + + const onClose = useCallback(() => { + setOpen(false); + }, []); + + const onChangeStartDate = useCallback((newValue: Date | null) => { + setStartDate(newValue); + }, []); + + const onChangeEndDate = useCallback( + (newValue: Date | null) => { + if (error) { + setEndDate(null); + } + setEndDate(newValue); + }, + [error] + ); + + const onReset = useCallback(() => { + setStartDate(null); + setEndDate(null); + }, []); + + return { + startDate, + endDate, + onChangeStartDate, + onChangeEndDate, + // + open, + onOpen, + onClose, + onReset, + // + selected: !!startDate && !!endDate, + error, + // + label: `${fDate(startDate)} - ${fDate(endDate)}`, + shortLabel: shortDateLabel(startDate, endDate), + // + setStartDate, + setEndDate, + }; +} diff --git a/src/components/custom-date-range-picker/utils.ts b/src/components/custom-date-range-picker/utils.ts new file mode 100644 index 000000000..2479f038e --- /dev/null +++ b/src/components/custom-date-range-picker/utils.ts @@ -0,0 +1,32 @@ +import { isSameDay, isSameMonth, getYear } from 'date-fns'; +// utils +import { fDate } from '@src/utils/format-time'; + +// ---------------------------------------------------------------------- + +export function shortDateLabel(startDate: Date | null, endDate: Date | null) { + const getCurrentYear = new Date().getFullYear(); + + const startDateYear = startDate ? getYear(startDate) : null; + + const endDateYear = endDate ? getYear(endDate) : null; + + const currentYear = getCurrentYear === startDateYear && getCurrentYear === endDateYear; + + const sameDay = startDate && endDate ? isSameDay(new Date(startDate), new Date(endDate)) : false; + + const sameMonth = + startDate && endDate ? isSameMonth(new Date(startDate), new Date(endDate)) : false; + + if (currentYear) { + if (sameMonth) { + if (sameDay) { + return fDate(endDate, 'dd MMM yy'); + } + return `${fDate(startDate, 'dd')} - ${fDate(endDate, 'dd MMM yy')}`; + } + return `${fDate(startDate, 'dd MMM')} - ${fDate(endDate, 'dd MMM yy')}`; + } + + return `${fDate(startDate, 'dd MMM yy')} - ${fDate(endDate, 'dd MMM yy')}`; +} From 599b4c9ba155fb55144f303bb177620ef9f4d7e9 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 24 Dec 2024 19:33:48 -0600 Subject: [PATCH 28/71] feat: enhance finance section and add custom date picker - Introduced `CustomDateRangePicker` component in `custom-date-range-picker.tsx` for reusable date picking functionality. - Enhanced finance section with a new transaction history view: - Added `FinanceTransactionsHistory` in `index.tsx` replacing previous `FinanceRecentTransitions`. - Created supporting components: `finance-transactions-table-row.tsx`, `finance-transactions-table-toolbar.tsx`, and `finance-transactions-table-filters-result.tsx`. - Updated `use-transaction-data` hook to process transaction types and raw/processed data. - Implemented `processTransactionData` in `groupedTransactions.ts` for better transactions structuring. - Added new transaction types in `transaction.ts` for enriching data consistency. - Fixed type mismatch in `table/types.ts` for `onSelectAllRows` input. --- .../custom-date-range-picker.tsx | 119 ++++++++ src/components/table/types.ts | 2 +- src/hooks/use-transaction-data.ts | 66 ++++- .../finance-transactions-history.tsx | 266 ++++++++++++++++++ ...ance-transactions-table-filters-result.tsx | 109 +++++++ .../finance-transactions-table-row.tsx | 77 +++++ .../finance-transactions-table-toolbar.tsx | 118 ++++++++ src/sections/finance/index.tsx | 45 +-- src/types/transaction.ts | 33 +++ .../finance-graphs/groupedTransactions.ts | 17 +- 10 files changed, 823 insertions(+), 29 deletions(-) create mode 100644 src/components/custom-date-range-picker/custom-date-range-picker.tsx create mode 100644 src/sections/finance/components/finance-transactions-history.tsx create mode 100644 src/sections/finance/components/finance-transactions-table-filters-result.tsx create mode 100644 src/sections/finance/components/finance-transactions-table-row.tsx create mode 100644 src/sections/finance/components/finance-transactions-table-toolbar.tsx create mode 100644 src/types/transaction.ts diff --git a/src/components/custom-date-range-picker/custom-date-range-picker.tsx b/src/components/custom-date-range-picker/custom-date-range-picker.tsx new file mode 100644 index 000000000..6f6985b9f --- /dev/null +++ b/src/components/custom-date-range-picker/custom-date-range-picker.tsx @@ -0,0 +1,119 @@ +// @mui +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import { DateCalendar } from '@mui/x-date-pickers/DateCalendar'; +import Paper from '@mui/material/Paper'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Dialog from '@mui/material/Dialog'; +import DialogTitle from '@mui/material/DialogTitle'; +import DialogActions from '@mui/material/DialogActions'; +import DialogContent from '@mui/material/DialogContent'; +import FormHelperText from '@mui/material/FormHelperText'; +// hooks +import { useResponsive } from '@src/hooks/use-responsive'; +// +import { DateRangePickerProps } from './types'; + +// ---------------------------------------------------------------------- + +export default function CustomDateRangePicker({ + title = 'Select date range', + variant = 'input', + // + startDate, + endDate, + // + onChangeStartDate, + onChangeEndDate, + // + open, + onClose, + // + error, +}: DateRangePickerProps) { + const mdUp = useResponsive('up', 'md'); + + const isCalendarView = variant === 'calendar'; + + return ( + + {title} + + + + {isCalendarView ? ( + <> + + + + + + + + + ) : ( + <> + + + + + )} + + + {error && ( + + End date must be later than start date + + )} + + + + + + + + + ); +} diff --git a/src/components/table/types.ts b/src/components/table/types.ts index c92484785..8fcb6b2d0 100644 --- a/src/components/table/types.ts +++ b/src/components/table/types.ts @@ -9,7 +9,7 @@ export type TableProps = { // selected: string[]; onSelectRow: (id: string) => void; - onSelectAllRows: (checked: boolean, newSelecteds: string[]) => void; + onSelectAllRows: (checked: boolean, newSelecteds: (string | number)[]) => void; // onResetPage: VoidFunction; onSort: (id: string) => void; diff --git a/src/hooks/use-transaction-data.ts b/src/hooks/use-transaction-data.ts index 750d247f4..7ee9862b4 100644 --- a/src/hooks/use-transaction-data.ts +++ b/src/hooks/use-transaction-data.ts @@ -2,14 +2,62 @@ import { useEffect, useState } from 'react'; import { supabase } from '@src/utils/supabase'; import { useSelector } from 'react-redux'; +export type TransactionType = { + id: number; + receiver_id: string; + sender_id: string; + created_at: string; + payload: { + data: { + to: { + id: string; + avatar: string; + displayName: string; + }; + from: { + id: string; + avatar: string; + displayName: string; + }; + content: { + message: string; + rawDescription: string; + }; + }, + type: string; + amount: number; + address: string; + message?: string; + category: string; + }; +}; + +export type TableRowTransactionType = { + id: number; + name: string; + avatarUrl: string; + amount:number | string; + category: string; + date: string; + message: string; + status: string; + type: string; +} + export type TransactionData = { date: string; income: number; expenses: number; }; -export const useTransactionData = () => { +export type TransactionsDataResponseHook = { + data: TransactionData[]; + rawData: TransactionType[]; +}; + +export const useTransactionData = (): TransactionsDataResponseHook => { const [data, setData] = useState([]); + const [rawData, setRawData] = useState([]); const sessionData = useSelector((state: any) => state.auth.session); useEffect(() => { @@ -22,14 +70,22 @@ export const useTransactionData = () => { .or(`receiver_id.eq.${sessionData?.profile?.id},sender_id.eq.${sessionData?.profile?.id}`) .order('created_at', { ascending: true }); - - if (error) { + if (error) { console.error('Error fetching transactions:', error); return; } - const groupedData = transactions.reduce((acc: Record, transaction) => { + const processedTransactions = transactions.map((transaction: TransactionType) => ({ + ...transaction, + payload: { + ...transaction.payload, + type: transaction.sender_id === sessionData?.profile?.id ? 'Outcome' : 'Income', + }, + })); + setRawData(processedTransactions); + + const groupedData = transactions.reduce((acc: Record, transaction) => { const date = new Date(transaction.created_at).toISOString().split('T')[0]; if (!acc[date]) { acc[date] = { date, income: 0, expenses: 0 }; @@ -49,5 +105,5 @@ export const useTransactionData = () => { fetchData().then(r => console.log(r)); }, [sessionData]); - return data; + return { data, rawData }; }; diff --git a/src/sections/finance/components/finance-transactions-history.tsx b/src/sections/finance/components/finance-transactions-history.tsx new file mode 100644 index 000000000..1aec06049 --- /dev/null +++ b/src/sections/finance/components/finance-transactions-history.tsx @@ -0,0 +1,266 @@ +import React, {useState, useCallback } from 'react'; +// @mui +import { alpha } from '@mui/material/styles'; +import Tab from '@mui/material/Tab'; +import Tabs from '@mui/material/Tabs'; +import Table from '@mui/material/Table'; +import TableBody from '@mui/material/TableBody'; + +import TableContainer from '@mui/material/TableContainer'; +// _mock +import {TRANSACTIONS_TYPES, transactions} from '@src/types/transaction'; +// utils +import { fTimestamp } from '@src/utils/format-time'; +// components +import Label from '@src/components/label'; +import Scrollbar from '@src/components/scrollbar'; + +import { + useTable, + getComparator, + emptyRows, + TableNoData, + TableEmptyRows, + TableHeadCustom, + TablePaginationCustom, +} from '@src/components/table'; +// types +import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; +// +import FinanceTransactionTableRow from '@src/sections/finance/components/finance-transactions-table-row'; +import FinanceTransactionsTableToolbar from '@src/sections/finance/components/finance-transactions-table-toolbar'; +import FinanceTransactionsTableFiltersResult from '@src/sections/finance/components/finance-transactions-table-filters-result'; +import {TableRowTransactionType} from "@src/hooks/use-transaction-data.ts"; + +// ---------------------------------------------------------------------- + +const STATUS_OPTIONS = [{ value: 'all', label: 'All' }, ...TRANSACTIONS_TYPES]; + +const TABLE_HEAD = [ + { id: 'name', label: 'Profile Info', width: 20 }, + { id: 'createdAt', label: 'Date', width: 40 }, + { id: 'amount', label: 'Amount', width: 40 }, + { id: 'status', label: 'Status', width: 20 }, +]; + +const defaultFilters: IOrderTableFilters = { + name: '', + status: 'all', + startDate: null, + endDate: null, +}; + +// ---------------------------------------------------------------------- +type FinanceTransactionsHistoryProps = { + transactionsData: TableRowTransactionType[]; +}; + +export default function FinanceTransactionsHistory({ transactionsData }: FinanceTransactionsHistoryProps) { + + const table = useTable({ defaultOrderBy: 'date' }); + + const [tableData, _setTableData] = useState(transactions(transactionsData)); + + const [filters, setFilters] = useState(defaultFilters); + + const dateError = + filters.startDate && filters.endDate + ? filters.startDate.getTime() > filters.endDate.getTime() + : false; + + const dataFiltered = applyFilter({ + inputData: transactionsData, + comparator: getComparator(table.order, table.orderBy), + filters, + dateError, + }); + + const denseHeight = table.dense ? 52 : 72; + + const canReset = + !!filters.name || filters.status !== 'all' || (!!filters.startDate && !!filters.endDate); + + const notFound = (!dataFiltered.length && canReset) || !dataFiltered.length; + + const handleFilters = useCallback( + (name: string, value: IOrderTableFilterValue) => { + table.onResetPage(); + setFilters((prevState) => ({ + ...prevState, + [name]: value, + })); + }, + [table] + ); + + const handleResetFilters = useCallback(() => { + setFilters(defaultFilters); + }, []); + + const handleFilterStatus = useCallback( + (_event: React.SyntheticEvent, newValue: string) => { + handleFilters('status', newValue); + }, + [handleFilters] + ); + + return ( + <> + `inset 0 -2px 0 0 ${alpha(theme.palette.grey[500], 0.08)}`, + }} + > + {STATUS_OPTIONS.map((tab) => ( + + {tab.value === 'all' && transactionsData.length} + {tab.value === 'income' && + transactionsData.filter((t) => t.type.toLowerCase() === 'income').length} + {tab.value === 'outcome' && + transactionsData.filter((t) => t.type.toLowerCase() === 'outcome').length} + + } + /> + ))} + + + + + {canReset && ( + + )} + + + + + + + + {dataFiltered + .slice( + table.page * table.rowsPerPage, + table.page * table.rowsPerPage + table.rowsPerPage + ) + .map((row) => ( + + ))} + + + + + +
+
+
+ + + + ); +} + +// ---------------------------------------------------------------------- + +function applyFilter({ + inputData, + comparator, + filters, + dateError, +}: { + inputData: TableRowTransactionType[]; + comparator: (a: any, b: any) => number; + filters: IOrderTableFilters; + dateError: boolean; +}) { + + const { status, name, startDate, endDate } = filters; + + const stabilizedThis = inputData.map((el, index) => [el, index] as const); + + stabilizedThis.sort((a, b) => { + const order = comparator(a[0], b[0]); + if (order !== 0) return order; + return a[1] - b[1]; + }); + + inputData = stabilizedThis.map((el) => el[0]); + + if (name) { + inputData = inputData.filter( + (t) => + t.type.toLowerCase().indexOf(name.toLowerCase()) !== -1 || + t.name.toLowerCase().indexOf(name.toLowerCase()) !== -1 || + String(t.amount).toLowerCase().indexOf(name.toLowerCase()) !== -1 + ); + } + + if (status !== 'all') { + inputData = inputData.filter((t) => t.type.toLowerCase() === status); + } + + if (!dateError) { + if (startDate && endDate) { + inputData = inputData.filter( + (t) => + fTimestamp(t.date) >= fTimestamp(startDate) && + fTimestamp(t.date) <= fTimestamp(endDate) + ); + } + } + + return inputData; +} diff --git a/src/sections/finance/components/finance-transactions-table-filters-result.tsx b/src/sections/finance/components/finance-transactions-table-filters-result.tsx new file mode 100644 index 000000000..f8818701b --- /dev/null +++ b/src/sections/finance/components/finance-transactions-table-filters-result.tsx @@ -0,0 +1,109 @@ +// @mui +import Box from '@mui/material/Box'; +import Chip from '@mui/material/Chip'; +import Paper from '@mui/material/Paper'; +import Button from '@mui/material/Button'; +import Stack, { StackProps } from '@mui/material/Stack'; +// types +import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; +// components +import Iconify from '@src/components/iconify'; +import { shortDateLabel } from '@src/components/custom-date-range-picker'; + +// ---------------------------------------------------------------------- + +type Props = StackProps & { + filters: IOrderTableFilters; + onFilters: (name: string, value: IOrderTableFilterValue) => void; + // + onResetFilters: VoidFunction; + // + results: number; +}; + +export default function FinanceTransactionsTableFiltersResult({ + filters, + onFilters, + // + onResetFilters, + // + results, + ...other +}: Props) { + const shortLabel = shortDateLabel(filters.startDate, filters.endDate); + + const handleRemoveStatus = () => { + onFilters('status', 'all'); + }; + + const handleRemoveDate = () => { + onFilters('startDate', null); + onFilters('endDate', null); + }; + + return ( + + + {results} + + results found + + + + + {filters.status !== 'all' && ( + + + + )} + + {filters.startDate && filters.endDate && ( + + + + )} + + + + + ); +} + +// ---------------------------------------------------------------------- + +type BlockProps = StackProps & { + label: string; +}; + +function Block({ label, children, sx, ...other }: BlockProps) { + return ( + + + {label} + + + + {children} + + + ); +} diff --git a/src/sections/finance/components/finance-transactions-table-row.tsx b/src/sections/finance/components/finance-transactions-table-row.tsx new file mode 100644 index 000000000..f79f3f546 --- /dev/null +++ b/src/sections/finance/components/finance-transactions-table-row.tsx @@ -0,0 +1,77 @@ +import { format } from 'date-fns'; +// @mui +import Box from '@mui/material/Box'; +import Avatar from '@mui/material/Avatar'; +import TableRow from '@mui/material/TableRow'; +import Checkbox from '@mui/material/Checkbox'; +import TableCell from '@mui/material/TableCell'; +import ListItemText from '@mui/material/ListItemText'; +// components +import Label from '@src/components/label'; +import {TableRowTransactionType } from "@src/hooks/use-transaction-data.ts"; + +// ---------------------------------------------------------------------- + +type Props = { + row: TableRowTransactionType; + selected: boolean; +}; + +export default function FinanceTransactionTableRow({ + row, + selected +}: Props) { + const { date, name, amount, status, type, avatarUrl, message, category } = row; + + const renderPrimary = ( + + + + + + + + + + + {amount} MMC + + + + + + ); + + return ( + <> + {renderPrimary} + + ); +} diff --git a/src/sections/finance/components/finance-transactions-table-toolbar.tsx b/src/sections/finance/components/finance-transactions-table-toolbar.tsx new file mode 100644 index 000000000..eed2ca975 --- /dev/null +++ b/src/sections/finance/components/finance-transactions-table-toolbar.tsx @@ -0,0 +1,118 @@ +import { useCallback } from 'react'; +// @mui +import { DatePicker } from '@mui/x-date-pickers/DatePicker'; +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import TextField from '@mui/material/TextField'; +import InputAdornment from '@mui/material/InputAdornment'; +// types +import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; +// components +import Iconify from '@src/components/iconify'; + +// ---------------------------------------------------------------------- + +type Props = { + filters: IOrderTableFilters; + onFilters: (name: string, value: IOrderTableFilterValue) => void; + // + canReset: boolean; + onResetFilters: VoidFunction; +}; + +export default function FinanceTransactionsTableToolbar({ + filters, + onFilters, + canReset, + onResetFilters, +}: Props) { + + const handleFilterName = useCallback( + (event: React.ChangeEvent) => { + onFilters('name', event.target.value); + }, + [onFilters] + ); + + const handleFilterStartDate = useCallback( + (newValue: Date | null) => { + onFilters('startDate', newValue); + }, + [onFilters] + ); + + const handleFilterEndDate = useCallback( + (newValue: Date | null) => { + onFilters('endDate', newValue); + }, + [onFilters] + ); + + return ( + <> + + + + + + + + + + ), + }} + /> + + + {canReset && ( + + )} + + + ); +} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 40b6514a2..97c55b5c8 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -1,8 +1,6 @@ import Stack from '@mui/material/Stack'; import Container from '@mui/material/Container'; import Grid from '@mui/material/Unstable_Grid2'; -// _mock -import { _bankingRecentTransitions } from '@src/_mock'; // import FinanceContacts from '@src/sections/finance/components/finance-contacts.tsx'; @@ -10,12 +8,19 @@ import FinanceQuickTransfer from '@src/sections/finance/components/finance-quick import FinanceInviteFriends from '@src/sections/finance/components/finance-invite-friends.tsx'; import FinanceWidgetSummary from '@src/sections/finance/components/finance-widget-summary.tsx'; import FinanceBalanceStatistics from '@src/sections/finance/components/finance-balance-statistics.tsx'; -import FinanceRecentTransitions from '@src/sections/finance/components/finance-recent-transitions.tsx'; + import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; import FinanceTransferAccounts from "@src/sections/finance/components/finance-transfer-accounts.tsx"; -import {useTransactionData} from "@src/hooks/use-transaction-data"; -import {groupedTransactionData, processDayData} from "@src/utils/finance-graphs/groupedTransactions.ts"; +import {TableRowTransactionType, useTransactionData} from "@src/hooks/use-transaction-data"; +import { + groupedTransactionData, + processDayData, + processTransactionData +} from "@src/utils/finance-graphs/groupedTransactions.ts"; +import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; +import Card from "@mui/material/Card"; +import Typography from "@mui/material/Typography"; // ---------------------------------------------------------------------- @@ -29,16 +34,19 @@ export default function OverviewBankingView() { for: sessionData?.profile?.id, }); - const groupedData = useTransactionData() + const {data: transactionsData, rawData: transactionsRawData} = useTransactionData() + + console.log(transactionsData, transactionsRawData) + // remove the last element as it is the current day - const processedData = groupedTransactionData(groupedData); + const processedData = groupedTransactionData(transactionsData); const dataForBalanceStatistics = processedData.slice(0, -1); - const daySeriesData = processDayData(processedData); - // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; + const processedTransactions: TableRowTransactionType[] = processTransactionData(transactionsRawData); + return ( - -
+ + Recent Transactions + + +
+ + diff --git a/src/types/transaction.ts b/src/types/transaction.ts new file mode 100644 index 000000000..5d24d7866 --- /dev/null +++ b/src/types/transaction.ts @@ -0,0 +1,33 @@ +import {TableRowTransactionType, TransactionType} from "@src/hooks/use-transaction-data.ts"; + +export type IOrderTableFilterValue = string | Date | null; + +export type IOrderTableFilters = { + name: string; + status: string; + startDate: Date | null; + endDate: Date | null; +}; + +export const TRANSACTIONS_TYPES = [ + { value: 'income', label: 'Income' }, + { value: 'outcome', label: 'Outcomes' }, +]; + +export const transactions = (data: TransactionType[]): TableRowTransactionType[] => { + return data.map((transaction: TransactionType) => { + return { + id: transaction?.id, + avatarUrl: transaction?.payload?.type === 'Income' ? transaction?.payload?.data?.from?.avatar: transaction?.payload?.data?.to?.avatar, + category: transaction?.payload?.category, + date: transaction?.created_at, + amount: transaction?.payload?.amount, + message: transaction?.payload?.data?.content?.message, + name: transaction?.payload?.type === 'Income' ? transaction?.payload?.data?.from?.displayName: transaction?.payload?.data?.to?.displayName, + status: transaction?.payload?.data?.content?.rawDescription, + type: transaction?.payload?.type, + }; + }); +}; + + diff --git a/src/utils/finance-graphs/groupedTransactions.ts b/src/utils/finance-graphs/groupedTransactions.ts index 58912fe9a..e6719df86 100644 --- a/src/utils/finance-graphs/groupedTransactions.ts +++ b/src/utils/finance-graphs/groupedTransactions.ts @@ -1,5 +1,4 @@ -import { TransactionData } from '@src/hooks/use-transaction-data'; - +import {TransactionData, TransactionType} from '@src/hooks/use-transaction-data'; type GroupedData = { type: string; data: { @@ -99,3 +98,17 @@ export const processDayData = (groupedData: GroupedData[]): { x: string, y: numb return { x: monthDay, y: income - expenses }; }); }; + +export const processTransactionData = (data: TransactionType[]) => { + return data.map((transaction, _index) => ({ + id: transaction.id, + name: transaction.payload.type === 'Income' ? transaction.payload.data.from.displayName : transaction.payload.data.to.displayName, + avatarUrl: transaction.payload.type === 'Income' ? transaction.payload.data.from.avatar : transaction.payload.data.to.avatar, + type: transaction.payload.type, + message: transaction.payload.type === 'Income' ? 'Receive money from' : 'Payment for', + category: transaction.payload.type === 'Income' ? transaction.payload.data.from.displayName : transaction.payload.data.to.displayName, + date: transaction.created_at, + status: 'completed', + amount: transaction.payload.amount, + })); +}; From 4a71549ea5cfe981ca40a45e263ce8c2c0833dfe Mon Sep 17 00:00:00 2001 From: jadapema Date: Thu, 26 Dec 2024 13:01:55 -0600 Subject: [PATCH 29/71] feat: added sub-balance and contacts carousel --- src/layouts/_common/header-balance.tsx | 53 ++++---- .../finance/components/finance-contacts.tsx | 124 +++++++++++++----- src/sections/finance/index.tsx | 3 +- 3 files changed, 120 insertions(+), 60 deletions(-) diff --git a/src/layouts/_common/header-balance.tsx b/src/layouts/_common/header-balance.tsx index c64f7509e..cc17cd1d0 100644 --- a/src/layouts/_common/header-balance.tsx +++ b/src/layouts/_common/header-balance.tsx @@ -1,8 +1,3 @@ -import { m } from 'framer-motion'; -// @mui -import IconButton from '@mui/material/IconButton'; -// components -import { varHover } from '@src/components/animate'; import Typography from '@mui/material/Typography'; import Stack from '@mui/material/Stack'; import { useDispatch, useSelector } from 'react-redux'; @@ -10,6 +5,10 @@ import { useEffect } from 'react'; import { setBalance } from '@redux/auth'; import { useGetBalance } from '@src/hooks/use-get-balance.ts'; import mmcTokenIcon from '@src/assets/mmc_token.ico'; +import Button from '@mui/material/Button'; +import Box from '@mui/material/Box'; +import { paths } from '@src/routes/paths.ts'; +import { useRouter } from '@src/routes/hooks'; // ---------------------------------------------------------------------- @@ -18,6 +17,7 @@ export default function HeaderBalance() { const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); const sessionData = useSelector((state: any) => state.auth.session); const { balance: balanceFromContract } = useGetBalance(sessionData?.address); + const router = useRouter(); useEffect(() => { if (balanceFromContract) { @@ -28,20 +28,19 @@ export default function HeaderBalance() { const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balanceFromRedux); + const handleGoFinance = () => { + router.push(paths.dashboard.finance) + } + return ( - <> + ); } diff --git a/src/sections/finance/components/finance-contacts.tsx b/src/sections/finance/components/finance-contacts.tsx index 83ecb3c5b..6c6a9f27d 100644 --- a/src/sections/finance/components/finance-contacts.tsx +++ b/src/sections/finance/components/finance-contacts.tsx @@ -1,72 +1,126 @@ // @mui import Stack from '@mui/material/Stack'; -import Button from '@mui/material/Button'; -import Avatar from '@mui/material/Avatar'; -import Tooltip from '@mui/material/Tooltip'; -import IconButton from '@mui/material/IconButton'; import CardHeader from '@mui/material/CardHeader'; import Card, { CardProps } from '@mui/material/Card'; +import Tooltip from '@mui/material/Tooltip'; +import Avatar from '@mui/material/Avatar'; +import IconButton from '@mui/material/IconButton'; import ListItemText from '@mui/material/ListItemText'; +import Box from '@mui/material/Box'; + // components import Iconify from '@src/components/iconify'; -import {Profile} from "@lens-protocol/api-bindings"; -import { paths } from '@src/routes/paths.ts'; +import Carousel, { useCarousel } from '@src/components/carousel/index'; +import NavigationArrows from '@src/components/carousel/NavigationArrows'; + +// routes +import { paths } from '@src/routes/paths'; import { useRouter } from '@src/routes/hooks'; +// lens +import { Profile } from '@lens-protocol/api-bindings'; + // ---------------------------------------------------------------------- interface Props extends CardProps { title?: string; subheader?: string; list: Profile[]; + chunkSize?: number; // how many contacts to display per slide } -export default function FinanceContacts({ title, subheader, list, ...other }: Props) { +export default function FinanceContactsCarousel({ + title, + subheader, + list, + chunkSize = 5, + ...other + }: Props) { const router = useRouter(); const goToProfile = (id: string) => { - // eslint-disable-next-line @typescript-eslint/no-unused-expressions router.push(paths.dashboard.user.root(id)); }; + const carousel = useCarousel({ + infinite: false, + slidesToShow: 1, + speed: 500, + dots: false, + arrows: false, + adaptiveHeight: true, + }); + + // Split the array of contacts into chunks (each chunk is a "slide") + const slidesData: Profile[][] = []; + for (let i = 0; i < list.length; i += chunkSize) { + slidesData.push(list.slice(i, i + chunkSize)); + } + return ( } - > - View All - + } /> - - {list.map((profile) => ( - - goToProfile(profile.id)}> - + {/* Main carousel container */} + + + {slidesData.map((chunk, index) => ( + + ))} + + + + ); +} + +// ---------------------------------------------------------------------- - - +type SlideContactsProps = { + chunk: Profile[]; + goToProfile: (id: string) => void; +}; - - - - - +function SlideContacts({ chunk, goToProfile }: SlideContactsProps) { + return ( + + {chunk.map((profile) => ( + + goToProfile(profile.id)} + > + + - ))} - - + + + + + + + + ))} + ); } diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 97c55b5c8..cdfcae085 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -19,7 +19,6 @@ import { processTransactionData } from "@src/utils/finance-graphs/groupedTransactions.ts"; import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; -import Card from "@mui/material/Card"; import Typography from "@mui/material/Typography"; // ---------------------------------------------------------------------- @@ -112,7 +111,7 @@ export default function OverviewBankingView() { ) : undefined} From ee18a4c8220cad9dffcb4415139f32cc15c225bf Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 26 Dec 2024 13:44:46 -0600 Subject: [PATCH 30/71] feat(finance): remove FinanceRecentTransitions component - Deleted `finance-recent-transitions.tsx` file from `src/sections/finance/components`. - Removed associated table rendering logic, custom popovers, and row definitions. - This cleanup is part of a larger effort to deprecate unused components. --- .../components/finance-recent-transitions.tsx | 223 ------------------ 1 file changed, 223 deletions(-) delete mode 100644 src/sections/finance/components/finance-recent-transitions.tsx diff --git a/src/sections/finance/components/finance-recent-transitions.tsx b/src/sections/finance/components/finance-recent-transitions.tsx deleted file mode 100644 index b353c3717..000000000 --- a/src/sections/finance/components/finance-recent-transitions.tsx +++ /dev/null @@ -1,223 +0,0 @@ -import { format } from 'date-fns'; -// @mui -import { useTheme } from '@mui/material/styles'; -import Box from '@mui/material/Box'; -import Table from '@mui/material/Table'; -import Avatar from '@mui/material/Avatar'; -import Divider from '@mui/material/Divider'; -import MenuItem from '@mui/material/MenuItem'; -import TableRow from '@mui/material/TableRow'; -import TableCell from '@mui/material/TableCell'; -import TableBody from '@mui/material/TableBody'; -import IconButton from '@mui/material/IconButton'; -import CardHeader from '@mui/material/CardHeader'; -import Card, { CardProps } from '@mui/material/Card'; -import ListItemText from '@mui/material/ListItemText'; -import Badge, { badgeClasses } from '@mui/material/Badge'; -import TableContainer from '@mui/material/TableContainer'; -// utils -import { fCurrency } from '@src/utils/format-number'; -// components -import Label from '@src/components/label'; -import Iconify from '@src/components/iconify'; -import Scrollbar from '@src/components/scrollbar'; -import CustomPopover, { usePopover } from '@src/components/custom-popover'; -import { TableHeadCustom } from '@src/components/table'; - -// ---------------------------------------------------------------------- - -type RowProps = { - id: string; - type: string; - status: string; - amount: number; - message: string; - category: string; - name: string | null; - avatarUrl: string | null; - date: Date | number | string; -}; - -interface Props extends CardProps { - title?: string; - subheader?: string; - tableData: RowProps[]; - tableLabels: any; -} - -export default function FinanceRecentTransitions({ - title, - subheader, - tableLabels, - tableData, - ...other -}: Props) { - return ( - - - - - - - - - - {tableData.map((row) => ( - - ))} - -
-
-
- - -
- ); -} - -// ---------------------------------------------------------------------- - -type BankingRecentTransitionsRowProps = { - row: RowProps; -}; - -function BankingRecentTransitionsRow({ row }: BankingRecentTransitionsRowProps) { - const theme = useTheme(); - - const isLight = theme.palette.mode === 'light'; - - const popover = usePopover(); - - const handleDownload = () => { - popover.onClose(); - console.info('DOWNLOAD', row.id); - }; - - const handlePrint = () => { - popover.onClose(); - console.info('PRINT', row.id); - }; - - const handleShare = () => { - popover.onClose(); - console.info('SHARE', row.id); - }; - - const handleDelete = () => { - popover.onClose(); - console.info('DELETE', row.id); - }; - - const renderAvatar = ( - - - } - sx={{ - [`& .${badgeClasses.badge}`]: { - p: 0, - width: 20, - }, - }} - > - - {row.category === 'Books' && } - {row.category === 'Beauty & Health' && } - - - - ); - - return ( - <> - - - {renderAvatar} - - - - - - - - {fCurrency(row.amount)} - - - - - - - - - - - - - - - - Download - - - - - Print - - - - - Share - - - - - - - Delete - - - - ); -} From 4f71e3dc67683402c9df502fd76e9eb65304267e Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 26 Dec 2024 13:45:06 -0600 Subject: [PATCH 31/71] feat(finance-invite-friends): add email invitation functionality - **finance-invite-friends.tsx**: - Added `email` state and input handling for capturing the email address. - Integrated `supabase` to store invitation data in the `invitations` table. - Added validation for email input with regex. - Displayed success or error messages using `notistack`'s `enqueueSnackbar`. --- .../components/finance-invite-friends.tsx | 70 +++++++++++++++---- 1 file changed, 57 insertions(+), 13 deletions(-) diff --git a/src/sections/finance/components/finance-invite-friends.tsx b/src/sections/finance/components/finance-invite-friends.tsx index 43162eef3..58fdb3d8f 100644 --- a/src/sections/finance/components/finance-invite-friends.tsx +++ b/src/sections/finance/components/finance-invite-friends.tsx @@ -1,15 +1,15 @@ -// @mui +import React, { useState } from 'react'; import { useTheme } from '@mui/material/styles'; import Stack from '@mui/material/Stack'; import Button from '@mui/material/Button'; import InputBase from '@mui/material/InputBase'; import Box, { BoxProps } from '@mui/material/Box'; -// theme -import { bgGradient } from '@src/theme/css'; import Typography from '@mui/material/Typography'; +import { bgGradient } from '@src/theme/css'; import { COLORS } from '@src/layouts/config-layout.ts'; - -// ---------------------------------------------------------------------- +import { supabase } from '@src/utils/supabase'; +import { useSelector } from 'react-redux'; +import { useSnackbar } from 'notistack'; interface Props extends BoxProps { img?: string; @@ -19,14 +19,56 @@ interface Props extends BoxProps { } export default function FinanceInviteFriends({ - img, - price, - title, - description, - sx, - ...other -}: Props) { + img, + price, + title, + description, + sx, + ...other + }: Props) { const theme = useTheme(); + const { enqueueSnackbar } = useSnackbar(); + const sessionData = useSelector((state: any) => state.auth.session); + const [email, setEmail] = useState(''); + + async function storeEmailData(destination: string, payload: any) { + const { error } = await supabase + .from('invitations') + .insert([{ destination, sender_id: payload?.data?.from?.id, payload }]); + + if (error) { + console.error('Error storing email data:', error); + } else { + console.log('Email data stored successfully'); + } + } + + const handleInputChange = (event: React.ChangeEvent) => { + setEmail(event.target.value); + }; + + const handleInviteClick = () => { + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + if (!emailRegex.test(email)) { + enqueueSnackbar('Invalid email address', { variant: 'error' }); + return; + } + const payload = { + data: { + from: { + id: sessionData?.profile?.id, + displayName: sessionData?.profile?.metadata?.displayName, + avatar: (sessionData?.profile?.metadata?.picture as any)?.optimized?.uri + }, + } + }; + storeEmailData(email, payload).then(() => { + enqueueSnackbar('Invitation sent successfully', { variant: 'success' }) + setEmail(''); + }); + + + }; return ( @@ -78,8 +120,10 @@ export default function FinanceInviteFriends({ + } From 3f37151d70398883c32da2c2e4f603443fcda4eb Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Thu, 26 Dec 2024 17:32:22 -0600 Subject: [PATCH 32/71] feat: integrate address management with redux state - **`src/redux/reducer.ts`**: Added `addressReducer` to the root reducer for managing address state. - **`src/redux/address/index.ts`**: Created a new Redux slice to manage address, profile ID, and toggleable rainbow feature. - **`src/sections/finance/index.tsx`**: Removed unnecessary `console.log` statement for a cleaner codebase. - **`src/sections/finance/components/finance-contacts.tsx`**: Implemented actions to update address state and trigger animations via Redux. Added `onClickArrow` functionality for profile interactions. - **`src/sections/finance/components/finance-quick-transfer.tsx`**: Synced wallet input and carousel behavior with Redux state. Introduced wrapper component for rainbow feature. --- src/redux/address/index.ts | 32 +++++++++++++ src/redux/reducer.ts | 2 + .../finance/components/finance-contacts.tsx | 48 ++++++++++++++++++- .../components/finance-quick-transfer.tsx | 34 ++++++++++++- src/sections/finance/index.tsx | 2 - 5 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 src/redux/address/index.ts diff --git a/src/redux/address/index.ts b/src/redux/address/index.ts new file mode 100644 index 000000000..a2dca61f5 --- /dev/null +++ b/src/redux/address/index.ts @@ -0,0 +1,32 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +interface AddressState { + address: string; + profileId: string; + showRainbow: boolean; +} + +const initialState: AddressState = { + address: '', + profileId: '', + showRainbow: false, +}; + +const addressSlice = createSlice({ + name: 'address', + initialState, + reducers: { + storeAddress(state, action: PayloadAction<{ address: string; profileId: string }>) { + state.address = action.payload.address; + state.profileId = action.payload.profileId; + }, + + toggleRainbow(state) { + state.showRainbow = !state.showRainbow; + }, + + }, +}); + +export const { storeAddress, toggleRainbow } = addressSlice.actions; +export default addressSlice.reducer; diff --git a/src/redux/reducer.ts b/src/redux/reducer.ts index ffa59d5e7..adc1eb7da 100644 --- a/src/redux/reducer.ts +++ b/src/redux/reducer.ts @@ -6,6 +6,7 @@ import notificationsReducer from '@redux/notifications/index'; import bookmarkReducer from '@redux/bookmark/index'; import commentsReducer from '@redux/comments/index'; import followersReducer from '@redux/followers/index'; +import addressReducer from '@redux/address/index'; const appReducer = combineReducers({ minibar: minibarReducer, @@ -15,6 +16,7 @@ const appReducer = combineReducers({ comments: commentsReducer, notifications: notificationsReducer, followers: followersReducer, + address: addressReducer, }); const rootReducer = (state: any, action: any) => { diff --git a/src/sections/finance/components/finance-contacts.tsx b/src/sections/finance/components/finance-contacts.tsx index 6c6a9f27d..c8b80b12c 100644 --- a/src/sections/finance/components/finance-contacts.tsx +++ b/src/sections/finance/components/finance-contacts.tsx @@ -19,6 +19,9 @@ import { useRouter } from '@src/routes/hooks'; // lens import { Profile } from '@lens-protocol/api-bindings'; +import {useDispatch} from "react-redux"; +import {storeAddress, toggleRainbow} from '@redux/address'; +import React from "react"; // ---------------------------------------------------------------------- @@ -37,6 +40,41 @@ export default function FinanceContactsCarousel({ ...other }: Props) { const router = useRouter(); + const dispatch = useDispatch(); + + + function scrollToSmoothly(pos: number, time: number) { + let currentPos = window.scrollY; + let start:number |null = null; + if(time == null) time = 500; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions + pos = +pos, time = +time; + window.requestAnimationFrame(function step(currentTime) { + start = !start ? currentTime : start; + let progress = currentTime - start; + if (currentPos < pos) { + window.scrollTo(0, ((pos - currentPos) * progress / time) + currentPos); + } else { + window.scrollTo(0, currentPos - ((currentPos - pos) * progress / time)); + } + if (progress < time) { + window.requestAnimationFrame(step); + } else { + window.scrollTo(0, pos); + } + }); + } + + const handleClick = (address: string, profileId: string) => { + dispatch(toggleRainbow()); + dispatch(storeAddress({address, profileId})); + + // Scroll to top the window with a smooth animation + scrollToSmoothly(0, 1000) + setTimeout(() => { + dispatch(toggleRainbow()); + },1400) + } const goToProfile = (id: string) => { router.push(paths.dashboard.user.root(id)); @@ -75,6 +113,7 @@ export default function FinanceContactsCarousel({ key={`slide-${index}`} chunk={chunk} goToProfile={goToProfile} + onClickArrow={(address, profileId) => handleClick(address, profileId)} /> ))} @@ -88,9 +127,14 @@ export default function FinanceContactsCarousel({ type SlideContactsProps = { chunk: Profile[]; goToProfile: (id: string) => void; + onClickArrow: (address: string, profileId: string) => void; }; -function SlideContacts({ chunk, goToProfile }: SlideContactsProps) { +function SlideContacts({ chunk, goToProfile, onClickArrow}: SlideContactsProps) { + const handleArrowClick = (event: React.MouseEvent, address: string, profileId: string) => { + event.stopPropagation(); + onClickArrow(address, profileId); + }; return ( {chunk.map((profile) => ( @@ -115,7 +159,7 @@ function SlideContacts({ chunk, goToProfile }: SlideContactsProps) { - + handleArrowClick(event, profile.ownedBy.address, profile.id)}> diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx index e73672612..6b38b127e 100644 --- a/src/sections/finance/components/finance-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -18,7 +18,8 @@ import Dialog, { DialogProps } from '@mui/material/Dialog'; import { useBoolean } from '@src/hooks/use-boolean'; // components import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; -import {useSelector} from "react-redux"; +import {useDispatch, useSelector} from "react-redux"; +import { storeAddress } from '@redux/address'; import {truncateAddress} from "@src/utils/wallet.ts"; import {Profile} from "@lens-protocol/api-bindings"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; @@ -56,9 +57,13 @@ const isValidAddress = (address: string): boolean => { export default function FinanceQuickTransfer({ title, subheader,sx, list, ...other }: Props) { const theme = useTheme(); + const dispatch = useDispatch(); + const storedAddress = useSelector((state: any) => state.address) + const showRainbow = useSelector((state: any) => state.address.showRainbow) const balance = useSelector((state: any) => state.auth.balance); - const [walletAddress, setWalletAddress] = useState(''); + const [walletAddress, setWalletAddress] = useState(storedAddress.address ?? ''); const [addressError, setAddressError] = useState(false); + const [currentIndex, setCurrentIndex] = useState(0); const MAX_AMOUNT = balance; const carousel = useCarousel({ centerMode: true, @@ -115,12 +120,14 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth const currentProfile = list?.[carousel.currentIndex]; if (currentProfile?.ownedBy?.address) { setWalletAddress(currentProfile.ownedBy.address); + dispatch(storeAddress({ address: currentProfile.ownedBy.address, profileId: currentProfile.id })) } }, [carousel.currentIndex, list]); const handleInputChange = (event: React.ChangeEvent) => { const value = event.target.value; setWalletAddress(value); + dispatch(storeAddress({ address: value, profileId: getContactInfo?.id ?? ''})) if (isValidAddress(value)) { setAddressError(false); @@ -149,8 +156,27 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth setAmount(0) setWalletAddress('') confirm.onFalse?.(); + dispatch(storeAddress({ address: '', profileId: ''})) } + useEffect(() => { + const index = list?.findIndex((profile) => profile.ownedBy?.address === storedAddress?.address && profile.id === storedAddress.profileId); + + if (index !== -1) { + setCurrentIndex(index ?? 0) + } + }, [storedAddress]); + + + useEffect(() => { + if (!showRainbow) { + // carousel.setCurrentIndex(currentIndex); + if (carousel.carouselRef.current) { + carousel.carouselRef.current.slickGoTo(currentIndex); + } + } + }, [showRainbow]); + const renderWalletInput = ( ); + const Wrapper = showRainbow ? NeonPaper : Box; + return ( <> + + Date: Sat, 28 Dec 2024 08:44:46 -0600 Subject: [PATCH 33/71] feat(finance): add deposit and wallet integration features - **src/sections/finance/index.tsx**: - Integrated `FinanceQuickActions` for quick access to wallet interactions. - Updated UI elements for balance summary with deposit and withdraw functionality. - **src/sections/finance/components**: - Added `finance-quick-actions.tsx` and `finance-external-wallet.tsx` for wallet management. - Implemented `finance-deposit-from-stripe.tsx`, `finance-deposit-from-metamask.tsx`, and `finance-deposit-from-smart-account.tsx` components for deposit options. - Enhanced `finance-widget-summary.tsx` with a deposit modal and improved interactivity for wallet transactions. --- src/assets/illustrations/seo-illustration.tsx | 234 ++++++++++++++++++ .../finance-deposit-from-metamask.tsx | 9 + .../finance-deposit-from-smart-account.tsx | 9 + .../finance-deposit-from-stripe.tsx | 9 + .../components/finance-external-wallet.tsx | 106 ++++++++ .../components/finance-quick-actions.tsx | 74 ++++++ .../components/finance-widget-summary.tsx | 155 +++++++++++- src/sections/finance/index.tsx | 23 +- 8 files changed, 597 insertions(+), 22 deletions(-) create mode 100644 src/assets/illustrations/seo-illustration.tsx create mode 100644 src/sections/finance/components/finance-deposit-from-metamask.tsx create mode 100644 src/sections/finance/components/finance-deposit-from-smart-account.tsx create mode 100644 src/sections/finance/components/finance-deposit-from-stripe.tsx create mode 100644 src/sections/finance/components/finance-external-wallet.tsx create mode 100644 src/sections/finance/components/finance-quick-actions.tsx diff --git a/src/assets/illustrations/seo-illustration.tsx b/src/assets/illustrations/seo-illustration.tsx new file mode 100644 index 000000000..68fd7ef6a --- /dev/null +++ b/src/assets/illustrations/seo-illustration.tsx @@ -0,0 +1,234 @@ +import { memo } from 'react'; +// @mui +import { useTheme } from '@mui/material/styles'; +import Box, { BoxProps } from '@mui/material/Box'; +// +import BackgroundShape from './background-shape'; + +// ---------------------------------------------------------------------- + +function SeoIllustration({ ...other }: BoxProps) { + const theme = useTheme(); + + const PRIMARY_LIGHT = theme.palette.primary.light; + + const PRIMARY_DARK = theme.palette.primary.dark; + + return ( + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ); +} + +export default memo(SeoIllustration); diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx new file mode 100644 index 000000000..e4056b07a --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -0,0 +1,9 @@ +import Box from "@mui/material/Box"; + +const FinanceDepositFromMetamask = () => { + return ( + + ); +} + +export default FinanceDepositFromMetamask; diff --git a/src/sections/finance/components/finance-deposit-from-smart-account.tsx b/src/sections/finance/components/finance-deposit-from-smart-account.tsx new file mode 100644 index 000000000..8c49073ab --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-smart-account.tsx @@ -0,0 +1,9 @@ +import Box from "@mui/material/Box"; + +const FinanceDepositFromSmartAccount = () => { + return ( + + ); +} + +export default FinanceDepositFromSmartAccount; diff --git a/src/sections/finance/components/finance-deposit-from-stripe.tsx b/src/sections/finance/components/finance-deposit-from-stripe.tsx new file mode 100644 index 000000000..4ad65bcb1 --- /dev/null +++ b/src/sections/finance/components/finance-deposit-from-stripe.tsx @@ -0,0 +1,9 @@ +import Box from "@mui/material/Box"; + +const FinanceDepositFromStripe = () => { + return ( + + ); +} + +export default FinanceDepositFromStripe diff --git a/src/sections/finance/components/finance-external-wallet.tsx b/src/sections/finance/components/finance-external-wallet.tsx new file mode 100644 index 000000000..baefa6f64 --- /dev/null +++ b/src/sections/finance/components/finance-external-wallet.tsx @@ -0,0 +1,106 @@ +// @mui +import { useTheme, alpha } from '@mui/material/styles'; +import Typography from '@mui/material/Typography'; +import Stack, { StackProps } from '@mui/material/Stack'; +// theme +import { bgGradient } from '@src/theme/css'; +import React from "react"; +import {Box} from "@mui/system"; + +// ---------------------------------------------------------------------- + +interface Props extends StackProps { + connectedWallet: boolean; + title?: string; + description?: string; + info?: string; + img?: React.ReactNode; + action?: React.ReactNode; +} + +export default function FinanceExternalWallet({connectedWallet, title, description, info, action, img, ...other }: Props) { + const theme = useTheme(); + return ( + <> + + + + {title} + + + { connectedWallet ? ( + + {description} MMC + + ) : action && action } + + + {info} + + + {connectedWallet ? (action && action) : null } + + + + {img && ( + + {img} + + )} + + + ); +} +// diff --git a/src/sections/finance/components/finance-quick-actions.tsx b/src/sections/finance/components/finance-quick-actions.tsx new file mode 100644 index 000000000..74b34f58c --- /dev/null +++ b/src/sections/finance/components/finance-quick-actions.tsx @@ -0,0 +1,74 @@ +// @mui +import Stack from '@mui/material/Stack'; +import { CardProps } from '@mui/material/Card'; + +// theme +import { bgGradient } from '@src/theme/css'; +// components +import Iconify from '@src/components/iconify'; +import Button from "@mui/material/Button"; + +import FinanceExternalWallet from './finance-external-wallet.tsx'; +import SeoIllustration from "@src/assets/illustrations/seo-illustration.tsx"; +// ---------------------------------------------------------------------- + +interface Props extends CardProps { + connectedWalllet: boolean; + title: string; + info: string; + balance: number; +} + +export default function FinanceQuickActions({ + connectedWalllet, + title, + balance, + info, + sx, + ...other +}: Props) { + const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(balance); + + return ( + + } + action={ + <> + { + connectedWalllet ? () : () + } + + } + /> + + ) +} diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx index c664b04c7..db5be693d 100644 --- a/src/sections/finance/components/finance-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -13,9 +13,22 @@ import { bgGradient } from '@src/theme/css'; // components import Iconify from '@src/components/iconify'; import Chart, { useChart } from '@src/components/chart'; -// @ts-ignore -import mmcTokenIcon from '@src/assets/mmc_token.ico'; +import Button from "@mui/material/Button"; +import {useBoolean} from "@src/hooks/use-boolean.ts"; +import Dialog, {DialogProps} from "@mui/material/Dialog"; +import {useSnackbar} from "notistack"; +import {useState} from "react"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import DialogTitle from "@mui/material/DialogTitle"; + +import DialogActions from "@mui/material/DialogActions"; +import LoadingButton from "@mui/lab/LoadingButton"; +import Tabs, {tabsClasses} from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import FinanceDepositFromStripe from "@src/sections/finance/components/finance-deposit-from-stripe.tsx"; +import FinanceDepositFromMetamask from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import FinanceDepositFromSmartAccount from "@src/sections/finance/components/finance-deposit-from-smart-account.tsx"; // ---------------------------------------------------------------------- interface Props extends CardProps { @@ -43,6 +56,10 @@ export default function FinanceWidgetSummary({ sx, ...other }: Props) { + const confirmDeposit = useBoolean(); + + //const confirmWithdraw = useBoolean(); + const theme = useTheme(); const { series, options } = chart; @@ -89,6 +106,14 @@ export default function FinanceWidgetSummary({ const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(total); + const handleFinishDeposit = () => { + confirmDeposit.onFalse?.(); + } + + const handleDepositOpenModal = () => { + confirmDeposit.onTrue?.(); + }; + return ( - + > + + + + {title} @@ -152,6 +195,98 @@ export default function FinanceWidgetSummary({ + + + ) } + + +interface ConfirmTransferDialogProps extends DialogProps { + onClose: VoidFunction; +} + +const TABS = [ + { value: 'fiat', label: 'Stripe', disabled: true }, + { value: 'metamask', label: 'Metamask', disabled: false }, + { value: 'smartAccount', label: 'Smart Account', disabled: false }, +]; + +function ConfirmTransferDialog({ + open, + onClose + }: ConfirmTransferDialogProps) { + const { enqueueSnackbar } = useSnackbar(); + const [loading, setLoading] = useState(false); + + const [currentTab, setCurrentTab] = useState('metamask'); + + const handleChangeTab = (_event: any, newValue: any) => { + setCurrentTab(newValue); + }; + + + const handleConfirmTransfer = async () => { + setLoading(true); + setTimeout(() => { + // Notification for the user from wallet to wallet + enqueueSnackbar(`The deposit was successful`, { variant: 'success' }); + onClose(); + setLoading(false); + }, 2000); + }; + + const RainbowEffect = loading ? NeonPaper : Box; + + return ( + + Deposit to your vault balance + + + {TABS.map((tab) => ( + + ))} + + + + {currentTab === 'fiat' && ()} + {currentTab === 'metamask' && ()} + {currentTab === 'smartAccount' && ()} + + + + + + + Confirm & Deposit + + + + + ); +} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index b95d42034..3e55e99cb 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -20,6 +20,7 @@ import { } from "@src/utils/finance-graphs/groupedTransactions.ts"; import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; import Typography from "@mui/material/Typography"; +import FinanceQuickActions from "@src/sections/finance/components/finance-quick-actions.tsx"; // ---------------------------------------------------------------------- @@ -44,6 +45,8 @@ export default function OverviewBankingView() { const processedTransactions: TableRowTransactionType[] = processTransactionData(transactionsRawData); + const externalWalletConnected = false; + return ( 0 ? 'eva:diagonal-arrow-right-up-fill' : 'eva:diagonal-arrow-left-down-fill'} percent={percent} total={balanceFromRedux} @@ -66,17 +69,13 @@ export default function OverviewBankingView() { }} /> - + {/**/} - 0 ? 'eva:diagonal-arrow-right-up-fill' : 'eva:diagonal-arrow-left-down-fill'} - percent={percent} - total={balanceFromRedux + 1000} - chart={{ - series: daySeriesData, - }} + From 25520769319729cd030db107aa16edaa0672e0a2 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 10:24:24 -0600 Subject: [PATCH 34/71] feat(WIP): add deposit and wallet integration features --- package-lock.json | 1035 +++++++++++++++++ package.json | 2 + src/App.tsx | 11 + src/config-global.ts | 1 + .../finance-deposit-from-metamask.tsx | 76 +- .../finance-deposit-from-smart-account.tsx | 9 +- 6 files changed, 1132 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 093a68504..ff33d9368 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,6 +15,8 @@ "@lens-protocol/metadata": "^1.2.0", "@lens-protocol/react": "^2.3.2", "@lens-protocol/react-web": "^2.3.1", + "@metamask/sdk": "^0.31.4", + "@metamask/sdk-react": "^0.31.4", "@mui/base": "^5.0.0-beta.7", "@mui/lab": "^5.0.0-alpha.136", "@mui/material": "^5.16.5", @@ -3308,6 +3310,20 @@ "node": ">=0.1.90" } }, + "node_modules/@ecies/ciphers": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.2.tgz", + "integrity": "sha512-ylfGR7PyTd+Rm2PqQowG08BCKA22QuX8NzrL+LxAAvazN10DMwdJ2fWwAzRj05FI/M8vNFGm3cv9Wq/GFWCBLg==", + "license": "MIT", + "engines": { + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + }, + "peerDependencies": { + "@noble/ciphers": "^1.0.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", @@ -6517,6 +6533,226 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/@metamask/json-rpc-middleware-stream": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", + "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", + "license": "ISC", + "dependencies": { + "@metamask/json-rpc-engine": "^8.0.2", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0", + "readable-stream": "^3.6.2" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/json-rpc-engine": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "license": "ISC", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@metamask/json-rpc-middleware-stream/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/object-multiplex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", + "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", + "license": "ISC", + "dependencies": { + "once": "^1.4.0", + "readable-stream": "^3.6.2" + }, + "engines": { + "node": "^16.20 || ^18.16 || >=20" + } + }, + "node_modules/@metamask/object-multiplex/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/onboarding": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", + "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", + "license": "MIT", + "dependencies": { + "bowser": "^2.9.0" + } + }, + "node_modules/@metamask/providers": { + "version": "16.1.0", + "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", + "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", + "license": "MIT", + "dependencies": { + "@metamask/json-rpc-engine": "^8.0.1", + "@metamask/json-rpc-middleware-stream": "^7.0.1", + "@metamask/object-multiplex": "^2.0.0", + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.1.1", + "@metamask/utils": "^8.3.0", + "detect-browser": "^5.2.0", + "extension-port-stream": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "is-stream": "^2.0.0", + "readable-stream": "^3.6.2", + "webextension-polyfill": "^0.10.0" + }, + "engines": { + "node": "^18.18 || >=20" + } + }, + "node_modules/@metamask/providers/node_modules/@metamask/json-rpc-engine": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", + "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", + "license": "ISC", + "dependencies": { + "@metamask/rpc-errors": "^6.2.1", + "@metamask/safe-event-emitter": "^3.0.0", + "@metamask/utils": "^8.3.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/providers/node_modules/@metamask/utils": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", + "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/tx": "^4.2.0", + "@metamask/superstruct": "^3.0.0", + "@noble/hashes": "^1.3.1", + "@scure/base": "^1.1.3", + "@types/debug": "^4.1.7", + "debug": "^4.3.4", + "pony-cause": "^2.1.10", + "semver": "^7.5.4", + "uuid": "^9.0.1" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@metamask/providers/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/providers/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@metamask/providers/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@metamask/rpc-errors": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", @@ -6584,6 +6820,132 @@ "node": ">=12.0.0" } }, + "node_modules/@metamask/sdk": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.31.4.tgz", + "integrity": "sha512-HLUN4IZGdyiy5YeebXmXi+ndpmrl6zslCQLdR2QHplIy4JmUL/eDyKNFiK7eBLVKXVVIDYFIb6g1iSEb+i8Kew==", + "dependencies": { + "@babel/runtime": "^7.26.0", + "@metamask/onboarding": "^1.0.1", + "@metamask/providers": "16.1.0", + "@metamask/sdk-communication-layer": "0.31.0", + "@metamask/sdk-install-modal-web": "0.31.2", + "@paulmillr/qr": "^0.2.1", + "bowser": "^2.9.0", + "cross-fetch": "^4.0.0", + "debug": "^4.3.4", + "eciesjs": "^0.4.11", + "eth-rpc-errors": "^4.0.3", + "eventemitter2": "^6.4.9", + "obj-multiplex": "^1.0.0", + "pump": "^3.0.0", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1", + "tslib": "^2.6.0", + "util": "^0.12.4", + "uuid": "^8.3.2" + } + }, + "node_modules/@metamask/sdk-communication-layer": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.31.0.tgz", + "integrity": "sha512-V9CxdzabDPjQVgmKGHsyU3SYt4Af27g+4DbGCx0fLoHqN/i1RBDZqs/LYbJX3ykJCANzE+llz/MolMCMrzM2RA==", + "dependencies": { + "bufferutil": "^4.0.8", + "date-fns": "^2.29.3", + "debug": "^4.3.4", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2" + }, + "peerDependencies": { + "cross-fetch": "^4.0.0", + "eciesjs": "*", + "eventemitter2": "^6.4.9", + "readable-stream": "^3.6.2", + "socket.io-client": "^4.5.1" + } + }, + "node_modules/@metamask/sdk-communication-layer/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/@metamask/sdk-install-modal-web": { + "version": "0.31.2", + "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.2.tgz", + "integrity": "sha512-KPv36kQjmTwErU8g2neuHHSgkD5+1hp4D6ERfk5Kc2r73aOYNCdG9wDGRUmFmcY2MKkeK1EuDyZfJ4FPU30fxQ==", + "dependencies": { + "@paulmillr/qr": "^0.2.1" + } + }, + "node_modules/@metamask/sdk-react": { + "version": "0.31.4", + "resolved": "https://registry.npmjs.org/@metamask/sdk-react/-/sdk-react-0.31.4.tgz", + "integrity": "sha512-hAYbYGOsJcJUKJG4pO6KtTGXKikpNQMqo1kube55eeo6XZsFT5l958w2Ckhpld47vlABBNxB9SKwk6/vZtPX/w==", + "dependencies": { + "@metamask/sdk": "^0.31.4", + "debug": "^4.3.4", + "eth-rpc-errors": "^4.0.3", + "rollup-plugin-node-builtins": "^2.1.2", + "rollup-plugin-node-globals": "^1.4.0" + }, + "peerDependencies": { + "@react-native-async-storage/async-storage": "^1.19.6", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-native": "*" + }, + "peerDependenciesMeta": { + "@react-native-async-storage/async-storage": { + "optional": true + }, + "react": { + "optional": false + }, + "react-dom": { + "optional": false + }, + "react-native": { + "optional": true + } + } + }, + "node_modules/@metamask/sdk/node_modules/cross-fetch": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, + "node_modules/@metamask/sdk/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "license": "MIT", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@metamask/sdk/node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "license": "MIT", + "bin": { + "uuid": "dist/bin/uuid" + } + }, "node_modules/@metamask/superstruct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.1.0.tgz", @@ -8043,6 +8405,15 @@ "url": "https://github.com/sponsors/passwordless-id" } }, + "node_modules/@paulmillr/qr": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", + "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", + "license": "(MIT OR Apache-2.0)", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@peculiar/asn1-cms": { "version": "2.3.13", "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.13.tgz", @@ -14715,6 +15086,24 @@ "integrity": "sha512-Zypm+LjYdWAzvuypZvDN0smUJrhOurcuBWhhMRBExqVLRvdjp3Z9mASxKyq19K+meZMshwjjy5S0lkm388zE4Q==", "license": "MIT" }, + "node_modules/abstract-leveldown": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", + "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", + "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", + "license": "MIT", + "dependencies": { + "xtend": "~3.0.0" + } + }, + "node_modules/abstract-leveldown/node_modules/xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", + "engines": { + "node": ">=0.4" + } + }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -15593,6 +15982,16 @@ "safe-buffer": "^5.1.2" } }, + "node_modules/browserify-fs": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", + "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", + "dependencies": { + "level-filesystem": "^1.0.1", + "level-js": "^2.1.3", + "levelup": "^0.18.2" + } + }, "node_modules/browserify-rsa": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", @@ -15813,6 +16212,18 @@ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "license": "BSD-3-Clause" }, + "node_modules/buffer-es6": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", + "integrity": "sha512-Ibt+oXxhmeYJSsCkODPqNpPmyegefiD8rfutH1NYGhMZQhSp95Rz7haemgnJ6dxa6LT+JLLbtgOMORRluwKktw==", + "license": "MIT" + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" + }, "node_modules/buffer-reverse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", @@ -16437,6 +16848,57 @@ "dev": true, "license": "MIT" }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "license": "MIT", + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/concat-stream/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/concat-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/concat-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/confbox": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", @@ -17101,6 +17563,16 @@ "node": ">= 16" } }, + "node_modules/deferred-leveldown": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", + "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", + "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", + "license": "MIT", + "dependencies": { + "abstract-leveldown": "~0.12.1" + } + }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -17413,6 +17885,62 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/eciesjs": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.13.tgz", + "integrity": "sha512-zBdtR4K+wbj10bWPpIOF9DW+eFYQu8miU5ypunh0t4Bvt83ZPlEWgT5Dq/0G6uwEXumZKjfb5BZxYUZQ2Hzn/Q==", + "license": "MIT", + "dependencies": { + "@ecies/ciphers": "^0.2.2", + "@noble/ciphers": "^1.0.0", + "@noble/curves": "^1.6.0", + "@noble/hashes": "^1.5.0" + }, + "engines": { + "bun": ">=1", + "deno": ">=2", + "node": ">=16" + } + }, + "node_modules/eciesjs/node_modules/@noble/ciphers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.3.tgz", + "integrity": "sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/eciesjs/node_modules/@noble/curves": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", + "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/eciesjs/node_modules/@noble/hashes": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", + "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/eip1193-provider": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", @@ -17686,6 +18214,18 @@ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", "license": "MIT" }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "license": "MIT", + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -19559,6 +20099,12 @@ "node": ">=6" } }, + "node_modules/eventemitter2": { + "version": "6.4.9", + "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", + "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", + "license": "MIT" + }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -19649,6 +20195,19 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/extension-port-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz", + "integrity": "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==", + "license": "ISC", + "dependencies": { + "readable-stream": "^3.6.2 || ^4.4.2", + "webextension-polyfill": ">=0.10.0 <1.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -19983,6 +20542,12 @@ "is-callable": "^1.1.3" } }, + "node_modules/foreach": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", + "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", + "license": "MIT" + }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -20239,6 +20804,38 @@ "node": ">=10" } }, + "node_modules/fwd-stream": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", + "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", + "dependencies": { + "readable-stream": "~1.0.26-4" + } + }, + "node_modules/fwd-stream/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/fwd-stream/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/fwd-stream/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, "node_modules/gaxios": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", @@ -21269,6 +21866,12 @@ "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", "license": "Apache-2.0" }, + "node_modules/idb-wrapper": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", + "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", + "license": "MIT" + }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -21392,6 +21995,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" + }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -21603,6 +22211,14 @@ "url": "https://github.com/sponsors/brc-dd" } }, + "node_modules/is": { + "version": "0.2.7", + "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", + "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", + "engines": { + "node": "*" + } + }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -22026,6 +22642,11 @@ "node": ">=8" } }, + "node_modules/is-object": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", + "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==" + }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -22257,6 +22878,12 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, + "node_modules/isbuffer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", + "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", + "license": "MIT" + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -22952,6 +23579,251 @@ "node": ">=0.10" } }, + "node_modules/level-blobs": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", + "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", + "dependencies": { + "level-peek": "1.0.6", + "once": "^1.3.0", + "readable-stream": "^1.0.26-4" + } + }, + "node_modules/level-blobs/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/level-blobs/node_modules/readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/level-blobs/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/level-filesystem": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", + "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", + "dependencies": { + "concat-stream": "^1.4.4", + "errno": "^0.1.1", + "fwd-stream": "^1.0.4", + "level-blobs": "^0.1.7", + "level-peek": "^1.0.6", + "level-sublevel": "^5.2.0", + "octal": "^1.0.0", + "once": "^1.3.0", + "xtend": "^2.2.0" + } + }, + "node_modules/level-filesystem/node_modules/xtend": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", + "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/level-fix-range": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", + "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", + "license": "MIT" + }, + "node_modules/level-hooks": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", + "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", + "dependencies": { + "string-range": "~1.2" + } + }, + "node_modules/level-js": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", + "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", + "deprecated": "Superseded by browser-level (https://github.com/Level/community#faq)", + "license": "BSD-2-Clause", + "dependencies": { + "abstract-leveldown": "~0.12.0", + "idb-wrapper": "^1.5.0", + "isbuffer": "~0.0.0", + "ltgt": "^2.1.2", + "typedarray-to-buffer": "~1.0.0", + "xtend": "~2.1.2" + } + }, + "node_modules/level-js/node_modules/object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", + "license": "MIT" + }, + "node_modules/level-js/node_modules/typedarray-to-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", + "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", + "license": "MIT" + }, + "node_modules/level-js/node_modules/xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", + "dependencies": { + "object-keys": "~0.4.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/level-peek": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", + "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", + "license": "MIT", + "dependencies": { + "level-fix-range": "~1.0.2" + } + }, + "node_modules/level-sublevel": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", + "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", + "license": "MIT", + "dependencies": { + "level-fix-range": "2.0", + "level-hooks": ">=4.4.0 <5", + "string-range": "~1.2.1", + "xtend": "~2.0.4" + } + }, + "node_modules/level-sublevel/node_modules/clone": { + "version": "0.1.19", + "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", + "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/level-sublevel/node_modules/level-fix-range": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", + "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", + "license": "MIT", + "dependencies": { + "clone": "~0.1.9" + } + }, + "node_modules/level-sublevel/node_modules/object-keys": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", + "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", + "deprecated": "Please update to the latest object-keys", + "license": "MIT", + "dependencies": { + "foreach": "~2.0.1", + "indexof": "~0.0.1", + "is": "~0.2.6" + } + }, + "node_modules/level-sublevel/node_modules/xtend": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", + "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", + "dependencies": { + "is-object": "~0.1.2", + "object-keys": "~0.2.0" + }, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/levelup": { + "version": "0.18.6", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", + "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", + "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", + "license": "MIT", + "dependencies": { + "bl": "~0.8.1", + "deferred-leveldown": "~0.2.0", + "errno": "~0.1.1", + "prr": "~0.0.0", + "readable-stream": "~1.0.26", + "semver": "~2.3.1", + "xtend": "~3.0.0" + } + }, + "node_modules/levelup/node_modules/bl": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", + "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", + "license": "MIT", + "dependencies": { + "readable-stream": "~1.0.26" + } + }, + "node_modules/levelup/node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", + "license": "MIT" + }, + "node_modules/levelup/node_modules/prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", + "license": "MIT" + }, + "node_modules/levelup/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/levelup/node_modules/semver": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", + "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", + "license": "BSD", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/levelup/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", + "license": "MIT" + }, + "node_modules/levelup/node_modules/xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", + "engines": { + "node": ">=0.4" + } + }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -23315,6 +24187,12 @@ "yallist": "^3.0.2" } }, + "node_modules/ltgt": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", + "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", + "license": "MIT" + }, "node_modules/magic-sdk": { "version": "13.6.2", "resolved": "https://registry.npmjs.org/magic-sdk/-/magic-sdk-13.6.2.tgz", @@ -27799,6 +28677,53 @@ "node": "*" } }, + "node_modules/obj-multiplex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz", + "integrity": "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==", + "license": "ISC", + "dependencies": { + "end-of-stream": "^1.4.0", + "once": "^1.4.0", + "readable-stream": "^2.3.3" + } + }, + "node_modules/obj-multiplex/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "license": "MIT" + }, + "node_modules/obj-multiplex/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "license": "MIT", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/obj-multiplex/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "license": "MIT" + }, + "node_modules/obj-multiplex/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "license": "MIT", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -27967,6 +28892,12 @@ "npm": ">=7.0.0" } }, + "node_modules/octal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", + "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", + "license": "MIT" + }, "node_modules/ofetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", @@ -28943,6 +29874,12 @@ "node": ">= 0.6.0" } }, + "node_modules/process-es6": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", + "integrity": "sha512-GYBRQtL4v3wgigq10Pv58jmTbFXlIiTbSfgnNqZLY0ldUPqy1rRxDI5fCjoCpnM6TqmHQI8ydzTBXW86OYc0gA==", + "license": "MIT" + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -29069,6 +30006,12 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "license": "MIT" + }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -30524,6 +31467,74 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-node-builtins": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz", + "integrity": "sha512-bxdnJw8jIivr2yEyt8IZSGqZkygIJOGAWypXvHXnwKAbUcN4Q/dGTx7K0oAJryC/m6aq6tKutltSeXtuogU6sw==", + "license": "ISC", + "dependencies": { + "browserify-fs": "^1.0.0", + "buffer-es6": "^4.9.2", + "crypto-browserify": "^3.11.0", + "process-es6": "^0.11.2" + } + }, + "node_modules/rollup-plugin-node-globals": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz", + "integrity": "sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g==", + "license": "MIT", + "dependencies": { + "acorn": "^5.7.3", + "buffer-es6": "^4.9.3", + "estree-walker": "^0.5.2", + "magic-string": "^0.22.5", + "process-es6": "^0.11.6", + "rollup-pluginutils": "^2.3.1" + } + }, + "node_modules/rollup-plugin-node-globals/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", + "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", + "license": "MIT", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/rollup-plugin-node-globals/node_modules/estree-walker": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", + "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", + "license": "MIT" + }, + "node_modules/rollup-plugin-node-globals/node_modules/magic-string": { + "version": "0.22.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", + "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", + "license": "MIT", + "dependencies": { + "vlq": "^0.2.2" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "license": "MIT", + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "license": "MIT" + }, "node_modules/rollup-preserve-directives": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/rollup-preserve-directives/-/rollup-preserve-directives-1.1.3.tgz", @@ -31795,6 +32806,12 @@ "dev": true, "license": "MIT" }, + "node_modules/string-range": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", + "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", + "license": "MIT" + }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -33767,6 +34784,12 @@ "rxjs": "*" } }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "license": "MIT" + }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -35027,6 +36050,12 @@ "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" } }, + "node_modules/vlq": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", + "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", + "license": "MIT" + }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -35438,6 +36467,12 @@ "tslib": "^2.7.0" } }, + "node_modules/webextension-polyfill": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", + "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", + "license": "MPL-2.0" + }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 00251e108..4106d5cb2 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,8 @@ "@lens-protocol/metadata": "^1.2.0", "@lens-protocol/react": "^2.3.2", "@lens-protocol/react-web": "^2.3.1", + "@metamask/sdk": "^0.31.4", + "@metamask/sdk-react": "^0.31.4", "@mui/base": "^5.0.0-beta.7", "@mui/lab": "^5.0.0-alpha.136", "@mui/material": "^5.16.5", diff --git a/src/App.tsx b/src/App.tsx index 53dd5d1eb..a8a44f902 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -41,6 +41,8 @@ import { ResponsiveOverlay } from '@src/components/responsive-overlay'; import { Buffer } from 'buffer'; import { Provider } from 'react-redux'; +import { MetaMaskProvider } from '@metamask/sdk-react'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; window.Buffer = Buffer; @@ -78,11 +80,20 @@ export default function App() { + + + diff --git a/src/config-global.ts b/src/config-global.ts index a19d1a1bc..5af394463 100644 --- a/src/config-global.ts +++ b/src/config-global.ts @@ -31,6 +31,7 @@ export const GLOBAL_CONSTANTS = { NEXT_PUBLIC_SUPABASE_URL: process.env.VITE_SUPABASE_URL || import.meta.env.VITE_SUPABASE_URL || '', NEXT_PUBLIC_SUPABASE_ANON_KEY: process.env.VITE_SUPABASE_API_KEY || import.meta.env.VITE_SUPABASE_API_KEY || '', ENVIRONMENT: process.env.NODE_ENV || import.meta.env.VITE_ENVIRONMENT || 'development', + INFURAMA_API_KEY: process.env.VITE_INFURAMA_API_KEY || import.meta.env.VITE_INFURAMA_API_KEY || '', }; export const MAPBOX_API = import.meta.env.VITE_MAPBOX_API || ''; diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index e4056b07a..c490dc56e 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -1,8 +1,82 @@ import Box from "@mui/material/Box"; +import { useSDK } from "@metamask/sdk-react"; +import { useState } from "react"; +import Button from "@mui/material/Button"; +import { ethers } from "ethers"; const FinanceDepositFromMetamask = () => { + const [account, setAccount] = useState(); + const { sdk, connected, connecting, provider, chainId } = useSDK(); + + // Request permission to read the balance + const getBalance = async (account: string) => { + try { + const balance = await provider.request({ + method: "eth_getBalance", + // @ts-ignore + params: [account, 'latest'], + }); + // @ts-ignore + const balanceInEther = ethers.formatEther(balance); + console.log("balance in Ether", balanceInEther); + } catch (err) { + console.warn("failed to get balance..", err); + } + }; + + const connect = async () => { + try { + const accounts = await sdk?.connect(); + console.log("connected", accounts); + setAccount(accounts?.[0]); + // @ts-ignore + await getBalance(accounts?.[0]); + } catch (err) { + console.warn("failed to connect..", err); + } + }; + + const revokePermissions = async () => { + await provider // Or window.ethereum if you don't support EIP-6963. + .request({ + method: "wallet_revokePermissions", + params: [ + { + eth_accounts: {}, + }, + ], + }) + } + + + return ( - + + + + + + {connected && ( +
+ <> + {chainId && `Connected chain: ${chainId}`} +

+ {account && `Connected account: ${account}`} + +
+ )} +
); } diff --git a/src/sections/finance/components/finance-deposit-from-smart-account.tsx b/src/sections/finance/components/finance-deposit-from-smart-account.tsx index 8c49073ab..f09ee6fe3 100644 --- a/src/sections/finance/components/finance-deposit-from-smart-account.tsx +++ b/src/sections/finance/components/finance-deposit-from-smart-account.tsx @@ -1,8 +1,15 @@ +import Stack from "@mui/material/Stack"; import Box from "@mui/material/Box"; const FinanceDepositFromSmartAccount = () => { + const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(500); return ( - + + Balance + {formattedTotal} + MMC + ); } From 91063334937d2fb86bb1d7853028a318c9471068 Mon Sep 17 00:00:00 2001 From: jadapema Date: Sat, 28 Dec 2024 14:45:09 -0600 Subject: [PATCH 35/71] feat: added new hooks connected to new protocol contracts, realtime blockchain events and blockchain logs with oklink --- src/clients/viem/publicClient.ts | 9 +- src/components/subscribe-profile-modal.tsx | 5 +- src/components/subscribe-to-unlock-card.tsx | 5 +- src/config-global.ts | 24 +++- src/config/abi/AccessAgg.json | 1 + src/config/abi/AccessWorkflow.json | 1 + src/config/abi/AgreementPortal.json | 1 - src/config/abi/LedgerVault.json | 1 + src/config/abi/PoliciesAgg.json | 1 + src/config/abi/RightsAccessAgreement.json | 1 - src/config/abi/RightsPolicyAuthorizer.json | 2 +- src/config/abi/SubscriptionPolicy.json | 2 +- src/config/abi/TipActionModule.json | 1 - src/hooks/use-authorize-policy.ts | 4 +- src/hooks/use-deposit.ts | 124 ++++++++++++++++ src/hooks/use-get-attestation.ts | 5 - .../use-get-authorized-holder-policies.ts | 90 ++++++++++++ src/hooks/use-get-balance.ts | 4 +- src/hooks/use-get-policy-terms.ts | 134 ++++++++++++++++++ .../use-get-smart-wallet-transactions.ts | 106 ++++++++++++++ src/hooks/use-get-vault-balance.ts | 36 +++++ src/hooks/use-has-access.ts | 12 +- src/hooks/use-is-policy-authorized.ts | 92 +++++++----- src/hooks/use-resolve-terms.ts | 100 ------------- src/hooks/use-subscribe.ts | 61 ++++---- src/hooks/use-transfer.ts | 95 +++++++++++++ src/hooks/use-withdraw.ts | 95 +++++++++++++ src/layouts/_common/header-balance.tsx | 90 +++++++----- src/redux/blockchain-events/index.ts | 31 ++++ src/redux/reducer.ts | 2 + src/routes/sections/index.tsx | 22 ++- 31 files changed, 924 insertions(+), 233 deletions(-) create mode 100644 src/config/abi/AccessAgg.json create mode 100644 src/config/abi/AccessWorkflow.json delete mode 100644 src/config/abi/AgreementPortal.json create mode 100644 src/config/abi/LedgerVault.json create mode 100644 src/config/abi/PoliciesAgg.json delete mode 100644 src/config/abi/RightsAccessAgreement.json delete mode 100644 src/config/abi/TipActionModule.json create mode 100644 src/hooks/use-deposit.ts create mode 100644 src/hooks/use-get-authorized-holder-policies.ts create mode 100644 src/hooks/use-get-policy-terms.ts create mode 100644 src/hooks/use-get-smart-wallet-transactions.ts create mode 100644 src/hooks/use-get-vault-balance.ts delete mode 100644 src/hooks/use-resolve-terms.ts create mode 100644 src/hooks/use-transfer.ts create mode 100644 src/hooks/use-withdraw.ts create mode 100644 src/redux/blockchain-events/index.ts diff --git a/src/clients/viem/publicClient.ts b/src/clients/viem/publicClient.ts index 138d5e90a..133fdf186 100644 --- a/src/clients/viem/publicClient.ts +++ b/src/clients/viem/publicClient.ts @@ -1,7 +1,14 @@ -import { createPublicClient, http } from 'viem'; +import { createPublicClient, http, webSocket } from 'viem'; import { polygonAmoy } from 'viem/chains'; +const WS_URL = 'wss://polygon-amoy-bor-rpc.publicnode.com'; + export const publicClient = createPublicClient({ chain: polygonAmoy, transport: http(polygonAmoy.rpcUrls.default.http[0]), }); + +export const publicClientWebSocket = createPublicClient({ + chain: polygonAmoy, + transport: webSocket(WS_URL) +}); diff --git a/src/components/subscribe-profile-modal.tsx b/src/components/subscribe-profile-modal.tsx index c56249c98..028445d2c 100644 --- a/src/components/subscribe-profile-modal.tsx +++ b/src/components/subscribe-profile-modal.tsx @@ -25,7 +25,7 @@ import { Address } from 'viem'; import LoadingButton from '@mui/lab/LoadingButton'; import { useSubscribe } from '@src/hooks/use-subscribe.ts'; import { Profile } from '@lens-protocol/api-bindings'; -import { useResolveTerms } from '@src/hooks/use-resolve-terms.ts'; +import { useGetPolicyTerms } from '@src/hooks/use-get-policy-terms.ts'; import LinearProgress from '@mui/material/LinearProgress'; // @ts-ignore @@ -37,6 +37,7 @@ import {useNotifications} from "@src/hooks/use-notifications.ts"; import { useNotificationPayload } from '@src/hooks/use-notification-payload.ts'; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; import Box from "@mui/material/Box"; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; // ---------------------------------------------------------------------- @@ -70,7 +71,7 @@ export const SubscribeProfileModal = ({ // Hooks for subscription and terms resolution const { data, error, loading, subscribe } = useSubscribe(); - const { terms, loading: loadingTerms } = useResolveTerms(profile?.ownedBy?.address as Address); + const { terms, loading: loadingTerms } = useGetPolicyTerms(GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS as Address, profile?.ownedBy?.address as Address); const { sendNotification } = useNotifications(); const { generatePayload } = useNotificationPayload(sessionData); diff --git a/src/components/subscribe-to-unlock-card.tsx b/src/components/subscribe-to-unlock-card.tsx index 6810980e9..816a25998 100644 --- a/src/components/subscribe-to-unlock-card.tsx +++ b/src/components/subscribe-to-unlock-card.tsx @@ -1,9 +1,10 @@ import { Box, Card, CardContent, Typography, Stack } from '@mui/material'; import { IconLock, IconPlayerPlay } from '@tabler/icons-react'; import { ethers } from 'ethers'; -import { useResolveTerms } from '@src/hooks/use-resolve-terms.ts'; +import { useGetPolicyTerms } from '@src/hooks/use-get-policy-terms.ts'; import { Address } from 'viem'; import LoadingButton from '@mui/lab/LoadingButton'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; interface Props { post: any; @@ -18,7 +19,7 @@ export const SubscribeToUnlockCard = ({ subscribeDisabled, post, }: Props) => { - const { terms } = useResolveTerms(post?.by?.ownedBy?.address as Address); + const { terms } = useGetPolicyTerms(GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS as Address, post?.by?.ownedBy?.address as Address); const durationDays = 30; // a month const totalCostWei = terms?.amount ? terms?.amount * BigInt(durationDays) : 0; // Calculate total cost in Wei: DAILY_COST_WEI * durationDays const totalCostMMC = ethers.formatUnits(totalCostWei, 18); // Converts Wei to MMC diff --git a/src/config-global.ts b/src/config-global.ts index 5af394463..a2d2eca12 100644 --- a/src/config-global.ts +++ b/src/config-global.ts @@ -10,14 +10,30 @@ export const ASSETS_API = import.meta.env.VITE_ASSETS_API || 'https://default-as export const GLOBAL_CONSTANTS = { MMC_ADDRESS: process.env.VITE_MMC_ADDRESS || import.meta.env.VITE_MMC_ADDRESS || '', - AGREEMENT_PORTAL_ADDRESS: - process.env.VITE_AGREEMENT_PORTAL_ADDRESS || - import.meta.env.VITE_AGREEMENT_PORTAL_ADDRESS || - '', SUBSCRIPTION_POLICY_ADDRESS: process.env.VITE_SUBSCRIPTION_POLICY_ADDRESS || import.meta.env.VITE_SUBSCRIPTION_POLICY_ADDRESS || '', + ACCESS_WORKFLOW_ADDRESS: + process.env.VITE_ACCESS_WORKFLOW_ADDRESS || + import.meta.env.VITE_ACCESS_WORKFLOW_ADDRESS || + '', + ACCESS_AGG_ADDRESS: + process.env.VITE_ACCESS_AGG_ADDRESS || + import.meta.env.VITE_ACCESS_AGG_ADDRESS || + '', + POLICIES_AGG_ADDRESS: + process.env.VITE_POLICIES_AGG_ADDRESS || + import.meta.env.VITE_POLICIES_AGG_ADDRESS || + '', + LEDGER_VAULT_ADDRESS: + process.env.VITE_LEDGER_VAULT_ADDRESS || + import.meta.env.VITE_LEDGER_VAULT_ADDRESS || + '', + OKLINK_API_KEY: + process.env.VITE_OKLINK_API_KEY || + import.meta.env.VITE_OKLINK_API_KEY || + '', RIGHT_POLICY_AUTHORIZER: process.env.VITE_RIGHT_POLICY_AUTHORIZER || import.meta.env.VITE_RIGHT_POLICY_AUTHORIZER || '', SENTRY_AUTH_TOKEN: diff --git a/src/config/abi/AccessAgg.json b/src/config/abi/AccessAgg.json new file mode 100644 index 000000000..88691a0d3 --- /dev/null +++ b/src/config/abi/AccessAgg.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowedByAsset","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowedByHolder","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014557601f6111fc38819003918201601f19168301916001600160401b038311848410176101495780849260209460405283398101031261014557516001600160a01b0381169081900361014557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610136576002600160401b03196001600160401b038216016100cd575b5060a05260405161109e908161015e8239608051818181610820015261093f015260a05181818160d101526105470152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;-1:-1:-1;;474:2431:2;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;1171:4:56;1163:13;;8837:64:55;474:2431:2;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;474:2431:2;;7985:34:55;7981:146;;-1:-1:-1;1020:65:2;;;474:2431;;;;;;;;1163:13:56;474:2431:2;;;;;;;;;;1020:65;474:2431;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;474:2431:2;-1:-1:-1;;;;;474:2431:2;;;8837:64:55;474:2431:2;;;;;;8087:29:55;;474:2431:2;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;474:2431:2;-1:-1:-1;474:2431:2;;;;;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:59;474:2431;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:55;474:2431:2;;;;;;4301:16:55;474:2431:2;;;;4726:16:55;;:34;;;;474:2431:2;4805:1:55;4790:16;:50;;;;474:2431:2;4855:13:55;:30;;;;474:2431:2;4851:91:55;;;474:2431:2;;4805:1:55;474:2431:2;;;;;8837:64:55;474:2431:2;4979:67:55;;474:2431:2;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;474:2431:2;;3295:62:102;474:2431:2;;;3295:62:102;474:2431:2;5066:101:55;;474:2431:2;5066:101:55;474:2431:2;8837:64:55;474:2431:2;;8837:64:55;474:2431:2;5142:14:55;474:2431:2;;;4805:1:55;474:2431:2;;5142:14:55;474:2431:2;4979:67:55;474:2431:2;;;;8837:64:55;474:2431:2;4979:67:55;;;4851:91;4908:23;474:2431:2;4908:23:55;474:2431:2;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;474:2431:2;;;;;;;;;;;;;1782:71:54;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2429:56;474:2431;;;:::i;:::-;;;;;;;2382:19;;474:2431;;2382:19;;;;;;:::i;:::-;474:2431;;2429:56;;;;;474:2431;2429:56;;474:2431;2429:56;;;:::i;:::-;;:21;474:2431;2429:21;474:2431;2429:56;;;;;;474:2431;2429:56;474:2431;2429:56;;;474:2431;;;;;;;;;;2429:56;;;;474:2431;2429:56;474:2431;2429:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;474:2431;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1902:56;474:2431;;;;;1856:18;474:2431;1856:18;;474:2431;;1856:18;;;;;;:::i;474:2431::-;;;;;;;;;;;1782:71:54;474:2431:2;;;;;4698:71:54;;;474:2431:2;;4698:71:54;474:2431:2;;;;;;;;4698:71:54;474:2431:2;;4698:71:54;;474:2431:2;;;;;;;;;;;;;:::i;:::-;;1782:71:54;474:2431:2;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;474:2431:2;4355:110:54;474:2431:2;4411:43:54;;474:2431:2;4411:43:54;474:2431:2;;;;;4411:43:54;4254:92;4302:33;474:2431:2;4302:33:54;966:10:57;474:2431:2;;;;4302:33:54;474:2431:2;;;;;;;;;;;;5115:6:56;474:2431:2;5106:4:56;5098:23;5094:145;;474:2431:2;;;811:66:68;474:2431:2;;;5094:145:56;5199:29;474:2431:2;5199:29:56;474:2431:2;;5199:29:56;474:2431:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;474:2431:2;4683:4:56;;4675:23;:120;;;;;474:2431:2;4658:251:56;;;3058:30:102;474:2431:2;;3295:62:102;474:2431:2;;;;3058:30:102;;;;474:2431:2;3058:30:102;;474:2431:2;;3058:30:102;;474:2431:2;1893:10:102;474:2431:2;;;;3058:30:102;;;;;;;474:2431:2;3058:30:102;;;474:2431:2;1869:35:102;;1865:140;;474:2431:2;;;;;;;6156:52:56;;474:2431:2;6156:52:56;474:2431:2;6156:52:56;;;;474:2431:2;;6156:52:56;;;474:2431:2;-1:-1:-1;6152:437:56;;6518:60;;474:2431:2;6518:60:56;474:2431:2;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;474:2431:2;;811:66:68;474:2431:2;;;811:66:68;474:2431:2;2407:36:68;474:2431:2;2407:36:68;;474:2431:2;;2458:15:68;:11;;474:2431:2;4049:25:75;;4091:55;4049:25;;;;;;474:2431:2;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;474:2431:2:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;474:2431:2;6159:70:68;6199:19;474:2431:2;6199:19:68;474:2431:2;;6199:19:68;1744:119;1805:47;474:2431:2;1805:47:68;474:2431:2;;;;1805:47:68;6246:120:56;6317:34;474:2431:2;6317:34:56;474:2431:2;;;;6317:34:56;6156:52;;;;474:2431:2;6156:52:56;;474:2431:2;6156:52:56;;;;;;474:2431:2;6156:52:56;;;:::i;:::-;;;474:2431:2;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;474:2431:2;;1927:67:102;;;474:2431:2;;1927:67:102;;520:1:100;474:2431:2;;520:1:100;;474:2431:2;520:1:100;3058:30:102;474:2431:2;;520:1:100;;;;;;1927:67:102;3058:30;;;474:2431:2;3058:30:102;;474:2431:2;3058:30:102;;;;;;474:2431:2;3058:30:102;;;:::i;:::-;;;474:2431:2;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;474:2431:2;;;811:66:68;474:2431:2;;4753:42:56;;4675:120;;;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4964:220:54:-;474:2431:2;;5147:30:54;4964:220;474:2431:2;;;1782:71:54;474:2431:2;;;1782:71:54;474:2431:2;;;;;;5147:30:54;4964:220::o;7084:141:55:-;474:2431:2;8837:64:55;474:2431:2;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;474:2431:2;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;474:2431:2;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;474:2431:2;4917:24:75;;4862:1;4917:24;474:2431:2;4917:24:75;474:2431:2;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"103":[{"start":209,"length":32},{"start":1351,"length":32}],"43508":[{"start":2080,"length":32},{"start":2367,"length":32}]}},"methodIdentifiers":{"RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isAccessAllowedByAsset(address,uint256)":"a1a2dac6","isAccessAllowedByHolder(address,address)":"929cd2e0","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowedByAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowedByHolder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowedByAsset(address,uint256)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"assetId\":\"ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isAccessAllowedByHolder(address,address)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"holder\":\"Address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowedByAsset(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"},\"isAccessAllowedByHolder(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8\",\"dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isAccessAllowedByAsset(address,uint256)":{"params":{"account":"Address of the account to verify.","assetId":"ID of the asset used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isAccessAllowedByHolder(address,address)":{"params":{"account":"Address of the account to verify.","holder":"Address of the rights holder used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"isAccessAllowedByAsset(address,uint256)":{"notice":"Checks if an account has access to a specific asset ID."},"isAccessAllowedByHolder(address,address)":{"notice":"Checks if an account has access rights based on a holder's criteria."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/AccessAgg.sol":"AccessAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/AccessAgg.sol":{"keccak256":"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e","urls":["bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8","dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/AccessAgg.sol","id":203,"exportedSymbols":{"AccessAgg":[202],"AccessControlledUpgradeable":[51328],"IRightsPolicyManager":[50414],"Initializable":[43488],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:2874:2","nodes":[{"id":85,"nodeType":"PragmaDirective","src":"32:23:2","nodes":[],"literals":["solidity","0.8",".26"]},{"id":87,"nodeType":"ImportDirective","src":"57:98:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":86,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"66:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89,"nodeType":"ImportDirective","src":"156:102:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":88,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"165:15:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91,"nodeType":"ImportDirective","src":"260:115:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":90,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"269:27:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93,"nodeType":"ImportDirective","src":"376:96:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":50415,"symbolAliases":[{"foreign":{"id":92,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"385:20:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":202,"nodeType":"ContractDefinition","src":"474:2431:2","nodes":[{"id":103,"nodeType":"VariableDeclaration","src":"628:59:2","nodes":[],"constant":false,"documentation":{"id":100,"nodeType":"StructuredDocumentation","src":"562:61:2","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"666:21:2","scope":202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"},"typeName":{"id":102,"nodeType":"UserDefinedTypeName","pathNode":{"id":101,"name":"IRightsPolicyManager","nameLocations":["628:20:2"],"nodeType":"IdentifierPath","referencedDeclaration":50414,"src":"628:20:2"},"referencedDeclaration":50414,"src":"628:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":119,"nodeType":"FunctionDefinition","src":"747:345:2","nodes":[],"body":{"id":118,"nodeType":"Block","src":"788:304:2","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":109,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"988:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111,"nodeType":"ExpressionStatement","src":"988:22:2"},{"expression":{"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":112,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1020:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":114,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"1065:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":113,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"1044:20:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50414_$","typeString":"type(contract IRightsPolicyManager)"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"src":"1020:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":117,"nodeType":"ExpressionStatement","src":"1020:65:2"}]},"documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"694:48:2","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"767:19:2","nodeType":"VariableDeclaration","scope":119,"src":"759:27:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"758:29:2"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[],"src":"788:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":135,"nodeType":"FunctionDefinition","src":"1286:151:2","nodes":[],"body":{"id":134,"nodeType":"Block","src":"1348:89:2","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":127,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"1358:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":129,"nodeType":"ExpressionStatement","src":"1358:24:2"},{"expression":{"arguments":[{"id":131,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1416:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":130,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"1392:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"ExpressionStatement","src":"1392:38:2"}]},"documentation":{"id":120,"nodeType":"StructuredDocumentation","src":"1098:183:2","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":125,"kind":"modifierInvocation","modifierName":{"id":124,"name":"initializer","nameLocations":["1336:11:2"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"1336:11:2"},"nodeType":"ModifierInvocation","src":"1336:11:2"}],"name":"initialize","nameLocation":"1295:10:2","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"accessManager","nameLocation":"1314:13:2","nodeType":"VariableDeclaration","scope":135,"src":"1306:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1305:23:2"},"returnParameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"1348:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":163,"nodeType":"FunctionDefinition","src":"1727:261:2","nodes":[],"body":{"id":162,"nodeType":"Block","src":"1822:166:2","nodes":[],"statements":[{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"criteria","nameLocation":"1845:8:2","nodeType":"VariableDeclaration","scope":162,"src":"1832:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":145,"name":"bytes","nodeType":"ElementaryTypeName","src":"1832:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"1867:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1856:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1860:6:2","memberName":"encode","nodeType":"MemberAccess","src":"1856:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1832:42:2"},{"assignments":[153,null],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"active","nameLocation":"1890:6:2","nodeType":"VariableDeclaration","scope":162,"src":"1885:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":152,"name":"bool","nodeType":"ElementaryTypeName","src":"1885:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":159,"initialValue":{"arguments":[{"id":156,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1940:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":157,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1949:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":154,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1902:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50388,"src":"1902:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"1884:74:2"},{"expression":{"id":160,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"1975:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":144,"id":161,"nodeType":"Return","src":"1968:13:2"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"1443:279:2","text":"@notice Checks if an account has access rights based on a holder's criteria.\n @param account Address of the account to verify.\n @param holder Address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"929cd2e0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByHolder","nameLocation":"1736:23:2","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"account","nameLocation":"1768:7:2","nodeType":"VariableDeclaration","scope":163,"src":"1760:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"1760:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"holder","nameLocation":"1785:6:2","nodeType":"VariableDeclaration","scope":163,"src":"1777:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1759:33:2"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163,"src":"1816:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":142,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":191,"nodeType":"FunctionDefinition","src":"2253:262:2","nodes":[],"body":{"id":190,"nodeType":"Block","src":"2348:167:2","nodes":[],"statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"criteria","nameLocation":"2371:8:2","nodeType":"VariableDeclaration","scope":190,"src":"2358:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173,"name":"bytes","nodeType":"ElementaryTypeName","src":"2358:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"id":177,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2393:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2382:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2386:6:2","memberName":"encode","nodeType":"MemberAccess","src":"2382:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2382:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2358:43:2"},{"assignments":[181,null],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"active","nameLocation":"2417:6:2","nodeType":"VariableDeclaration","scope":190,"src":"2412:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":180,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":187,"initialValue":{"arguments":[{"id":184,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2467:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"2476:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":182,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2429:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50388,"src":"2429:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"2411:74:2"},{"expression":{"id":188,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"2502:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":172,"id":189,"nodeType":"Return","src":"2495:13:2"}]},"documentation":{"id":164,"nodeType":"StructuredDocumentation","src":"1994:254:2","text":"@notice Checks if an account has access to a specific asset ID.\n @param account Address of the account to verify.\n @param assetId ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"a1a2dac6","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByAsset","nameLocation":"2262:22:2","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"account","nameLocation":"2293:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2285:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"2285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"assetId","nameLocation":"2310:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2302:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2284:34:2"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":191,"src":"2342:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":201,"nodeType":"FunctionDefinition","src":"2819:84:2","nodes":[],"body":{"id":200,"nodeType":"Block","src":"2901:2:2","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"2521:293:2","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":198,"kind":"modifierInvocation","modifierName":{"id":197,"name":"onlyAdmin","nameLocations":["2891:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"2891:9:2"},"nodeType":"ModifierInvocation","src":"2891:9:2"}],"name":"_authorizeUpgrade","nameLocation":"2828:17:2","overrides":{"id":196,"nodeType":"OverrideSpecifier","overrides":[],"src":"2882:8:2"},"parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"newImplementation","nameLocation":"2854:17:2","nodeType":"VariableDeclaration","scope":201,"src":"2846:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2845:27:2"},"returnParameters":{"id":199,"nodeType":"ParameterList","parameters":[],"src":"2901:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":94,"name":"Initializable","nameLocations":["496:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"496:13:2"},"id":95,"nodeType":"InheritanceSpecifier","src":"496:13:2"},{"baseName":{"id":96,"name":"UUPSUpgradeable","nameLocations":["511:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"511:15:2"},"id":97,"nodeType":"InheritanceSpecifier","src":"511:15:2"},{"baseName":{"id":98,"name":"AccessControlledUpgradeable","nameLocations":["528:27:2"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"528:27:2"},"id":99,"nodeType":"InheritanceSpecifier","src":"528:27:2"}],"canonicalName":"AccessAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[202,51328,43234,43838,43716,43670,44407,43488],"name":"AccessAgg","nameLocation":"483:9:2","scope":203,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[43259,43805,44380]}],"license":"MIT"},"id":2} diff --git a/src/config/abi/AccessWorkflow.json b/src/config/abi/AccessWorkflow.json new file mode 100644 index 000000000..49ecb6484 --- /dev/null +++ b/src/config/abi/AccessWorkflow.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"agreementManager","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"AGREEMENT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgreementManager"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerAccessAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AccessAgreementCreated","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61156c38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516113b490816101b882396080518181816105fd01526106fe015260a05181818160c00152610c66015260c051818181610d820152611121015260e051818181610b400152610cd20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;1218:3646:6;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;1218:3646:6;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;1218:3646:6;;;;2527:65;1218:3646;;;2602:55;;1218:3646;2667:17;;1218:3646;;;;;;;;1163:13:56;1218:3646:6;;;;;;;;;;2527:65;1218:3646;;;;;;;;;;2602:55;1218:3646;;;;;;;;;;2667:17;1218:3646;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;1218:3646:6;-1:-1:-1;;;;;1218:3646:6;;;8837:64:55;1218:3646:6;;;;;;8087:29:55;;1218:3646:6;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;1218:3646:6;-1:-1:-1;1218:3646:6;;;;;;-1:-1:-1;1218:3646:6;;;;;-1:-1:-1;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1414:59;1218:3646;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;8837:64:55;1218:3646:6;;;;;;4301:16:55;1218:3646:6;;;;4726:16:55;;:34;;;;1218:3646:6;4805:1:55;4790:16;:50;;;;1218:3646:6;4855:13:55;:30;;;;1218:3646:6;4851:91:55;;;1218:3646:6;;4805:1:55;1218:3646:6;;;;;8837:64:55;1218:3646:6;4979:67:55;;1218:3646:6;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;1218:3646:6;;3295:62:102;1218:3646:6;;;3295:62:102;1218:3646:6;5066:101:55;;1218:3646:6;5066:101:55;1218:3646:6;8837:64:55;1218:3646:6;;8837:64:55;1218:3646:6;5142:14:55;1218:3646:6;;;4805:1:55;1218:3646:6;;5142:14:55;1218:3646:6;4979:67:55;1218:3646:6;;;;8837:64:55;1218:3646:6;4979:67:55;;;4851:91;4908:23;1218:3646:6;4908:23:55;1218:3646:6;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;1782:71:54;1218:3646:6;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;1782:71:54;1218:3646:6;;;;;4698:71:54;;;1218:3646:6;;4698:71:54;1218:3646:6;;;;;;;;4698:71:54;1218:3646:6;;4698:71:54;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;1782:71:54;1218:3646:6;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1218:3646:6;4355:110:54;1218:3646:6;4411:43:54;;1218:3646:6;4411:43:54;1218:3646:6;;;;;4411:43:54;4254:92;4302:33;1218:3646:6;4302:33:54;966:10:57;1218:3646:6;;;;4302:33:54;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;5115:6:56;1218:3646:6;5106:4:56;5098:23;5094:145;;1218:3646:6;;;811:66:68;1218:3646:6;;;5094:145:56;5199:29;1218:3646:6;5199:29:56;1218:3646:6;;5199:29:56;1218:3646:6;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;1218:3646:6;4683:4:56;;4675:23;:120;;;;;1218:3646:6;4658:251:56;;;3058:30:102;1218:3646:6;;3295:62:102;1218:3646:6;;;;3058:30:102;;;;1218:3646:6;3058:30:102;;1218:3646:6;;3058:30:102;;1218:3646:6;1893:10:102;1218:3646:6;;;;3058:30:102;;;;;;;1218:3646:6;3058:30:102;;;1218:3646:6;1869:35:102;;1865:140;;1218:3646:6;;;;;;;6156:52:56;;1218:3646:6;6156:52:56;1218:3646:6;6156:52:56;;;;1218:3646:6;;6156:52:56;;;1218:3646:6;-1:-1:-1;6152:437:56;;6518:60;;1218:3646:6;6518:60:56;1218:3646:6;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;1218:3646:6;;811:66:68;1218:3646:6;;;811:66:68;1218:3646:6;2407:36:68;1218:3646:6;2407:36:68;;1218:3646:6;;2458:15:68;:11;;1218:3646:6;4049:25:75;;4091:55;4049:25;;;;;;1218:3646:6;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;1218:3646:6:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;1218:3646:6;6159:70:68;6199:19;1218:3646:6;6199:19:68;1218:3646:6;;6199:19:68;1744:119;1805:47;1218:3646:6;1805:47:68;1218:3646:6;;;;1805:47:68;6246:120:56;6317:34;1218:3646:6;6317:34:56;1218:3646:6;;;;6317:34:56;6156:52;;;;1218:3646:6;6156:52:56;;1218:3646:6;6156:52:56;;;;;;1218:3646:6;6156:52:56;;;:::i;:::-;;;1218:3646:6;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;1218:3646:6;;1927:67:102;;;1218:3646:6;;1927:67:102;;520:1:100;1218:3646:6;;520:1:100;;1218:3646:6;520:1:100;3058:30:102;1218:3646:6;;520:1:100;;;;;;1927:67:102;3058:30;;;1218:3646:6;3058:30:102;;1218:3646:6;3058:30:102;;;;;;1218:3646:6;3058:30:102;;;:::i;:::-;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;;1218:3646:6;;;;;;;;;4675:120:56;1218:3646:6;;;811:66:68;1218:3646:6;;4753:42:56;;4675:120;;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1669:27;1218:3646;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3796:10;;1218:3646;;3850:27;;1218:3646;;3929:18;;1218:3646;;4052:21;;1218:3646;4052:21;1218:3646;;;;4178:77;;;1218:3646;4178:77;;1218:3646;;;;4178:77;1218:3646;4178:77;;1218:3646;;4013:3;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:77;;:17;1218:3646;;4178:17;1218:3646;4178:77;;;;;;;1218:3646;4178:77;;;1218:3646;;;;;;;;4297:66;;;;1218:3646;4297:66;;;1218:3646;4297:66;;1218:3646;;;;;;;;;;;4297:66;;;;;;;1218:3646;4297:66;;;1218:3646;;4378:60;1218:3646;;;;;;;;;;;;4378:60;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1218:3646:6;;;;;;;;;;;;;4297:66;;;;;;1218:3646;4297:66;;;;;;:::i;:::-;;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:66:6;;;-1:-1:-1;4378:60:6;;-1:-1:-1;4297:66:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;4178:77;;;;1218:3646;4178:77;;1218:3646;4178:77;;;;;;1218:3646;4178:77;;;:::i;:::-;;;1218:3646;;;;;;4178:77;;1218:3646;4178:77;;;;;-1:-1:-1;4178:77:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;1545:52;1218:3646;1545:52;1218:3646;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;4964:220:54:-;1218:3646:6;;5147:30:54;4964:220;1218:3646:6;;;1782:71:54;1218:3646:6;;;1782:71:54;1218:3646:6;;;;;;5147:30:54;4964:220::o;7084:141:55:-;1218:3646:6;8837:64:55;1218:3646:6;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;1218:3646:6;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1218:3646:6;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1218:3646:6;4917:24:75;;4862:1;4917:24;1218:3646:6;4917:24:75;1218:3646:6;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"1087":[{"start":192,"length":32},{"start":3174,"length":32}],"1091":[{"start":3458,"length":32},{"start":4385,"length":32}],"1095":[{"start":2880,"length":32},{"start":3282,"length":32}],"43508":[{"start":1533,"length":32},{"start":1790,"length":32}]}},"methodIdentifiers":{"AGREEMENT_MANAGER()":"00efe0c3","MMC()":"44dea5a7","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","registerAccessAgreement(uint256,address,address,address[],bytes)":"290ed221","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of MMC tokens used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"attestationIds An array of registered attestations under the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"AGREEMENT_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"}},\"notice\":\"Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/AccessWorkflow.sol\":{\"keccak256\":\"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8\",\"dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"agreementManager","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AccessAgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AGREEMENT_MANAGER","outputs":[{"internalType":"contract IAgreementManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"details":"Encapsulates agreement creation and access policy registration into one cohesive workflow.","params":{"amount":"The amount of MMC tokens to be used in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."},"returns":{"_0":"attestationIds An array of registered attestations under the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new access agreement in a single transaction."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/facades/AccessWorkflow.sol":"AccessWorkflow"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/facades/AccessWorkflow.sol":{"keccak256":"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508","urls":["bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8","dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol":{"keccak256":"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67","urls":["bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff","dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/facades/AccessWorkflow.sol","id":1256,"exportedSymbols":{"AccessControlledUpgradeable":[51328],"AccessWorkflow":[1255],"FinancialOps":[50692],"IAgreementManager":[50202],"IERC20":[44863],"IPolicy":[50275],"IRightsPolicyManager":[50414],"Initializable":[43488],"LoopOps":[50712],"T":[51200],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:4833:6","nodes":[{"id":1053,"nodeType":"PragmaDirective","src":"32:23:6","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1055,"nodeType":"ImportDirective","src":"57:71:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":44398,"symbolAliases":[{"foreign":{"id":1054,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44863,"src":"66:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1057,"nodeType":"ImportDirective","src":"129:98:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":1056,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"138:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1059,"nodeType":"ImportDirective","src":"228:102:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":1058,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"237:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1061,"nodeType":"ImportDirective","src":"331:115:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":1060,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"340:27:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1063,"nodeType":"ImportDirective","src":"448:96:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50415,"symbolAliases":[{"foreign":{"id":1062,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"457:20:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1065,"nodeType":"ImportDirective","src":"545:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50693,"symbolAliases":[{"foreign":{"id":1064,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50692,"src":"554:12:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1067,"nodeType":"ImportDirective","src":"618:62:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50713,"symbolAliases":[{"foreign":{"id":1066,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50712,"src":"627:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1069,"nodeType":"ImportDirective","src":"681:93:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol","file":"@synaps3/core/interfaces/financial/IAgreementManager.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50203,"symbolAliases":[{"foreign":{"id":1068,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50202,"src":"690:17:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1071,"nodeType":"ImportDirective","src":"775:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50276,"symbolAliases":[{"foreign":{"id":1070,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"784:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1073,"nodeType":"ImportDirective","src":"848:55:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":51201,"symbolAliases":[{"foreign":{"id":1072,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"857:1:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1255,"nodeType":"ContractDefinition","src":"1218:3646:6","nodes":[{"id":1083,"nodeType":"UsingForDirective","src":"1311:31:6","nodes":[],"global":false,"libraryName":{"id":1081,"name":"FinancialOps","nameLocations":["1317:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":50692,"src":"1317:12:6"},"typeName":{"id":1082,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":1087,"nodeType":"VariableDeclaration","src":"1414:59:6","nodes":[],"constant":false,"documentation":{"id":1084,"nodeType":"StructuredDocumentation","src":"1348:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1452:21:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"},"typeName":{"id":1086,"nodeType":"UserDefinedTypeName","pathNode":{"id":1085,"name":"IRightsPolicyManager","nameLocations":["1414:20:6"],"nodeType":"IdentifierPath","referencedDeclaration":50414,"src":"1414:20:6"},"referencedDeclaration":50414,"src":"1414:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":1091,"nodeType":"VariableDeclaration","src":"1545:52:6","nodes":[],"constant":false,"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"1479:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"00efe0c3","mutability":"immutable","name":"AGREEMENT_MANAGER","nameLocation":"1580:17:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"},"typeName":{"id":1090,"nodeType":"UserDefinedTypeName","pathNode":{"id":1089,"name":"IAgreementManager","nameLocations":["1545:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":50202,"src":"1545:17:6"},"referencedDeclaration":50202,"src":"1545:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"visibility":"public"},{"id":1095,"nodeType":"VariableDeclaration","src":"1669:27:6","nodes":[],"constant":false,"documentation":{"id":1092,"nodeType":"StructuredDocumentation","src":"1603:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1693:3:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"},"typeName":{"id":1094,"nodeType":"UserDefinedTypeName","pathNode":{"id":1093,"name":"IERC20","nameLocations":["1669:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":44863,"src":"1669:6:6"},"referencedDeclaration":44863,"src":"1669:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"visibility":"public"},{"id":1106,"nodeType":"EventDefinition","src":"2041:115:6","nodes":[],"anonymous":false,"documentation":{"id":1096,"nodeType":"StructuredDocumentation","src":"1703:333:6","text":"@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement.\n @param amount The amount of MMC tokens used in the agreement."},"eventSelector":"8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc407789","name":"AccessAgreementCreated","nameLocation":"2047:22:6","parameters":{"id":1105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2086:6:6","nodeType":"VariableDeclaration","scope":1106,"src":"2070:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1097,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"2110:13:6","nodeType":"VariableDeclaration","scope":1106,"src":"2094:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2133:5:6","nodeType":"VariableDeclaration","scope":1106,"src":"2125:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1101,"name":"uint256","nodeType":"ElementaryTypeName","src":"2125:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1104,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2148:6:6","nodeType":"VariableDeclaration","scope":1106,"src":"2140:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2069:86:6"}},{"id":1138,"nodeType":"FunctionDefinition","src":"2215:476:6","nodes":[],"body":{"id":1137,"nodeType":"Block","src":"2295:396:6","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1116,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"2495:20:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1118,"nodeType":"ExpressionStatement","src":"2495:22:6"},{"expression":{"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1119,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"2527:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1121,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"2572:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1120,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"2551:20:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50414_$","typeString":"type(contract IRightsPolicyManager)"}},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"src":"2527:65:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":1124,"nodeType":"ExpressionStatement","src":"2527:65:6"},{"expression":{"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1125,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"2602:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1127,"name":"agreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"2640:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1126,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50202,"src":"2622:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAgreementManager_$50202_$","typeString":"type(contract IAgreementManager)"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2622:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"src":"2602:55:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"id":1130,"nodeType":"ExpressionStatement","src":"2602:55:6"},{"expression":{"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1131,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"2667:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1133,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"2680:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1132,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44863,"src":"2673:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$44863_$","typeString":"type(contract IERC20)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"src":"2667:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"id":1136,"nodeType":"ExpressionStatement","src":"2667:17:6"}]},"documentation":{"id":1107,"nodeType":"StructuredDocumentation","src":"2162:48:6","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"2235:19:6","nodeType":"VariableDeclaration","scope":1138,"src":"2227:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1108,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1111,"mutability":"mutable","name":"agreementManager","nameLocation":"2264:16:6","nodeType":"VariableDeclaration","scope":1138,"src":"2256:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1110,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1113,"mutability":"mutable","name":"mmc","nameLocation":"2290:3:6","nodeType":"VariableDeclaration","scope":1138,"src":"2282:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1112,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:68:6"},"returnParameters":{"id":1115,"nodeType":"ParameterList","parameters":[],"src":"2295:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1154,"nodeType":"FunctionDefinition","src":"2742:151:6","nodes":[],"body":{"id":1153,"nodeType":"Block","src":"2804:89:6","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1146,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"2814:22:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2814:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1148,"nodeType":"ExpressionStatement","src":"2814:24:6"},{"expression":{"arguments":[{"id":1150,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"2872:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1149,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"2848:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1152,"nodeType":"ExpressionStatement","src":"2848:38:6"}]},"documentation":{"id":1139,"nodeType":"StructuredDocumentation","src":"2697:40:6","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1144,"kind":"modifierInvocation","modifierName":{"id":1143,"name":"initializer","nameLocations":["2792:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"2792:11:6"},"nodeType":"ModifierInvocation","src":"2792:11:6"}],"name":"initialize","nameLocation":"2751:10:6","parameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"accessManager","nameLocation":"2770:13:6","nodeType":"VariableDeclaration","scope":1154,"src":"2762:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2761:23:6"},"returnParameters":{"id":1145,"nodeType":"ParameterList","parameters":[],"src":"2804:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1244,"nodeType":"FunctionDefinition","src":"3558:916:6","nodes":[],"body":{"id":1243,"nodeType":"Block","src":"3778:696:6","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1173,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"3796:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3796:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e742063616e6e6f74206265207a65726f","id":1176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:23:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""},"value":"Amount cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""}],"id":1172,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3788:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1178,"nodeType":"ExpressionStatement","src":"3788:44:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1180,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"3850:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3875:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3867:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1181,"name":"address","nodeType":"ElementaryTypeName","src":"3867:7:6","typeDescriptions":{}}},"id":1184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3850:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616464726573732063616e6e6f74206265207a65726f","id":1186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3879:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""},"value":"Policy address cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""}],"id":1179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3842:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1188,"nodeType":"ExpressionStatement","src":"3842:69:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1190,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"3929:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3937:6:6","memberName":"length","nodeType":"MemberAccess","src":"3929:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3946:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3929:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172746965732063616e6e6f7420626520656d707479","id":1194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3949:25:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""},"value":"Parties cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""}],"id":1189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3921:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:54:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1196,"nodeType":"ExpressionStatement","src":"3921:54:6"},{"assignments":[1198],"declarations":[{"constant":false,"id":1198,"mutability":"mutable","name":"currency","nameLocation":"3994:8:6","nodeType":"VariableDeclaration","scope":1243,"src":"3986:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1197,"name":"address","nodeType":"ElementaryTypeName","src":"3986:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1203,"initialValue":{"arguments":[{"id":1201,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"4013:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}],"id":1200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4005:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"4005:7:6","typeDescriptions":{}}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3986:31:6"},{"assignments":[1205],"declarations":[{"constant":false,"id":1205,"mutability":"mutable","name":"broker","nameLocation":"4035:6:6","nodeType":"VariableDeclaration","scope":1243,"src":"4027:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1204,"name":"address","nodeType":"ElementaryTypeName","src":"4027:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1210,"initialValue":{"arguments":[{"id":1208,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"4052:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}],"id":1207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4044:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1206,"name":"address","nodeType":"ElementaryTypeName","src":"4044:7:6","typeDescriptions":{}}},"id":1209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4027:47:6"},{"assignments":[1212],"declarations":[{"constant":false,"id":1212,"mutability":"mutable","name":"proof","nameLocation":"4170:5:6","nodeType":"VariableDeclaration","scope":1243,"src":"4162:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1211,"name":"uint256","nodeType":"ElementaryTypeName","src":"4162:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1221,"initialValue":{"arguments":[{"id":1215,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"4212:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1216,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"4220:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1217,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"4230:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1218,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"4238:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1219,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"4247:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1213,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"4178:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"id":1214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4196:15:6","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":50183,"src":"4178:33:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4162:93:6"},{"assignments":[1226],"declarations":[{"constant":false,"id":1226,"mutability":"mutable","name":"attestations","nameLocation":"4282:12:6","nodeType":"VariableDeclaration","scope":1243,"src":"4265:29:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"4265:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1225,"nodeType":"ArrayTypeName","src":"4265:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":1233,"initialValue":{"arguments":[{"id":1229,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"4334:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1230,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"4341:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1231,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"4349:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1227,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"4297:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:14:6","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":50413,"src":"4297:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address) external returns (uint256[] memory)"}},"id":1232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:66:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4265:98:6"},{"eventCall":{"arguments":[{"id":1235,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"4401:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1236,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"4409:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1237,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"4424:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"4431:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1234,"name":"AccessAgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"4378:22:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:60:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1240,"nodeType":"EmitStatement","src":"4373:65:6"},{"expression":{"id":1241,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4455:12:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1171,"id":1242,"nodeType":"Return","src":"4448:19:6"}]},"documentation":{"id":1155,"nodeType":"StructuredDocumentation","src":"2899:654:6","text":"@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return attestationIds An array of registered attestations under the agreement."},"functionSelector":"290ed221","implemented":true,"kind":"function","modifiers":[],"name":"registerAccessAgreement","nameLocation":"3567:23:6","parameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"amount","nameLocation":"3608:6:6","nodeType":"VariableDeclaration","scope":1244,"src":"3600:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"holder","nameLocation":"3632:6:6","nodeType":"VariableDeclaration","scope":1244,"src":"3624:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"3624:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"policyAddress","nameLocation":"3656:13:6","nodeType":"VariableDeclaration","scope":1244,"src":"3648:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1160,"name":"address","nodeType":"ElementaryTypeName","src":"3648:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"parties","nameLocation":"3698:7:6","nodeType":"VariableDeclaration","scope":1244,"src":"3679:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1162,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1163,"nodeType":"ArrayTypeName","src":"3679:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"payload","nameLocation":"3730:7:6","nodeType":"VariableDeclaration","scope":1244,"src":"3715:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1165,"name":"bytes","nodeType":"ElementaryTypeName","src":"3715:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:153:6"},"returnParameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1244,"src":"3760:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1169,"nodeType":"ArrayTypeName","src":"3760:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3759:18:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1254,"nodeType":"FunctionDefinition","src":"4778:84:6","nodes":[],"body":{"id":1253,"nodeType":"Block","src":"4860:2:6","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":1245,"nodeType":"StructuredDocumentation","src":"4480:293:6","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1251,"kind":"modifierInvocation","modifierName":{"id":1250,"name":"onlyAdmin","nameLocations":["4850:9:6"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"4850:9:6"},"nodeType":"ModifierInvocation","src":"4850:9:6"}],"name":"_authorizeUpgrade","nameLocation":"4787:17:6","overrides":{"id":1249,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:6"},"parameters":{"id":1248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1247,"mutability":"mutable","name":"newImplementation","nameLocation":"4813:17:6","nodeType":"VariableDeclaration","scope":1254,"src":"4805:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1246,"name":"address","nodeType":"ElementaryTypeName","src":"4805:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4804:27:6"},"returnParameters":{"id":1252,"nodeType":"ParameterList","parameters":[],"src":"4860:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1075,"name":"Initializable","nameLocations":["1245:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"1245:13:6"},"id":1076,"nodeType":"InheritanceSpecifier","src":"1245:13:6"},{"baseName":{"id":1077,"name":"UUPSUpgradeable","nameLocations":["1260:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"1260:15:6"},"id":1078,"nodeType":"InheritanceSpecifier","src":"1260:15:6"},{"baseName":{"id":1079,"name":"AccessControlledUpgradeable","nameLocations":["1277:27:6"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"1277:27:6"},"id":1080,"nodeType":"InheritanceSpecifier","src":"1277:27:6"}],"canonicalName":"AccessWorkflow","contractDependencies":[],"contractKind":"contract","documentation":{"id":1074,"nodeType":"StructuredDocumentation","src":"905:313:6","text":"@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\n @dev This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management."},"fullyImplemented":true,"linearizedBaseContracts":[1255,51328,43234,43838,43716,43670,44407,43488],"name":"AccessWorkflow","nameLocation":"1227:14:6","scope":1256,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[1106,43259,43805,44380]}],"license":"MIT"},"id":6} diff --git a/src/config/abi/AgreementPortal.json b/src/config/abi/AgreementPortal.json deleted file mode 100644 index ded053270..000000000 --- a/src/config/abi/AgreementPortal.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"rightsAgreement","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_AGREEMENT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsAccessAgreement"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"flashPolicyAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61189f38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516116e790816101b882396080518181816105fb015261074c015260a05181818160be0152610cd6015260c05181818161069f0152610d1c015260e051818181610b8e0152610c9e0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe60806040526004361015610011575f80fd5b5f3560e01c8063445b562a14610bb257806344dea5a714610b625780634f1ef286146106c35780634f622ffe1461067357806352d1902d146105d45780637a9e5e4b146104fd5780638fb360371461046a578063ad3cb1cc146103d6578063bf7e214f14610384578063c4d66de8146100e65763f1bdc45214610092575f80fd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e25760206003193601126100e2576100ff611141565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037c575b6001149081610372575b159081610369575b5061034157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ec575b506101c261153a565b6101ca61153a565b6101d261153a565b6101da61153a565b6101e3816113d6565b6101eb61153a565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101b9565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610150565b303b159150610148565b84915061013e565b346100e2575f6003193601126100e257602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e2575f6003193601126100e25760408051906103f58183611164565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e2575f6003193601126100e2577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f55760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cb565b346100e25760206003193601126100e257610516611141565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105a857803b1561056657610564906113d6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e2575f6003193601126100e25773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064b5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b60406003193601126100e2576106d7611141565b6024359067ffffffffffffffff82116100e257366023830112156100e257816004013590610704826111d2565b916107126040519384611164565b808352602083019336602483830101116100e257815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610b20575b5061064b576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b15575f91610ac8575b5015610a445773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610a10575b5061088357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109e55750823b156109ba57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610988575f8091610564945190845af43d15610980573d91610964836111d2565b926109726040519485611164565b83523d5f602085013e611618565b606091611618565b5050503461099257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a3c575b81610a2c60209383611164565b810103126100e257519086610852565b3d9150610a1f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610b0d575b81610ae360409383611164565b810103126100e25780519081151582036100e2576020015163ffffffff8116036100e257846107fd565b3d9150610ad6565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610777565b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e25760a06003193601126100e25760243573ffffffffffffffffffffffffffffffffffffffff81168091036100e2576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576064359067ffffffffffffffff82116100e257366023830112156100e25781600401359167ffffffffffffffff83116100e2573660248460051b830101116100e2576084359267ffffffffffffffff84116100e257366023850112156100e25783600401359167ffffffffffffffff83116100e25736602484870101116100e25773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001695610d04856004353361120c565b9373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169486158015611139575b6110b6576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152906020826044818b5afa918215610b15575f92611082575b5080820180921161105557829160205f60405192828401907f095ea7b30000000000000000000000000000000000000000000000000000000082528b6024860152604485015260448452610dff606485611164565b835190828d5af15f513d82611039575b505015610fdc575b5096949392916040519788967f3f5d1b6f00000000000000000000000000000000000000000000000000000000885260a4880191600489015260248801528a604488015260a0606488015252602460c486019401905f905b808210610f9c57505050602084847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86849760245f98600319888a9f9d030160848901528287520187860137868682860101520116010301925af1908115610b15575f91610f69575b506064905f60209460405196879586947f9f7434f40000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af18015610b15575f90610f36575b602090604051908152f35b506020813d602011610f61575b81610f5060209383611164565b810103126100e25760209051610f2b565b3d9150610f43565b90506020813d602011610f94575b81610f8460209383611164565b810103126100e257516020610eda565b3d9150610f77565b91955091929385359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576020816001938293520196019201879594939291610e6f565b6110339061102d6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528a60248201525f604482015260448152611027606482611164565b8b611591565b89611591565b8b610e17565b90915061104d5750883b15155b8d80610e0f565b600114611046565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9091506020813d6020116110ae575b8161109e60209383611164565b810103126100e25751908b610daa565b3d9150611091565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508015610d46565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111a557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116111a557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b91909182156113785773ffffffffffffffffffffffffffffffffffffffff821691821561130d5761123d9082611481565b83116112af576112ac9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526112a7608483611164565b611591565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b50505034811161131a5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff168015611534576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610b15575f91611505575090565b90506020813d60201161152c575b8161152060209383611164565b810103126100e2575190565b3d9150611513565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561156957565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610b15575f513d61160f575073ffffffffffffffffffffffffffffffffffffffff81163b155b6115cd5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b600114156115c6565b90611655575080511561162d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806116a8575b611666575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561165e56fea264697066735822122032c91252acfbd0bee37869d6e4cf0ec48bfe0465ea59dc92f7d6f483d0e433ac64736f6c634300081a0033","sourceMap":"904:2905:1:-:0;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;-1:-1:-1;;;;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:40;;1163:13;;8837:64:39;904:2905:1;;;;;;7896:76:39;;-1:-1:-1;;;;;;;;;;;904:2905:1;;7985:34:39;7981:146;;-1:-1:-1;;;;;;;904:2905:1;;;;1757:65;904:2905;;;1832:58;;904:2905;1900:17;;904:2905;;;;;;;;1163:13:40;904:2905:1;;;;;;;;;;1757:65;904:2905;;;;;;;;;;1832:58;904:2905;;;;;;;;;;1900:17;904:2905;;;;;;;;;;;7981:146:39;-1:-1:-1;;;;;;904:2905:1;-1:-1:-1;;;;;904:2905:1;;;8837:64:39;904:2905:1;;;;;;8087:29:39;;904:2905:1;;8087:29:39;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:39;;-1:-1:-1;7938:23:39;904:2905:1;-1:-1:-1;904:2905:1;;;;;;-1:-1:-1;904:2905:1;;;;;-1:-1:-1;904:2905:1;;;;-1:-1:-1;;;;;904:2905:1;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c8063445b562a14610bb257806344dea5a714610b625780634f1ef286146106c35780634f622ffe1461067357806352d1902d146105d45780637a9e5e4b146104fd5780638fb360371461046a578063ad3cb1cc146103d6578063bf7e214f14610384578063c4d66de8146100e65763f1bdc45214610092575f80fd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e25760206003193601126100e2576100ff611141565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037c575b6001149081610372575b159081610369575b5061034157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ec575b506101c261153a565b6101ca61153a565b6101d261153a565b6101da61153a565b6101e3816113d6565b6101eb61153a565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101b9565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610150565b303b159150610148565b84915061013e565b346100e2575f6003193601126100e257602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e2575f6003193601126100e25760408051906103f58183611164565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e2575f6003193601126100e2577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f55760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cb565b346100e25760206003193601126100e257610516611141565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105a857803b1561056657610564906113d6565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e2575f6003193601126100e25773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064b5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b60406003193601126100e2576106d7611141565b6024359067ffffffffffffffff82116100e257366023830112156100e257816004013590610704826111d2565b916107126040519384611164565b808352602083019336602483830101116100e257815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610b20575b5061064b576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610b15575f91610ac8575b5015610a445773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610a10575b5061088357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109e55750823b156109ba57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610988575f8091610564945190845af43d15610980573d91610964836111d2565b926109726040519485611164565b83523d5f602085013e611618565b606091611618565b5050503461099257005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610a3c575b81610a2c60209383611164565b810103126100e257519086610852565b3d9150610a1f565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610b0d575b81610ae360409383611164565b810103126100e25780519081151582036100e2576020015163ffffffff8116036100e257846107fd565b3d9150610ad6565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610777565b346100e2575f6003193601126100e257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e25760a06003193601126100e25760243573ffffffffffffffffffffffffffffffffffffffff81168091036100e2576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576064359067ffffffffffffffff82116100e257366023830112156100e25781600401359167ffffffffffffffff83116100e2573660248460051b830101116100e2576084359267ffffffffffffffff84116100e257366023850112156100e25783600401359167ffffffffffffffff83116100e25736602484870101116100e25773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001695610d04856004353361120c565b9373ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169486158015611139575b6110b6576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff87166024820152906020826044818b5afa918215610b15575f92611082575b5080820180921161105557829160205f60405192828401907f095ea7b30000000000000000000000000000000000000000000000000000000082528b6024860152604485015260448452610dff606485611164565b835190828d5af15f513d82611039575b505015610fdc575b5096949392916040519788967f3f5d1b6f00000000000000000000000000000000000000000000000000000000885260a4880191600489015260248801528a604488015260a0606488015252602460c486019401905f905b808210610f9c57505050602084847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f86849760245f98600319888a9f9d030160848901528287520187860137868682860101520116010301925af1908115610b15575f91610f69575b506064905f60209460405196879586947f9f7434f40000000000000000000000000000000000000000000000000000000086526004860152602485015260448401525af18015610b15575f90610f36575b602090604051908152f35b506020813d602011610f61575b81610f5060209383611164565b810103126100e25760209051610f2b565b3d9150610f43565b90506020813d602011610f94575b81610f8460209383611164565b810103126100e257516020610eda565b3d9150610f77565b91955091929385359073ffffffffffffffffffffffffffffffffffffffff82168092036100e2576020816001938293520196019201879594939291610e6f565b6110339061102d6040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528a60248201525f604482015260448152611027606482611164565b8b611591565b89611591565b8b610e17565b90915061104d5750883b15155b8d80610e0f565b600114611046565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b9091506020813d6020116110ae575b8161109e60209383611164565b810103126100e25751908b610daa565b3d9150611091565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508015610d46565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e257565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176111a557604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116111a557601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b91909182156113785773ffffffffffffffffffffffffffffffffffffffff821691821561130d5761123d9082611481565b83116112af576112ac9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526112a7608483611164565b611591565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b50505034811161131a5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff168015611534576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610b15575f91611505575090565b90506020813d60201161152c575b8161152060209383611164565b810103126100e2575190565b3d9150611513565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561156957565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610b15575f513d61160f575073ffffffffffffffffffffffffffffffffffffffff81163b155b6115cd5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b600114156115c6565b90611655575080511561162d57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806116a8575b611666575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561165e56fea264697066735822122032c91252acfbd0bee37869d6e4cf0ec48bfe0465ea59dc92f7d6f483d0e433ac64736f6c634300081a0033","sourceMap":"904:2905:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1100:59;904:2905;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;8837:64:39;904:2905:1;;;;;;4301:16:39;904:2905:1;;;;4726:16:39;;:34;;;;904:2905:1;4805:1:39;4790:16;:50;;;;904:2905:1;4855:13:39;:30;;;;904:2905:1;4851:91:39;;;904:2905:1;;4805:1:39;904:2905:1;;;;;8837:64:39;904:2905:1;4979:67:39;;904:2905:1;6893:76:39;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:38;;;:::i;:::-;6893:76:39;;:::i;:::-;904:2905:1;;3295:62:75;904:2905:1;;;3295:62:75;904:2905:1;5066:101:39;;904:2905:1;5066:101:39;904:2905:1;8837:64:39;904:2905:1;;8837:64:39;904:2905:1;5142:14:39;904:2905:1;;;4805:1:39;904:2905:1;;5142:14:39;904:2905:1;4979:67:39;904:2905:1;;;;8837:64:39;904:2905:1;4979:67:39;;;4851:91;4908:23;904:2905:1;4908:23:39;904:2905:1;;4908:23:39;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:39;;4726:34;;;-1:-1:-1;4726:34:39;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;1782:71:38;904:2905:1;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;1782:71:38;904:2905:1;;;;;4698:71:38;;;904:2905:1;;4698:71:38;904:2905:1;;;;;;;;4698:71:38;904:2905:1;;4698:71:38;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;;1782:71:38;904:2905:1;;966:10:41;4258:21:38;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:2905:1;4355:110:38;904:2905:1;4411:43:38;;904:2905:1;4411:43:38;904:2905:1;;;;;4411:43:38;4254:92;4302:33;904:2905:1;4302:33:38;966:10:41;904:2905:1;;;;4302:33:38;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;5115:6:40;904:2905:1;5106:4:40;5098:23;5094:145;;904:2905:1;;;811:66:52;904:2905:1;;;5094:145:40;5199:29;904:2905:1;5199:29:40;904:2905:1;;5199:29:40;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1231:56;904:2905;;;;;;-1:-1:-1;;904:2905:1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:40;904:2905:1;4683:4:40;;4675:23;:120;;;;;904:2905:1;4658:251:40;;;3058:30:75;904:2905:1;;3295:62:75;904:2905:1;;;;3058:30:75;;;;904:2905:1;3058:30:75;;904:2905:1;;3058:30:75;;904:2905:1;1893:10:75;904:2905:1;;;;3058:30:75;;;;;;;904:2905:1;3058:30:75;;;904:2905:1;1869:35:75;;1865:140;;904:2905:1;;;;;;;6156:52:40;;904:2905:1;6156:52:40;904:2905:1;6156:52:40;;;;904:2905:1;;6156:52:40;;;904:2905:1;-1:-1:-1;6152:437:40;;6518:60;;904:2905:1;6518:60:40;904:2905:1;;;;6518:60:40;6152:437;6250:40;811:66:52;6250:40:40;;;6246:120;;1748:29:52;;;:34;1744:119;;904:2905:1;;811:66:52;904:2905:1;;;811:66:52;904:2905:1;2407:36:52;904:2905:1;2407:36:52;;904:2905:1;;2458:15:52;:11;;904:2905:1;4049:25:57;;4091:55;4049:25;;;;;;904:2905:1;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:57;:::i;904:2905:1:-;;;4091:55:57;:::i;2454:148:52:-;6163:9;;;;6159:70;;904:2905:1;6159:70:52;6199:19;904:2905:1;6199:19:52;904:2905:1;;6199:19:52;1744:119;1805:47;904:2905:1;1805:47:52;904:2905:1;;;;1805:47:52;6246:120:40;6317:34;904:2905:1;6317:34:40;904:2905:1;;;;6317:34:40;6156:52;;;;904:2905:1;6156:52:40;;904:2905:1;6156:52:40;;;;;;904:2905:1;6156:52:40;;;:::i;:::-;;;904:2905:1;;;;;6156:52:40;;;;;;;-1:-1:-1;6156:52:40;;1865:140:75;1927:67;904:2905:1;;1927:67:75;;;904:2905:1;;1927:67:75;;520:1:73;904:2905:1;;520:1:73;;904:2905:1;520:1:73;3058:30:75;904:2905:1;;520:1:73;;;;;;1927:67:75;3058:30;;;904:2905:1;3058:30:75;;904:2905:1;3058:30:75;;;;;;904:2905:1;3058:30:75;;;:::i;:::-;;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;3058:30:75;;;;;;-1:-1:-1;3058:30:75;;;904:2905:1;;;;;;;;;4675:120:40;904:2905:1;;;811:66:52;904:2905:1;;4753:42:40;;4675:120;;;904:2905:1;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;1359:27;904:2905;;;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2848:3;904:2905;2887:21;904:2905;2887:21;904:2905;;3031:40;904:2905;;;3031:10;:40;:::i;:::-;3090:16;904:2905;3090:16;904:2905;2071:19:72;;;:34;;;;904:2905:1;2067:104:72;;904:2905:1;;;2633:39:56;;2657:4;904:2905:1;2633:39:56;;904:2905:1;;;;;;;;;;;;;2633:39:56;;;;;;;;904:2905:1;2633:39:56;;;904:2905:1;;;;;;;;;;;;;;;;4567:47:56;;;;;904:2905:1;4567:47:56;;;904:2905:1;4567:47:56;;904:2905:1;;;;;;4567:47:56;;;904:2905:1;4567:47:56;;:::i;:::-;9138:199;;;;;;;904:2905:1;9138:199:56;;9353:80;;;904:2905:1;4629:45:56;;;4625:201;;904:2905:1;;;;;;;;;3250:79;;;904:2905;3250:79;;904:2905;;;3250:79;904:2905;3250:79;;904:2905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4567:47:56;904:2905:1;;;;;;;-1:-1:-1;;904:2905:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;3250:79;;;;;;;;;;904:2905;3250:79;;;904:2905;;;;;;;;;3346:66;;;;;904:2905;3346:66;;904:2905;3346:66;;904:2905;;;;;;;;;3346:66;;;;;;904:2905;3346:66;;;904:2905;;;;;;;;;3346:66;;904:2905;3346:66;;904:2905;3346:66;;;;;;904:2905;3346:66;;;:::i;:::-;;;904:2905;;;;;;;3346:66;;;;;-1:-1:-1;3346:66:1;;3250:79;;;904:2905;3250:79;;904:2905;3250:79;;;;;;904:2905;3250:79;;;:::i;:::-;;;904:2905;;;;;;3250:79;;;;;-1:-1:-1;3250:79:1;;904:2905;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4625:201:56;4802:12;904:2905:1;4717:43:56;904:2905:1;;;;4717:43:56;;;;904:2905:1;4717:43:56;;904:2905:1;;;;;;;4717:43:56;;;904:2905:1;4717:43:56;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;9353:80;9365:67;;-1:-1:-1;9365:15:56;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;904:2905:1;9416:16:56;9365:67;;904:2905:1;;;;;;;;;;2633:39:56;;;;904:2905:1;2633:39:56;;904:2905:1;2633:39:56;;;;;;904:2905:1;2633:39:56;;;:::i;:::-;;;904:2905:1;;;;;2633:39:56;;;;;;;-1:-1:-1;2633:39:56;;2067:104:72;904:2905:1;;;2114:57:72;;;904:2905:1;;2114:57:72;;904:2905:1;;;;;;;;;;;;;;;;2114:57:72;2071:34;2094:11;;;2071:34;;904:2905:1;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:2905:1;;;;;-1:-1:-1;904:2905:1;;;;;;;;;;;;;;:::o;3539:881:72:-;;;;3646:11;;3642:65;;904:2905:1;;;3721:19:72;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:56;904:2905:1;;;;1797:53:56;904:2905:1;1797:53:56;;;;904:2905:1;1797:53:56;;;904:2905:1;4376:4:72;904:2905:1;;;;;;;;;;1797:53:56;;;;;;:::i;:::-;;:::i;:::-;3539:881:72;:::o;3957:90::-;4001:46;904:2905:1;;4001:46:72;;;904:2905:1;4001:46:72;;;904:2905:1;;;;;;;;;;;4001:46:72;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;904:2905:1;;3787:44:72;;;904:2905:1;3787:44:72;;;904:2905:1;;;;;;;;;;;3787:44:72;3642:65;3666:41;904:2905:1;;3666:41:72;;;904:2905:1;3666:41:72;;;904:2905:1;;;;;;;;;;;3666:41:72;4964:220:38;904:2905:1;;5147:30:38;4964:220;904:2905:1;;;1782:71:38;904:2905:1;;;1782:71:38;904:2905:1;;;;;;5147:30:38;4964:220::o;2841:201:72:-;;904:2905:1;;2936:19:72;;2932:41;;904:2905:1;;;2990:45:72;;904:2905:1;;;;;2990:45:72;;;904:2905:1;3029:4:72;904:2905:1;;;;2990:45:72;;904:2905:1;;;;;;2990:45:72;;;;;;;904:2905:1;2990:45:72;;;2983:52;2841:201;:::o;2990:45::-;;;;;;;;;;;;;904:2905:1;2990:45:72;;;:::i;:::-;;;904:2905:1;;;;;2841:201:72;:::o;2990:45::-;;;-1:-1:-1;2990:45:72;;2932:41;2964:9;;;2957:16;:::o;7084:141:39:-;904:2905:1;8837:64:39;904:2905:1;;;;7150:18:39;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:39;;-1:-1:-1;7191:17:39;7738:720:56;;-1:-1:-1;7875:421:56;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:56;;8310:15;;904:2905:1;;;;8328:26:56;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;904:2905:1;8401:40:56;;-1:-1:-1;8401:40:56;904:2905:1;8401:40:56;904:2905:1;;-1:-1:-1;8401:40:56;8310:68;8377:1;8362:16;;8310:68;;4421:582:57;;4593:8;;-1:-1:-1;904:2905:1;;5674:21:57;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:2905:1;;4841:22:57;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:2905:1;4917:24:57;;4862:1;4917:24;904:2905:1;4917:24:57;904:2905:1;;4862:1:57;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"41018":[{"start":1531,"length":32},{"start":1868,"length":32}],"65":[{"start":190,"length":32},{"start":3286,"length":32}],"69":[{"start":1695,"length":32},{"start":3356,"length":32}],"73":[{"start":2958,"length":32},{"start":3230,"length":32}]}},"methodIdentifiers":{"MMC()":"44dea5a7","RIGHTS_AGREEMENT()":"4f622ffe","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","flashPolicyAgreement(uint256,address,address,address[],bytes)":"445b562a","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"rightsAgreement\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_AGREEMENT\",\"outputs\":[{\"internalType\":\"contract IRightsAccessAgreement\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"flashPolicyAgreement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"flashPolicyAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The amount of MMC tokens to be involved in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_AGREEMENT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"flashPolicyAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new policy agreement in a single transaction.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/agreements/AgreementPortal.sol\":\"AgreementPortal\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/agreements/AgreementPortal.sol\":{\"keccak256\":\"0x6ff14fc9872dd4f57ab9df29c0c1d157d70f2a233c9e087209179fe28068362d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c5d6aa0563dc75ec341b4d477572a651f57154fb2bd8c8e158199d6752f8a49b\",\"dweb:/ipfs/QmVkDoN913vn8iFy8sMW12n1o79AqhMXwkmydQWiCsjqyD\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x27c3c648062924bd44cd6f38541c78e6de145dd49515ee62321e42fc1b72e5c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1cce2ebc0392b5a96f5c7bbaaf5c3d23c0e7190e64cfa05a49978badc1496141\",\"dweb:/ipfs/QmYQC1U12igR1osVyjRHaHiiTgYYuPjncAxwmjbZ452dCL\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol\":{\"keccak256\":\"0xe0be9f69e85ab24e431f0628f22c1dd5f3a135aa144c912e79d0df06f955fd84\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e71e58b682dfdaf815aaf048bfdd55bd6a9c8e848970141f39c9f26592558a7\",\"dweb:/ipfs/QmUSWXADxF2apdYsaiS3SvNcSpb52WkY4FwVZeHQnQCXLw\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0x2d25427bd4c59976467fbfef442df6afdb204968c5360a2863bdfc692060b3e7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a56bdf37887bb8ceb5c43d0778d7816e08bfcb7f0b06ab7e2cc8bc7fbabacba\",\"dweb:/ipfs/QmWebigGGudvv95NRsHvYiKWPdFPJsdXVi4bFhAfAnSCaq\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"rightsAgreement","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_AGREEMENT","outputs":[{"internalType":"contract IRightsAccessAgreement","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"flashPolicyAgreement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"flashPolicyAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The amount of MMC tokens to be involved in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"flashPolicyAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new policy agreement in a single transaction."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/agreements/AgreementPortal.sol":"AgreementPortal"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/agreements/AgreementPortal.sol":{"keccak256":"0x6ff14fc9872dd4f57ab9df29c0c1d157d70f2a233c9e087209179fe28068362d","urls":["bzz-raw://c5d6aa0563dc75ec341b4d477572a651f57154fb2bd8c8e158199d6752f8a49b","dweb:/ipfs/QmVkDoN913vn8iFy8sMW12n1o79AqhMXwkmydQWiCsjqyD"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x27c3c648062924bd44cd6f38541c78e6de145dd49515ee62321e42fc1b72e5c2","urls":["bzz-raw://1cce2ebc0392b5a96f5c7bbaaf5c3d23c0e7190e64cfa05a49978badc1496141","dweb:/ipfs/QmYQC1U12igR1osVyjRHaHiiTgYYuPjncAxwmjbZ452dCL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol":{"keccak256":"0xe0be9f69e85ab24e431f0628f22c1dd5f3a135aa144c912e79d0df06f955fd84","urls":["bzz-raw://7e71e58b682dfdaf815aaf048bfdd55bd6a9c8e848970141f39c9f26592558a7","dweb:/ipfs/QmUSWXADxF2apdYsaiS3SvNcSpb52WkY4FwVZeHQnQCXLw"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0x2d25427bd4c59976467fbfef442df6afdb204968c5360a2863bdfc692060b3e7","urls":["bzz-raw://5a56bdf37887bb8ceb5c43d0778d7816e08bfcb7f0b06ab7e2cc8bc7fbabacba","dweb:/ipfs/QmWebigGGudvv95NRsHvYiKWPdFPJsdXVi4bFhAfAnSCaq"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/agreements/AgreementPortal.sol","id":201,"exportedSymbols":{"AccessControlledUpgradeable":[48814],"AgreementPortal":[200],"ERC165Checker":[43756],"EnumerableSet":[47896],"FinancialOps":[48586],"IERC20":[42373],"IRightsAccessAgreement":[48253],"IRightsPolicyManager":[48308],"Initializable":[40998],"UUPSUpgradeable":[41180]},"nodeType":"SourceUnit","src":"32:3778:1","nodes":[{"id":34,"nodeType":"PragmaDirective","src":"32:23:1","nodes":[],"literals":["solidity","0.8",".26"]},{"id":36,"nodeType":"ImportDirective","src":"57:98:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":40999,"symbolAliases":[{"foreign":{"id":35,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40998,"src":"66:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38,"nodeType":"ImportDirective","src":"156:102:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":41181,"symbolAliases":[{"foreign":{"id":37,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41180,"src":"165:15:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":40,"nodeType":"ImportDirective","src":"259:88:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":47897,"symbolAliases":[{"foreign":{"id":39,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47896,"src":"268:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":42,"nodeType":"ImportDirective","src":"348:94:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":43757,"symbolAliases":[{"foreign":{"id":41,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43756,"src":"357:13:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":44,"nodeType":"ImportDirective","src":"443:71:1","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":41908,"symbolAliases":[{"foreign":{"id":43,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"452:6:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":46,"nodeType":"ImportDirective","src":"516:72:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48587,"symbolAliases":[{"foreign":{"id":45,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48586,"src":"525:12:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":48,"nodeType":"ImportDirective","src":"589:115:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48815,"symbolAliases":[{"foreign":{"id":47,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48814,"src":"598:27:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":50,"nodeType":"ImportDirective","src":"705:96:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48309,"symbolAliases":[{"foreign":{"id":49,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48308,"src":"714:20:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52,"nodeType":"ImportDirective","src":"802:100:1","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsAccessAgreement.sol","file":"@synaps3/core/interfaces/rights/IRightsAccessAgreement.sol","nameLocation":"-1:-1:-1","scope":201,"sourceUnit":48254,"symbolAliases":[{"foreign":{"id":51,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48253,"src":"811:22:1","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":200,"nodeType":"ContractDefinition","src":"904:2905:1","nodes":[{"id":61,"nodeType":"UsingForDirective","src":"998:31:1","nodes":[],"global":false,"libraryName":{"id":59,"name":"FinancialOps","nameLocations":["1004:12:1"],"nodeType":"IdentifierPath","referencedDeclaration":48586,"src":"1004:12:1"},"typeName":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"1021:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":65,"nodeType":"VariableDeclaration","src":"1100:59:1","nodes":[],"constant":false,"documentation":{"id":62,"nodeType":"StructuredDocumentation","src":"1034:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1138:21:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"},"typeName":{"id":64,"nodeType":"UserDefinedTypeName","pathNode":{"id":63,"name":"IRightsPolicyManager","nameLocations":["1100:20:1"],"nodeType":"IdentifierPath","referencedDeclaration":48308,"src":"1100:20:1"},"referencedDeclaration":48308,"src":"1100:20:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":69,"nodeType":"VariableDeclaration","src":"1231:56:1","nodes":[],"constant":false,"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"1165:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"4f622ffe","mutability":"immutable","name":"RIGHTS_AGREEMENT","nameLocation":"1271:16:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"},"typeName":{"id":68,"nodeType":"UserDefinedTypeName","pathNode":{"id":67,"name":"IRightsAccessAgreement","nameLocations":["1231:22:1"],"nodeType":"IdentifierPath","referencedDeclaration":48253,"src":"1231:22:1"},"referencedDeclaration":48253,"src":"1231:22:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"visibility":"public"},{"id":73,"nodeType":"VariableDeclaration","src":"1359:27:1","nodes":[],"constant":false,"documentation":{"id":70,"nodeType":"StructuredDocumentation","src":"1293:61:1","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1383:3:1","scope":200,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"},"typeName":{"id":72,"nodeType":"UserDefinedTypeName","pathNode":{"id":71,"name":"IERC20","nameLocations":["1359:6:1"],"nodeType":"IdentifierPath","referencedDeclaration":42373,"src":"1359:6:1"},"referencedDeclaration":42373,"src":"1359:6:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"visibility":"public"},{"id":105,"nodeType":"FunctionDefinition","src":"1446:478:1","nodes":[],"body":{"id":104,"nodeType":"Block","src":"1525:399:1","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":83,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40966,"src":"1725:20:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":84,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:22:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":85,"nodeType":"ExpressionStatement","src":"1725:22:1"},{"expression":{"id":90,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":86,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"1757:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":88,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76,"src":"1802:19:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":87,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48308,"src":"1781:20:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$48308_$","typeString":"type(contract IRightsPolicyManager)"}},"id":89,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1781:41:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"src":"1757:65:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"id":91,"nodeType":"ExpressionStatement","src":"1757:65:1"},{"expression":{"id":96,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":92,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"1832:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":94,"name":"rightsAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78,"src":"1874:15:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":93,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48253,"src":"1851:22:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsAccessAgreement_$48253_$","typeString":"type(contract IRightsAccessAgreement)"}},"id":95,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1851:39:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"src":"1832:58:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"id":97,"nodeType":"ExpressionStatement","src":"1832:58:1"},{"expression":{"id":102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":98,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"1900:3:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":100,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80,"src":"1913:3:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":99,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":42373,"src":"1906:6:1","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$42373_$","typeString":"type(contract IERC20)"}},"id":101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1906:11:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"src":"1900:17:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}},"id":103,"nodeType":"ExpressionStatement","src":"1900:17:1"}]},"documentation":{"id":74,"nodeType":"StructuredDocumentation","src":"1393:48:1","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":81,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"1466:19:1","nodeType":"VariableDeclaration","scope":105,"src":"1458:27:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75,"name":"address","nodeType":"ElementaryTypeName","src":"1458:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78,"mutability":"mutable","name":"rightsAgreement","nameLocation":"1495:15:1","nodeType":"VariableDeclaration","scope":105,"src":"1487:23:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77,"name":"address","nodeType":"ElementaryTypeName","src":"1487:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80,"mutability":"mutable","name":"mmc","nameLocation":"1520:3:1","nodeType":"VariableDeclaration","scope":105,"src":"1512:11:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79,"name":"address","nodeType":"ElementaryTypeName","src":"1512:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1457:67:1"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"1525:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":121,"nodeType":"FunctionDefinition","src":"1975:151:1","nodes":[],"body":{"id":120,"nodeType":"Block","src":"2037:89:1","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":113,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":41052,"src":"2047:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2047:24:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":115,"nodeType":"ExpressionStatement","src":"2047:24:1"},{"expression":{"arguments":[{"id":117,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":108,"src":"2105:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":116,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48749,"src":"2081:23:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2081:38:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":119,"nodeType":"ExpressionStatement","src":"2081:38:1"}]},"documentation":{"id":106,"nodeType":"StructuredDocumentation","src":"1930:40:1","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":111,"kind":"modifierInvocation","modifierName":{"id":110,"name":"initializer","nameLocations":["2025:11:1"],"nodeType":"IdentifierPath","referencedDeclaration":40852,"src":"2025:11:1"},"nodeType":"ModifierInvocation","src":"2025:11:1"}],"name":"initialize","nameLocation":"1984:10:1","parameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"accessManager","nameLocation":"2003:13:1","nodeType":"VariableDeclaration","scope":121,"src":"1995:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":107,"name":"address","nodeType":"ElementaryTypeName","src":"1995:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1994:23:1"},"returnParameters":{"id":112,"nodeType":"ParameterList","parameters":[],"src":"2037:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":189,"nodeType":"FunctionDefinition","src":"2603:816:1","nodes":[],"body":{"id":188,"nodeType":"Block","src":"2811:608:1","nodes":[],"statements":[{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"currency","nameLocation":"2829:8:1","nodeType":"VariableDeclaration","scope":188,"src":"2821:16:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"2821:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":144,"initialValue":{"arguments":[{"id":142,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73,"src":"2848:3:1","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$42373","typeString":"contract IERC20"}],"id":141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2840:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":140,"name":"address","nodeType":"ElementaryTypeName","src":"2840:7:1","typeDescriptions":{}}},"id":143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2840:12:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2821:31:1"},{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"broker","nameLocation":"2870:6:1","nodeType":"VariableDeclaration","scope":188,"src":"2862:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":145,"name":"address","nodeType":"ElementaryTypeName","src":"2862:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2887:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}],"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2879:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":147,"name":"address","nodeType":"ElementaryTypeName","src":"2879:7:1","typeDescriptions":{}}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2879:30:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2862:47:1"},{"assignments":[153],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"confirmed","nameLocation":"3019:9:1","nodeType":"VariableDeclaration","scope":188,"src":"3011:17:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":152,"name":"uint256","nodeType":"ElementaryTypeName","src":"3011:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":160,"initialValue":{"arguments":[{"id":157,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"3054:6:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":158,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3062:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":154,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3031:3:1","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3035:6:1","memberName":"sender","nodeType":"MemberAccess","src":"3031:10:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3042:11:1","memberName":"safeDeposit","nodeType":"MemberAccess","referencedDeclaration":48506,"src":"3031:22:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3031:40:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3011:60:1"},{"expression":{"arguments":[{"id":166,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"3126:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":167,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3137:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":163,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"3090:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}],"id":162,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3082:7:1","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":161,"name":"address","nodeType":"ElementaryTypeName","src":"3082:7:1","typeDescriptions":{}}},"id":164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:25:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3108:17:1","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":48409,"src":"3082:43:1","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256,address)"}},"id":168,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3082:64:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":169,"nodeType":"ExpressionStatement","src":"3082:64:1"},{"assignments":[171],"declarations":[{"constant":false,"id":171,"mutability":"mutable","name":"proof","nameLocation":"3242:5:1","nodeType":"VariableDeclaration","scope":188,"src":"3234:13:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":170,"name":"uint256","nodeType":"ElementaryTypeName","src":"3234:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":180,"initialValue":{"arguments":[{"id":174,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"3283:9:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":175,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3294:8:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":176,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"3304:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":177,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":131,"src":"3312:7:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":178,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3321:7:1","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":172,"name":"RIGHTS_AGREEMENT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":69,"src":"3250:16:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsAccessAgreement_$48253","typeString":"contract IRightsAccessAgreement"}},"id":173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3267:15:1","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":48216,"src":"3250:32:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":179,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3250:79:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3234:95:1"},{"expression":{"arguments":[{"id":183,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3383:5:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":184,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"3390:6:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"3398:13:1","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":181,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3346:21:1","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$48308","typeString":"contract IRightsPolicyManager"}},"id":182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3368:14:1","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":48295,"src":"3346:36:1","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address,address) external returns (uint256)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3346:66:1","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":137,"id":187,"nodeType":"Return","src":"3339:73:1"}]},"documentation":{"id":122,"nodeType":"StructuredDocumentation","src":"2132:466:1","text":"@notice Creates and registers a new policy agreement in a single transaction.\n @param amount The amount of MMC tokens to be involved in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation."},"functionSelector":"445b562a","implemented":true,"kind":"function","modifiers":[],"name":"flashPolicyAgreement","nameLocation":"2612:20:1","parameters":{"id":134,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"amount","nameLocation":"2650:6:1","nodeType":"VariableDeclaration","scope":189,"src":"2642:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2642:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126,"mutability":"mutable","name":"holder","nameLocation":"2674:6:1","nodeType":"VariableDeclaration","scope":189,"src":"2666:14:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":125,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"policyAddress","nameLocation":"2698:13:1","nodeType":"VariableDeclaration","scope":189,"src":"2690:21:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"2690:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":131,"mutability":"mutable","name":"parties","nameLocation":"2740:7:1","nodeType":"VariableDeclaration","scope":189,"src":"2721:26:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":129,"name":"address","nodeType":"ElementaryTypeName","src":"2721:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":130,"nodeType":"ArrayTypeName","src":"2721:9:1","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":133,"mutability":"mutable","name":"payload","nameLocation":"2772:7:1","nodeType":"VariableDeclaration","scope":189,"src":"2757:22:1","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":132,"name":"bytes","nodeType":"ElementaryTypeName","src":"2757:5:1","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2632:153:1"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":189,"src":"2802:7:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":135,"name":"uint256","nodeType":"ElementaryTypeName","src":"2802:7:1","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2801:9:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":199,"nodeType":"FunctionDefinition","src":"3723:84:1","nodes":[],"body":{"id":198,"nodeType":"Block","src":"3805:2:1","nodes":[],"statements":[]},"baseFunctions":[41134],"documentation":{"id":190,"nodeType":"StructuredDocumentation","src":"3425:293:1","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":196,"kind":"modifierInvocation","modifierName":{"id":195,"name":"onlyAdmin","nameLocations":["3795:9:1"],"nodeType":"IdentifierPath","referencedDeclaration":48732,"src":"3795:9:1"},"nodeType":"ModifierInvocation","src":"3795:9:1"}],"name":"_authorizeUpgrade","nameLocation":"3732:17:1","overrides":{"id":194,"nodeType":"OverrideSpecifier","overrides":[],"src":"3786:8:1"},"parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":192,"mutability":"mutable","name":"newImplementation","nameLocation":"3758:17:1","nodeType":"VariableDeclaration","scope":199,"src":"3750:25:1","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":191,"name":"address","nodeType":"ElementaryTypeName","src":"3750:7:1","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3749:27:1"},"returnParameters":{"id":197,"nodeType":"ParameterList","parameters":[],"src":"3805:0:1"},"scope":200,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":53,"name":"Initializable","nameLocations":["932:13:1"],"nodeType":"IdentifierPath","referencedDeclaration":40998,"src":"932:13:1"},"id":54,"nodeType":"InheritanceSpecifier","src":"932:13:1"},{"baseName":{"id":55,"name":"UUPSUpgradeable","nameLocations":["947:15:1"],"nodeType":"IdentifierPath","referencedDeclaration":41180,"src":"947:15:1"},"id":56,"nodeType":"InheritanceSpecifier","src":"947:15:1"},{"baseName":{"id":57,"name":"AccessControlledUpgradeable","nameLocations":["964:27:1"],"nodeType":"IdentifierPath","referencedDeclaration":48814,"src":"964:27:1"},"id":58,"nodeType":"InheritanceSpecifier","src":"964:27:1"}],"canonicalName":"AgreementPortal","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[200,48814,40744,41348,41226,41180,41917,40998],"name":"AgreementPortal","nameLocation":"913:15:1","scope":201,"usedErrors":[40761,40764,41025,41030,41319,41325,41329,41975,41988,42387,42794,43056,48328,48714],"usedEvents":[40769,41315,41890]}],"license":"MIT"},"id":1} \ No newline at end of file diff --git a/src/config/abi/LedgerVault.json b/src/config/abi/LedgerVault.json new file mode 100644 index 000000000..33c6606f8 --- /dev/null +++ b/src/config/abi/LedgerVault.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"lock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsClaimed","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReleased","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsTransferred","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NoFundsToLock","inputs":[]},{"type":"error","name":"NoFundsToRelease","inputs":[]},{"type":"error","name":"NoFundsToTransfer","inputs":[]},{"type":"error","name":"NoFundsToWithdraw","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161203f90816100ed8239608051818181610bcf0152610cee0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146112115780634bbc170a146110c05780634f1ef28614610c4757806352d1902d14610b8a57806369328dec14610a075780637a9e5e4b146109125780638fb36037146108615780639e96a26014610776578063ad3cb1cc146106c4578063bf7e214f14610654578063c4d66de814610380578063d949b844146102b6578063dbba0f011461019d578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112fb565b3061194d565b604051908152f35b5f80fd5b3461010857602061016073ffffffffffffffffffffffffffffffffffffffff7fdf4dcf17030d087ed1d90ed3c90719c7260706c1c4a88505dd2d0a982887cf436101553661131e565b809492959133611c9c565b9361016c8486836117c4565b6040805186815273ffffffffffffffffffffffffffffffffffffffff959095166020860152911692a2604051908152f35b34610108576101ab3661131e565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061028e578261020c6020948433611833565b6102178184846117c4565b7fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be773ffffffffffffffffffffffffffffffffffffffff604051931692806102833394878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a3604051908152f35b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102ed6112fb565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761036a73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103b76112fb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161064c575b6001149081610642575b159081610639575b5061061157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105bc575b5061047a611c45565b610482611c45565b61048a611c45565b610492611c45565b61049a611c45565b6104a2611c45565b6104aa611c45565b6104b3816118a2565b6104bb611c45565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561052957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610471565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610408565b303b159150610400565b8491506103f6565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906107018183611390565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b34610108576107843661131e565b61078e3633611438565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610839576107e38183602095611764565b6107ee8183336117c4565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561090a5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108e0565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576109496112fb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109db57803b1561099957610997906118a2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461010857610a153661131e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b625760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f205410610b3a5782610ac06020948433611833565b610acb818484611a64565b7fe9171aeff46c37ab955b8aff908e14ae9732bd06634fa131226cfe5c25bfd2fb8473ffffffffffffffffffffffffffffffffffffffff806040519487865216941692a35f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c1f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c796112fb565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610ca6826113fe565b91610cb46040519384611390565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561107e575b50610c1f576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611073575f91611043575b5015610fbf5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f8b575b50610e2557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f605750823b15610f3557807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610f03575f8091610997945190845af4610efd6119fe565b91611ee9565b50505034610f0d57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610fb7575b81610fa760209383611390565b8101031261010857519086610df4565b3d9150610f9a565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b611065915060403d60401161106c575b61105d8183611390565b810190611a3a565b5084610d9f565b503d611053565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610d19565b34610108576110ce3661131e565b6110d83633611438565b61111f8373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111e95773ffffffffffffffffffffffffffffffffffffffff836111698385602097611833565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061119e8482546117b7565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761121f3661131e565b6112293633611438565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112d35761128a828486611285838360209a611764565b6117c4565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113d157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113d157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff00000000000000000000000000000000000000000000000000000000833516606482015260648152611507608482611390565b5190895afa6115146119fe565b906116cc575b5015611528575b5050505050565b63ffffffff16156116a0577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561107357611690575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611521565b5f61169a91611390565b5f61161f565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116f45750506020806116ec938301019101611a3a565b905b5f61151a565b9190926020811015611708575b50506116ee565b81925090602091810103126101085760206117239101611a2d565b5f80611701565b9190820391821161173757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b9055565b9190820180921161173757565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f209182546117b7565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119f85773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611073575f916119c9575090565b90506020813d6020116119f0575b816119e460209383611390565b81010312610108575190565b3d91506119d7565b90503190565b3d15611a28573d90611a0f826113fe565b91611a1d6040519384611390565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a5183611a2d565b92015163ffffffff811681036101085790565b90918215611be75782611a77823061194d565b10611b895773ffffffffffffffffffffffffffffffffffffffff168015611afc57611afa9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611af5606483611390565b611f82565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b236119fe565b5015611b2b57565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c7457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611e035773ffffffffffffffffffffffffffffffffffffffff8216918215611d9857611ccd9082611e61565b8311611d3a57611d379173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611af5608483611390565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611da55790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ee35773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611073575f916119c9575090565b50503490565b90611f265750805115611efe57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f79575b611f37575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f2f565b905f602091828151910182855af115611073575f513d612000575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fbe5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611fb756fea2646970667358221220bba30d0deb0a0c146aeabd8453744ea5f617f51b1b601e6e80e776efe9d67cf964736f6c634300081a0033","sourceMap":"1210:9129:54:-:0;;;;;;;1171:4:93;1163:13;;8837:64:92;1210:9129:54;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;1210:9129:54;;7985:34:92;7981:146;;-1:-1:-1;1210:9129:54;;;;;;;;1163:13:93;1210:9129:54;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;1210:9129:54;-1:-1:-1;;;;;1210:9129:54;;;8837:64:92;1210:9129:54;;;8087:29:92;;1210:9129:54;;8087:29:92;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;1210:9129:54;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146112115780634bbc170a146110c05780634f1ef28614610c4757806352d1902d14610b8a57806369328dec14610a075780637a9e5e4b146109125780638fb36037146108615780639e96a26014610776578063ad3cb1cc146106c4578063bf7e214f14610654578063c4d66de814610380578063d949b844146102b6578063dbba0f011461019d578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112fb565b3061194d565b604051908152f35b5f80fd5b3461010857602061016073ffffffffffffffffffffffffffffffffffffffff7fdf4dcf17030d087ed1d90ed3c90719c7260706c1c4a88505dd2d0a982887cf436101553661131e565b809492959133611c9c565b9361016c8486836117c4565b6040805186815273ffffffffffffffffffffffffffffffffffffffff959095166020860152911692a2604051908152f35b34610108576101ab3661131e565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061028e578261020c6020948433611833565b6102178184846117c4565b7fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be773ffffffffffffffffffffffffffffffffffffffff604051931692806102833394878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a3604051908152f35b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102ed6112fb565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761036a73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103b76112fb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161064c575b6001149081610642575b159081610639575b5061061157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105bc575b5061047a611c45565b610482611c45565b61048a611c45565b610492611c45565b61049a611c45565b6104a2611c45565b6104aa611c45565b6104b3816118a2565b6104bb611c45565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561052957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610471565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610408565b303b159150610400565b8491506103f6565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906107018183611390565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b34610108576107843661131e565b61078e3633611438565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610839576107e38183602095611764565b6107ee8183336117c4565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561090a5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108e0565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576109496112fb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109db57803b1561099957610997906118a2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461010857610a153661131e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b625760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f205410610b3a5782610ac06020948433611833565b610acb818484611a64565b7fe9171aeff46c37ab955b8aff908e14ae9732bd06634fa131226cfe5c25bfd2fb8473ffffffffffffffffffffffffffffffffffffffff806040519487865216941692a35f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c1f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c796112fb565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610ca6826113fe565b91610cb46040519384611390565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561107e575b50610c1f576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611073575f91611043575b5015610fbf5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f8b575b50610e2557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f605750823b15610f3557807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610f03575f8091610997945190845af4610efd6119fe565b91611ee9565b50505034610f0d57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610fb7575b81610fa760209383611390565b8101031261010857519086610df4565b3d9150610f9a565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b611065915060403d60401161106c575b61105d8183611390565b810190611a3a565b5084610d9f565b503d611053565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610d19565b34610108576110ce3661131e565b6110d83633611438565b61111f8373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111e95773ffffffffffffffffffffffffffffffffffffffff836111698385602097611833565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061119e8482546117b7565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761121f3661131e565b6112293633611438565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112d35761128a828486611285838360209a611764565b6117c4565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113d157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113d157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff00000000000000000000000000000000000000000000000000000000833516606482015260648152611507608482611390565b5190895afa6115146119fe565b906116cc575b5015611528575b5050505050565b63ffffffff16156116a0577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561107357611690575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611521565b5f61169a91611390565b5f61161f565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116f45750506020806116ec938301019101611a3a565b905b5f61151a565b9190926020811015611708575b50506116ee565b81925090602091810103126101085760206117239101611a2d565b5f80611701565b9190820391821161173757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b9055565b9190820180921161173757565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f209182546117b7565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119f85773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611073575f916119c9575090565b90506020813d6020116119f0575b816119e460209383611390565b81010312610108575190565b3d91506119d7565b90503190565b3d15611a28573d90611a0f826113fe565b91611a1d6040519384611390565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a5183611a2d565b92015163ffffffff811681036101085790565b90918215611be75782611a77823061194d565b10611b895773ffffffffffffffffffffffffffffffffffffffff168015611afc57611afa9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611af5606483611390565b611f82565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b236119fe565b5015611b2b57565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c7457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611e035773ffffffffffffffffffffffffffffffffffffffff8216918215611d9857611ccd9082611e61565b8311611d3a57611d379173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611af5608483611390565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611da55790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ee35773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611073575f916119c9575090565b50503490565b90611f265750805115611efe57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f79575b611f37575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f2f565b905f602091828151910182855af115611073575f513d612000575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fbe5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611fb756fea2646970667358221220bba30d0deb0a0c146aeabd8453744ea5f617f51b1b601e6e80e776efe9d67cf964736f6c634300081a0033","sourceMap":"1210:9129:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:33:45;1210:9129:54;;:::i;:::-;1904:4:45;1896:33;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;2371:40:45;1210:9129:54;4291:46;1210:9129;;;:::i;:::-;2371:10:45;;;;;;:40;:::i;:::-;2459:8;;;;;;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;;;;4291:46;1210:9129;;;;;;;;;;;;;:::i;:::-;3927:10:45;;1210:9129:54;;4178:54:47;1210:9129:54;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;3910:47:45;3906:79;;3927:10;4031:8;1210:9129:54;3927:10:45;;;4031:8;:::i;:::-;4085;;;;;:::i;:::-;5768:60:54;1210:9129;;;;;3927:10:45;;5768:60:54;3927:10:45;5768:60:54;;;1210:9129;;;;;;;;;;;;;;;;;5768:60;;;;1210:9129;;;;;;3906:79:45;3966:19;1210:9129:54;3966:19:45;1210:9129:54;;3966:19:45;1210:9129:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:47;1210:9129:54;1469:18:47;1210:9129:54;;;;4178:54:47;1210:9129:54;;;;;;;1469:18:47;:28;1210:9129:54;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:92;1210:9129:54;;;;;;4301:16:92;1210:9129:54;;;;4726:16:92;;:34;;;;1210:9129:54;4805:1:92;4790:16;:50;;;;1210:9129:54;4855:13:92;:30;;;;1210:9129:54;4851:91:92;;;1210:9129:54;;4805:1:92;1210:9129:54;;;;;8837:64:92;1210:9129:54;4979:67:92;;1210:9129:54;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;1210:9129:54;;3295:62:44;1210:9129:54;;;3295:62:44;1210:9129:54;5066:101:92;;1210:9129:54;5066:101:92;1210:9129:54;8837:64:92;1210:9129:54;;8837:64:92;1210:9129:54;5142:14:92;1210:9129:54;;;4805:1:92;1210:9129:54;;5142:14:92;1210:9129:54;4979:67:92;1210:9129:54;;;;8837:64:92;1210:9129:54;4979:67:92;;;4851:91;4908:23;1210:9129:54;4908:23:92;1210:9129:54;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;1210:9129:54;;;;;;;;;;;;;1782:71:90;1210:9129:54;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;7975:44;7971:73;;8088:8;;;1210:9129;8088:8;;:::i;:::-;8146;966:10:96;;;8146:8:54;:::i;:::-;1210:9129;;;;;;;;966:10:96;8170:42:54;966:10:96;;8170:42:54;;1210:9129;;;;;;7971:73;8028:16;1210:9129;8028:16;1210:9129;;8028:16;1210:9129;;;;;;;;;;;1782:71:90;1210:9129:54;;;;;4698:71:90;;;1210:9129:54;;4698:71:90;1210:9129:54;;;;;;;;4698:71:90;1210:9129:54;;4698:71:90;;1210:9129:54;;;;;;;;;;;;;:::i;:::-;;1782:71:90;1210:9129:54;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1210:9129:54;4355:110:90;1210:9129:54;4411:43:90;;1210:9129:54;4411:43:90;1210:9129:54;;;;;4411:43:90;4254:92;4302:33;1210:9129:54;4302:33:90;966:10:96;1210:9129:54;;;;4302:33:90;1210:9129:54;;;;;;;:::i;:::-;3321:69:161;757:66:99;3321:69:161;1706:93:99;;1917:4;757:66;3550:68:161;3060:10:45;1210:9129:54;;4178:54:47;1210:9129:54;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;3043:47:45;3039:79;;3060:10;3164:8;1210:9129:54;3060:10:45;;;3164:8;:::i;:::-;3210;;;;;:::i;:::-;5035:46:54;1210:9129;;;;;;;;;;;;5035:46;;1210:9129;757:66:99;3550:68:161;1210:9129:54;;;;;;3039:79:45;3099:19;1210:9129:54;3099:19:45;1210:9129:54;;3099:19:45;1706:93:99;1758:30;1210:9129:54;1758:30:99;1210:9129:54;;1758:30:99;1210:9129:54;;;;;;;;;;;;5115:6:93;1210:9129:54;5106:4:93;5098:23;5094:145;;1210:9129:54;;;811:66:130;1210:9129:54;;;5094:145:93;5199:29;1210:9129:54;5199:29:93;1210:9129:54;;5199:29:93;1210:9129:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;1210:9129:54;4683:4:93;;4675:23;:120;;;;;1210:9129:54;4658:251:93;;;3058:30:44;1210:9129:54;;3295:62:44;1210:9129:54;;;;3058:30:44;;;;1210:9129:54;3058:30:44;;1210:9129:54;;3058:30:44;;1210:9129:54;1893:10:44;1210:9129:54;;;;3058:30:44;;;;;;;1210:9129:54;3058:30:44;;;1210:9129:54;1869:35:44;;1865:140;;1210:9129:54;;;;;;;6156:52:93;;1210:9129:54;6156:52:93;1210:9129:54;6156:52:93;;;;1210:9129:54;;6156:52:93;;;1210:9129:54;-1:-1:-1;6152:437:93;;6518:60;;1210:9129:54;6518:60:93;1210:9129:54;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;1210:9129:54;;811:66:130;1210:9129:54;;;811:66:130;1210:9129:54;2407:36:130;1210:9129:54;2407:36:130;;1210:9129:54;;2458:15:130;:11;;1210:9129:54;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;1210:9129:54;6159:70:130;6199:19;1210:9129:54;6199:19:130;1210:9129:54;;6199:19:130;1744:119;1805:47;1210:9129:54;1805:47:130;1210:9129:54;;;;1805:47:130;6246:120:93;6317:34;1210:9129:54;6317:34:93;1210:9129:54;;;;6317:34:93;6156:52;;;;1210:9129:54;6156:52:93;;1210:9129:54;6156:52:93;;;;;;1210:9129:54;6156:52:93;;;:::i;:::-;;;1210:9129:54;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;1210:9129:54;;1927:67:44;;;1210:9129:54;;1927:67:44;;520:1:42;1210:9129:54;;520:1:42;;1210:9129:54;520:1:42;3058:30:44;1210:9129:54;;520:1:42;;;;;;1927:67:44;3058:30;;;;1210:9129:54;3058:30:44;1210:9129:54;3058:30:44;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1210:9129:54;;;;;;;;;4675:120:93;1210:9129:54;;;811:66:130;1210:9129:54;;4753:42:93;;4675:120;;;1210:9129:54;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1469:18:47;;1210:9129:54;;;;4178:54:47;1210:9129:54;;;;;;;1469:18:47;1210:9129:54;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;6450:44;6446:72;;1210:9129;6561:8;;;;1210:9129;6561:8;;:::i;:::-;1210:9129;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;-1:-1:-1;1210:9129:54;9313:36;1210:9129;;;9313:36;:::i;:::-;1210:9129;;6638:38;1210:9129;;;;;;;;;6638:38;;1210:9129;;;;;;6446:72;6503:15;1210:9129;6503:15;1210:9129;;6503:15;1210:9129;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;7143:44;7139:75;;7310:8;7258;;;;;;1210:9129;7258:8;;:::i;:::-;7310;:::i;:::-;7334:40;1210:9129;;;;;;;;;7334:40;;1210:9129;;;;;;7139:75;7196:18;1210:9129;7196:18;1210:9129;;7196:18;1210:9129;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;;;;;;;;;;;;;:::o;5359:667:90:-;;1782:71;1210:9129:54;;;;;;;5679:1:90;1210:9129:54;;;;;;;;;856:62:105;1210:9129:54;856:62:105;;;;;;;1210:9129:54;856:62:105;;;;;1210:9129:54;5646:4:90;1210:9129:54;;;;;;;;;;;;;856:62:105;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:90;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1210:9129:54;;5736:9:90;1210:9129:54;;;;;;1782:71:90;1210:9129:54;5810:60:90;;;;;856:62:105;1210:9129:54;;;;;;;;;5810:60:90;;;;;;;1210:9129:54;5810:60:90;;5679:1;5810:60;;1210:9129:54;;856:62:105;1210:9129:54;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:90;;;;;;;;;;;5732:278;1210:9129:54;;1782:71:90;1210:9129:54;;1782:71:90;1210:9129:54;5702:318:90;;;;;;;5810:60;1210:9129:54;5810:60:90;;;:::i;:::-;1210:9129:54;5810:60:90;;5732:278;5962:33;;1210:9129:54;5962:33:90;5679:1;1210:9129:54;856:62:105;1210:9129:54;5962:33:90;938:248:105;1210:9129:54;;;;;;969:19:105;;1210:9129:54;;1029:32:105;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1210:9129:54;;;;856:62:105;1210:9129:54;1137:24:105;;1210:9129:54;:::i;:::-;1082:94:105;;;;1210:9129:54;;;;;;;;;;:::o;:::-;;;;;;;;;;8664:138;1210:9129;8664:138;;;;1210:9129;8759:7;1210:9129;8759:7;1210:9129;;;;8759:7;1210:9129;8759:26;1210:9129;-1:-1:-1;1210:9129:54;;;8759:36;1210:9129;-1:-1:-1;1210:9129:54;;;;8759:36;:::i;:::-;1210:9129;;8664:138::o;1210:9129::-;;;;;;;;;;:::o;3116:195:47:-;1210:9129:54;3116:195:47;;;;1210:9129:54;-1:-1:-1;1210:9129:54;4178:54:47;1210:9129:54;;;;-1:-1:-1;1210:9129:54;3266:28:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;3266:38:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;;3266:38:47;:::i;3743:195::-;1210:9129:54;3743:195:47;;;;1210:9129:54;-1:-1:-1;1210:9129:54;4178:54:47;1210:9129:54;;;;-1:-1:-1;1210:9129:54;3893:28:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;3893:38:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;;3893:38:47;:::i;4964:220:90:-;1210:9129:54;;5147:30:90;4964:220;1210:9129:54;;;1782:71:90;1210:9129:54;;;1782:71:90;1210:9129:54;;;;;;5147:30:90;4964:220::o;4674:193:39:-;;1210:9129:54;;4770:19:39;;;4766:46;;1210:9129:54;4829:31:39;1210:9129:54;;;;4829:31:39;;;;;1210:9129:54;4829:31:39;;1210:9129:54;4829:31:39;;;1210:9129:54;4829:31:39;;;;;;;1210:9129:54;4829:31:39;;;4822:38;4674:193;:::o;4829:31::-;;;1210:9129:54;4829:31:39;;1210:9129:54;4829:31:39;;;;;;1210:9129:54;4829:31:39;;;:::i;:::-;;;1210:9129:54;;;;;4674:193:39;:::o;4829:31::-;;;-1:-1:-1;4829:31:39;;4766:46;4798:14;;;4791:21;:::o;1210:9129:54:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1210:9129:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;5233:383:39:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1210:9129:54;;5511:19:39;;5507:59;;1380:43:144;1210:9129:54;;;;1380:43:144;1210:9129:54;1380:43:144;;;;1210:9129:54;1380:43:144;;;1210:9129:54;;;;;;1380:43:144;;;;;;:::i;:::-;;:::i;:::-;5233:383:39:o;5507:59::-;1210:9129:54;5327:1:39;1210:9129:54;;;;;;;904:37:39;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1210:9129:54;;972:37:39;;;1210:9129:54;972:37:39;;;1210:9129:54;;;;;;;;;;;972:37:39;5401:96;5454:43;1210:9129:54;;5454:43:39;;;1210:9129:54;5454:43:39;;;1210:9129:54;;;;;;;;;;;5454:43:39;5313:78;5337:54;1210:9129:54;;5337:54:39;;;1210:9129:54;5337:54:39;;;1210:9129:54;;;;;;;;;;;5337:54:39;7084:141:92;1210:9129:54;8837:64:92;1210:9129:54;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;3539:881:39;;;;3646:11;;3642:65;;1210:9129:54;;;3721:19:39;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:144;1210:9129:54;;;;1797:53:144;1210:9129:54;1797:53:144;;;;1210:9129:54;1797:53:144;;;1210:9129:54;4376:4:39;1210:9129:54;;;;;;;;;;1797:53:144;;;;;;:::i;:::-;3539:881:39;:::o;3957:90::-;4001:46;1210:9129:54;;4001:46:39;;;1210:9129:54;4001:46:39;;;1210:9129:54;;;;;;;;;;;4001:46:39;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1210:9129:54;;3787:44:39;;;1210:9129:54;3787:44:39;;;1210:9129:54;;;;;;;;;;;3787:44:39;3642:65;3666:41;1210:9129:54;;3666:41:39;;;1210:9129:54;3666:41:39;;;1210:9129:54;;;;;;;;;;;3666:41:39;2841:201;;1210:9129:54;;2936:19:39;;;2932:41;;1210:9129:54;2990:45:39;1210:9129:54;;;;2990:45:39;;;;;1210:9129:54;2990:45:39;;1210:9129:54;2990:45:39;;;1210:9129:54;3029:4:39;1210:9129:54;;;;2990:45:39;;;;;;;1210:9129:54;2990:45:39;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;4421:582:151:-;;4593:8;;-1:-1:-1;1210:9129:54;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1210:9129:54;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1210:9129:54;4917:24:151;;4862:1;4917:24;1210:9129:54;4917:24:151;1210:9129:54;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;;7738:720:144;;-1:-1:-1;7875:421:144;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:144;;8310:15;;1210:9129:54;;;;8328:26:144;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1210:9129:54;8401:40:144;;-1:-1:-1;8401:40:144;1210:9129:54;8401:40:144;1210:9129:54;;-1:-1:-1;8401:40:144;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"50429":[{"start":3023,"length":32},{"start":3310,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","claim(address,uint256,address)":"9e96a260","deposit(address,uint256,address)":"f45346dc","getBalance(address)":"f8b2cb4f","getLedgerBalance(address,address)":"d949b844","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","lock(address,uint256,address)":"4bbc170a","proxiableUUID()":"52d1902d","release(address,uint256,address)":"15f41501","setAuthority(address)":"7a9e5e4b","transfer(address,uint256,address)":"dbba0f01","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsDeposited(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account receiving the funds.\",\"sender\":\"The address of the account initiating the transfer.\"}},\"FundsWithdrawn(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"details\":\"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\",\"params\":{\"amount\":\"The amount of currency to transfer.\",\"currency\":\"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"details\":\"This function withdraws funds from the caller's balance and transfers them to the recipient.\",\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsDeposited(address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the pool for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers a specified amount of currency from the caller's balance to a given recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x2baafe714d20951c6fb389dd827dc3f793298c1cc61e49896658aec0515dfa7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://015ca20d63c0041a774628c689760a7369e32c0d48294e924ba581024b9aebe3\",\"dweb:/ipfs/QmVef34ChNkL18NaJsphtF6AGwH8coBiwTFA4BWtpGXw45\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0xb7629d4c7a93a9a03bef8c62de9985096b333a4424838f2ea3d3172dd48cc512\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce84ab8b6ad690c5043b464bece76f7d8382ad366d678ae23221ae8fd47e5fc1\",\"dweb:/ipfs/QmPirxfFYwYqj64uKLBebotEdbVfhvaHUwRTKx2yuP1Qc7\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0x9cb29e589708e49cf0728ad61506427b3b316e5f609e2bbf2ade666c402dd942\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a69d796cc3528572477eb8f7d6bb92429392744e1aa1781f01310110fde1d7ca\",\"dweb:/ipfs/QmZBusX6yoVM87JBqHk6h3Fx2nqznTxnEBeKmaz3JmDwzp\"]},\"contracts/core/interfaces/base/IBalanceVerifiable.sol\":{\"keccak256\":\"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40\",\"dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0x0eb16584b8c2e73a6baba08ff477da808da9477a9b61d9278b5103942ecc8b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720a7878ed3550272a4469f9197f8944142dc7ae93d6865aae022fe63f9b9b6e\",\"dweb:/ipfs/Qme1DbQEL6WbiKR5z6jkhAiurgYMvN6uHkx2EWekYAhd4k\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403\",\"dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0xef1620a235fa0b4e79ddddae5ad4e37b573eb2c41d362a5ec96052ba4578f466\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ce1fa81679a8d2f0024bcb59b2434bc1f6d3fcb26e3e2f805dd4f9c2765f324\",\"dweb:/ipfs/QmdvjBzJFHFPmr1LL2SdJJph97RD4swMopKiB68ELFW1aG\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NoFundsToLock"},{"inputs":[],"type":"error","name":"NoFundsToRelease"},{"inputs":[],"type":"error","name":"NoFundsToTransfer"},{"inputs":[],"type":"error","name":"NoFundsToWithdraw"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsClaimed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"claim(address,uint256,address)":{"details":"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.","params":{"account":"The address of the account whose funds are being claimed.","amount":"The amount of funds to claim.","currency":"The currency to associate claim with. Use address(0) for the native coin."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"deposit(address,uint256,address)":{"params":{"amount":"The amount of currency to deposit.","currency":"The address of the ERC20 token to deposit.","recipient":"The address of the account to credit with the deposit."}},"getBalance(address)":{"details":"The function checks the balance for both native and ERC-20 tokens.","params":{"currency":"The address of the currency to check the balance of."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"lock(address,uint256,address)":{"details":"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.","params":{"account":"The address of the account for which the funds will be locked.","amount":"The amount of funds to lock.","currency":"The currency to associate lock with. Use address(0) for the native coin."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"release(address,uint256,address)":{"params":{"account":"The address of the account for which the funds will be released.","amount":"The amount of funds to release.","currency":"The currency to associate release with. Use address(0) for the native coin."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"transfer(address,uint256,address)":{"details":"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.","params":{"amount":"The amount of currency to transfer.","currency":"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.","recipient":"The address of the account to credit with the transfer."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(address,uint256,address)":{"details":"This function withdraws funds from the caller's balance and transfers them to the recipient.","params":{"amount":"The amount of tokens to withdraw.","currency":"The currency to associate fees with. Use address(0) for the native coin.","recipient":"The address that will receive the withdrawn tokens."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address,uint256,address)":{"notice":"Claims a specific amount of locked funds on behalf of a claimer."},"deposit(address,uint256,address)":{"notice":"Deposits a specified amount of currency into the pool for a given recipient."},"getBalance(address)":{"notice":"Returns the general's balance for the specified currency."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"lock(address,uint256,address)":{"notice":"Locks a specific amount of funds for a given account."},"release(address,uint256,address)":{"notice":"Release a specific amount of funds from locked pool."},"transfer(address,uint256,address)":{"notice":"Transfers a specified amount of currency from the caller's balance to a given recipient."},"withdraw(address,uint256,address)":{"notice":"Withdraws tokens from the contract to a specified recipient's address."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/financial/LedgerVault.sol":"LedgerVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x2baafe714d20951c6fb389dd827dc3f793298c1cc61e49896658aec0515dfa7a","urls":["bzz-raw://015ca20d63c0041a774628c689760a7369e32c0d48294e924ba581024b9aebe3","dweb:/ipfs/QmVef34ChNkL18NaJsphtF6AGwH8coBiwTFA4BWtpGXw45"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0xb7629d4c7a93a9a03bef8c62de9985096b333a4424838f2ea3d3172dd48cc512","urls":["bzz-raw://ce84ab8b6ad690c5043b464bece76f7d8382ad366d678ae23221ae8fd47e5fc1","dweb:/ipfs/QmPirxfFYwYqj64uKLBebotEdbVfhvaHUwRTKx2yuP1Qc7"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0x9cb29e589708e49cf0728ad61506427b3b316e5f609e2bbf2ade666c402dd942","urls":["bzz-raw://a69d796cc3528572477eb8f7d6bb92429392744e1aa1781f01310110fde1d7ca","dweb:/ipfs/QmZBusX6yoVM87JBqHk6h3Fx2nqznTxnEBeKmaz3JmDwzp"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceVerifiable.sol":{"keccak256":"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80","urls":["bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40","dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0x0eb16584b8c2e73a6baba08ff477da808da9477a9b61d9278b5103942ecc8b0d","urls":["bzz-raw://720a7878ed3550272a4469f9197f8944142dc7ae93d6865aae022fe63f9b9b6e","dweb:/ipfs/Qme1DbQEL6WbiKR5z6jkhAiurgYMvN6uHkx2EWekYAhd4k"],"license":"MIT"},"contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol":{"keccak256":"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f","urls":["bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403","dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1"],"license":"MIT"},"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"},"contracts/financial/LedgerVault.sol":{"keccak256":"0xef1620a235fa0b4e79ddddae5ad4e37b573eb2c41d362a5ec96052ba4578f466","urls":["bzz-raw://8ce1fa81679a8d2f0024bcb59b2434bc1f6d3fcb26e3e2f805dd4f9c2765f324","dweb:/ipfs/QmdvjBzJFHFPmr1LL2SdJJph97RD4swMopKiB68ELFW1aG"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":4718,"contract":"contracts/financial/LedgerVault.sol:LedgerVault","label":"_locked","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/financial/LedgerVault.sol","id":5078,"exportedSymbols":{"AccessControlledUpgradeable":[2672],"BalanceOperatorUpgradeable":[2836],"FinancialOps":[2036],"Initializable":[50409],"LedgerVault":[5077],"LoopOps":[2056],"ReentrancyGuardTransientUpgradeable":[52500],"UUPSUpgradeable":[50591]},"nodeType":"SourceUnit","src":"124:10216:54","nodes":[{"id":4683,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":4685,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":50410,"symbolAliases":[{"foreign":{"id":4684,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4687,"nodeType":"ImportDirective","src":"248:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":50592,"symbolAliases":[{"foreign":{"id":4686,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50591,"src":"257:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4689,"nodeType":"ImportDirective","src":"396:136:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":52501,"symbolAliases":[{"foreign":{"id":4688,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52500,"src":"405:35:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4691,"nodeType":"ImportDirective","src":"533:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2673,"symbolAliases":[{"foreign":{"id":4690,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"542:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4693,"nodeType":"ImportDirective","src":"649:113:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2837,"symbolAliases":[{"foreign":{"id":4692,"name":"BalanceOperatorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"658:26:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4695,"nodeType":"ImportDirective","src":"764:72:54","nodes":[],"absolutePath":"contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2037,"symbolAliases":[{"foreign":{"id":4694,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"773:12:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4697,"nodeType":"ImportDirective","src":"837:62:54","nodes":[],"absolutePath":"contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2057,"symbolAliases":[{"foreign":{"id":4696,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"846:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5077,"nodeType":"ContractDefinition","src":"1210:9129:54","nodes":[{"id":4711,"nodeType":"UsingForDirective","src":"1385:31:54","nodes":[],"global":false,"libraryName":{"id":4709,"name":"FinancialOps","nameLocations":["1391:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"1391:12:54"},"typeName":{"id":4710,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4718,"nodeType":"VariableDeclaration","src":"1484:55:54","nodes":[],"constant":false,"documentation":{"id":4712,"nodeType":"StructuredDocumentation","src":"1422:57:54","text":"@dev Holds the registry of locked funds for accounts."},"mutability":"mutable","name":"_locked","nameLocation":"1532:7:54","scope":5077,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4717,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4713,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1484:47:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4716,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4714,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1503:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4715,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":4727,"nodeType":"EventDefinition","src":"1826:85:54","nodes":[],"anonymous":false,"documentation":{"id":4719,"nodeType":"StructuredDocumentation","src":"1546:275:54","text":"@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62","name":"FundsLocked","nameLocation":"1832:11:54","parameters":{"id":4726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4721,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1860:7:54","nodeType":"VariableDeclaration","scope":4727,"src":"1844:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4720,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4723,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1877:6:54","nodeType":"VariableDeclaration","scope":4727,"src":"1869:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4722,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4725,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1901:8:54","nodeType":"VariableDeclaration","scope":4727,"src":"1885:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4724,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1843:67:54"}},{"id":4736,"nodeType":"EventDefinition","src":"2207:87:54","nodes":[],"anonymous":false,"documentation":{"id":4728,"nodeType":"StructuredDocumentation","src":"1917:285:54","text":"@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc","name":"FundsReleased","nameLocation":"2213:13:54","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4730,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2243:7:54","nodeType":"VariableDeclaration","scope":4736,"src":"2227:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4729,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4732,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2260:6:54","nodeType":"VariableDeclaration","scope":4736,"src":"2252:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4731,"name":"uint256","nodeType":"ElementaryTypeName","src":"2252:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4734,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2284:8:54","nodeType":"VariableDeclaration","scope":4736,"src":"2268:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4733,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:67:54"}},{"id":4745,"nodeType":"EventDefinition","src":"2573:86:54","nodes":[],"anonymous":false,"documentation":{"id":4737,"nodeType":"StructuredDocumentation","src":"2300:268:54","text":"@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed."},"eventSelector":"07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563","name":"FundsClaimed","nameLocation":"2579:12:54","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4739,"indexed":true,"mutability":"mutable","name":"claimer","nameLocation":"2608:7:54","nodeType":"VariableDeclaration","scope":4745,"src":"2592:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4738,"name":"address","nodeType":"ElementaryTypeName","src":"2592:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4741,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2625:6:54","nodeType":"VariableDeclaration","scope":4745,"src":"2617:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4743,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2649:8:54","nodeType":"VariableDeclaration","scope":4745,"src":"2633:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4742,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2591:67:54"}},{"id":4748,"nodeType":"ErrorDefinition","src":"2820:22:54","nodes":[],"documentation":{"id":4746,"nodeType":"StructuredDocumentation","src":"2665:150:54","text":"@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available."},"errorSelector":"a9e575de","name":"NoFundsToLock","nameLocation":"2826:13:54","parameters":{"id":4747,"nodeType":"ParameterList","parameters":[],"src":"2839:2:54"}},{"id":4751,"nodeType":"ErrorDefinition","src":"3036:23:54","nodes":[],"documentation":{"id":4749,"nodeType":"StructuredDocumentation","src":"2848:183:54","text":"@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient."},"errorSelector":"dff46e2b","name":"NoFundsToClaim","nameLocation":"3042:14:54","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[],"src":"3056:2:54"}},{"id":4754,"nodeType":"ErrorDefinition","src":"3248:25:54","nodes":[],"documentation":{"id":4752,"nodeType":"StructuredDocumentation","src":"3065:178:54","text":"@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient."},"errorSelector":"b7cc22bc","name":"NoFundsToRelease","nameLocation":"3254:16:54","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[],"src":"3270:2:54"}},{"id":4762,"nodeType":"FunctionDefinition","src":"3332:243:54","nodes":[],"body":{"id":4761,"nodeType":"Block","src":"3346:229:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4758,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50377,"src":"3546:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4760,"nodeType":"ExpressionStatement","src":"3546:22:54"}]},"documentation":{"id":4755,"nodeType":"StructuredDocumentation","src":"3279:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"3343:2:54"},"returnParameters":{"id":4757,"nodeType":"ParameterList","parameters":[],"src":"3346:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4783,"nodeType":"FunctionDefinition","src":"3581:228:54","nodes":[],"body":{"id":4782,"nodeType":"Block","src":"3643:166:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4769,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50463,"src":"3653:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3653:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4771,"nodeType":"ExpressionStatement","src":"3653:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4772,"name":"__BalanceOperator_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"3687:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3687:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4774,"nodeType":"ExpressionStatement","src":"3687:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4775,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52449,"src":"3721:31:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4777,"nodeType":"ExpressionStatement","src":"3721:33:54"},{"expression":{"arguments":[{"id":4779,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4764,"src":"3788:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4778,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"3764:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4781,"nodeType":"ExpressionStatement","src":"3764:38:54"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":4767,"kind":"modifierInvocation","modifierName":{"id":4766,"name":"initializer","nameLocations":["3631:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":50263,"src":"3631:11:54"},"nodeType":"ModifierInvocation","src":"3631:11:54"}],"name":"initialize","nameLocation":"3590:10:54","parameters":{"id":4765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4764,"mutability":"mutable","name":"accessManager","nameLocation":"3609:13:54","nodeType":"VariableDeclaration","scope":4783,"src":"3601:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4763,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:23:54"},"returnParameters":{"id":4768,"nodeType":"ParameterList","parameters":[],"src":"3643:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4812,"nodeType":"FunctionDefinition","src":"4112:258:54","nodes":[],"body":{"id":4811,"nodeType":"Block","src":"4209:161:54","nodes":[],"statements":[{"assignments":[4796],"declarations":[{"constant":false,"id":4796,"mutability":"mutable","name":"confirmed","nameLocation":"4227:9:54","nodeType":"VariableDeclaration","scope":4811,"src":"4219:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4795,"name":"uint256","nodeType":"ElementaryTypeName","src":"4219:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4802,"initialValue":{"arguments":[{"id":4798,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4786,"src":"4248:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"4259:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4800,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"4267:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4797,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"4239:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4239:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4219:57:54"},{"eventCall":{"arguments":[{"id":4804,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4786,"src":"4306:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4805,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"4317:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4806,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"4328:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4803,"name":"FundsDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"4291:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4291:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4808,"nodeType":"EmitStatement","src":"4286:51:54"},{"expression":{"id":4809,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"4354:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4794,"id":4810,"nodeType":"Return","src":"4347:16:54"}]},"baseFunctions":[944],"documentation":{"id":4784,"nodeType":"StructuredDocumentation","src":"3815:292:54","text":"@notice Deposits a specified amount of currency into the pool for a given recipient.\n @param recipient The address of the account to credit with the deposit.\n @param amount The amount of currency to deposit.\n @param currency The address of the ERC20 token to deposit."},"functionSelector":"f45346dc","implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"4121:7:54","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4786,"mutability":"mutable","name":"recipient","nameLocation":"4137:9:54","nodeType":"VariableDeclaration","scope":4812,"src":"4129:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4785,"name":"address","nodeType":"ElementaryTypeName","src":"4129:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4788,"mutability":"mutable","name":"amount","nameLocation":"4156:6:54","nodeType":"VariableDeclaration","scope":4812,"src":"4148:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4790,"mutability":"mutable","name":"currency","nameLocation":"4172:8:54","nodeType":"VariableDeclaration","scope":4812,"src":"4164:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4789,"name":"address","nodeType":"ElementaryTypeName","src":"4164:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4128:53:54"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4812,"src":"4200:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4199:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4843,"nodeType":"FunctionDefinition","src":"4841:273:54","nodes":[],"body":{"id":4842,"nodeType":"Block","src":"4952:162:54","nodes":[],"statements":[{"assignments":[4827],"declarations":[{"constant":false,"id":4827,"mutability":"mutable","name":"confirmed","nameLocation":"4970:9:54","nodeType":"VariableDeclaration","scope":4842,"src":"4962:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4833,"initialValue":{"arguments":[{"id":4829,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"4992:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4830,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5003:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4831,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"5011:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4828,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2796,"src":"4982:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4962:58:54"},{"eventCall":{"arguments":[{"id":4835,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"5050:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4836,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"5061:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4837,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"5072:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4834,"name":"FundsWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1016,"src":"5035:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5035:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4839,"nodeType":"EmitStatement","src":"5030:51:54"},{"expression":{"id":4840,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"5098:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4825,"id":4841,"nodeType":"Return","src":"5091:16:54"}]},"baseFunctions":[1030],"documentation":{"id":4813,"nodeType":"StructuredDocumentation","src":"4418:418:54","text":"@notice Withdraws tokens from the contract to a specified recipient's address.\n @dev This function withdraws funds from the caller's balance and transfers them to the recipient.\n @param recipient The address that will receive the withdrawn tokens.\n @param amount The amount of tokens to withdraw.\n @param currency The currency to associate fees with. Use address(0) for the native coin."},"functionSelector":"69328dec","implemented":true,"kind":"function","modifiers":[{"id":4822,"kind":"modifierInvocation","modifierName":{"id":4821,"name":"nonReentrant","nameLocations":["4921:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":52443,"src":"4921:12:54"},"nodeType":"ModifierInvocation","src":"4921:12:54"}],"name":"withdraw","nameLocation":"4850:8:54","parameters":{"id":4820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4815,"mutability":"mutable","name":"recipient","nameLocation":"4867:9:54","nodeType":"VariableDeclaration","scope":4843,"src":"4859:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4814,"name":"address","nodeType":"ElementaryTypeName","src":"4859:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4817,"mutability":"mutable","name":"amount","nameLocation":"4886:6:54","nodeType":"VariableDeclaration","scope":4843,"src":"4878:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4819,"mutability":"mutable","name":"currency","nameLocation":"4902:8:54","nodeType":"VariableDeclaration","scope":4843,"src":"4894:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4818,"name":"address","nodeType":"ElementaryTypeName","src":"4894:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4858:53:54"},"returnParameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4843,"src":"4943:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4823,"name":"uint256","nodeType":"ElementaryTypeName","src":"4943:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4942:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4874,"nodeType":"FunctionDefinition","src":"5587:274:54","nodes":[],"body":{"id":4873,"nodeType":"Block","src":"5685:176:54","nodes":[],"statements":[{"assignments":[4856],"declarations":[{"constant":false,"id":4856,"mutability":"mutable","name":"confirmed","nameLocation":"5703:9:54","nodeType":"VariableDeclaration","scope":4873,"src":"5695:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4855,"name":"uint256","nodeType":"ElementaryTypeName","src":"5695:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4862,"initialValue":{"arguments":[{"id":4858,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"5725:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5736:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4860,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"5744:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4857,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2835,"src":"5715:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5715:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5695:58:54"},{"eventCall":{"arguments":[{"expression":{"id":4864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5785:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5789:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5785:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4866,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"5797:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4867,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4856,"src":"5808:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4868,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"5819:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4863,"name":"FundsTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":977,"src":"5768:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5768:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4870,"nodeType":"EmitStatement","src":"5763:65:54"},{"expression":{"id":4871,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4856,"src":"5845:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4854,"id":4872,"nodeType":"Return","src":"5838:16:54"}]},"baseFunctions":[991],"documentation":{"id":4844,"nodeType":"StructuredDocumentation","src":"5120:462:54","text":"@notice Transfers a specified amount of currency from the caller's balance to a given recipient.\n @dev Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\n @param recipient The address of the account to credit with the transfer.\n @param amount The amount of currency to transfer.\n @param currency The address of the ERC20 token to transfer. Use `address(0)` for native tokens."},"functionSelector":"dbba0f01","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"5596:8:54","parameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4846,"mutability":"mutable","name":"recipient","nameLocation":"5613:9:54","nodeType":"VariableDeclaration","scope":4874,"src":"5605:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4845,"name":"address","nodeType":"ElementaryTypeName","src":"5605:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4848,"mutability":"mutable","name":"amount","nameLocation":"5632:6:54","nodeType":"VariableDeclaration","scope":4874,"src":"5624:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4847,"name":"uint256","nodeType":"ElementaryTypeName","src":"5624:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4850,"mutability":"mutable","name":"currency","nameLocation":"5648:8:54","nodeType":"VariableDeclaration","scope":4874,"src":"5640:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4849,"name":"address","nodeType":"ElementaryTypeName","src":"5640:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5604:53:54"},"returnParameters":{"id":4854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4874,"src":"5676:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4852,"name":"uint256","nodeType":"ElementaryTypeName","src":"5676:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5675:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4919,"nodeType":"FunctionDefinition","src":"6333:373:54","nodes":[],"body":{"id":4918,"nodeType":"Block","src":"6436:270:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4889,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6467:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4890,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6476:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4888,"name":"getLedgerBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3063,"src":"6450:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6450:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4892,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6488:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6450:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4897,"nodeType":"IfStatement","src":"6446:72:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4894,"name":"NoFundsToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4748,"src":"6503:13:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6503:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4896,"nodeType":"RevertStatement","src":"6496:22:54"}},{"expression":{"arguments":[{"id":4899,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6544:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4900,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6553:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4901,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6561:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4898,"name":"_subLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3158,"src":"6528:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6528:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4903,"nodeType":"ExpressionStatement","src":"6528:42:54"},{"expression":{"arguments":[{"id":4905,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4906,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6606:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4907,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6614:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4904,"name":"_sumLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5049,"src":"6580:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6580:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4909,"nodeType":"ExpressionStatement","src":"6580:43:54"},{"eventCall":{"arguments":[{"id":4911,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6650:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6659:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4913,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6667:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4910,"name":"FundsLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"6638:11:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6638:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4915,"nodeType":"EmitStatement","src":"6633:43:54"},{"expression":{"id":4916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6693:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4887,"id":4917,"nodeType":"Return","src":"6686:13:54"}]},"documentation":{"id":4875,"nodeType":"StructuredDocumentation","src":"5867:461:54","text":"@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin."},"functionSelector":"4bbc170a","implemented":true,"kind":"function","modifiers":[{"id":4884,"kind":"modifierInvocation","modifierName":{"id":4883,"name":"restricted","nameLocations":["6407:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"6407:10:54"},"nodeType":"ModifierInvocation","src":"6407:10:54"}],"name":"lock","nameLocation":"6342:4:54","parameters":{"id":4882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4877,"mutability":"mutable","name":"account","nameLocation":"6355:7:54","nodeType":"VariableDeclaration","scope":4919,"src":"6347:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4876,"name":"address","nodeType":"ElementaryTypeName","src":"6347:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4879,"mutability":"mutable","name":"amount","nameLocation":"6372:6:54","nodeType":"VariableDeclaration","scope":4919,"src":"6364:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4878,"name":"uint256","nodeType":"ElementaryTypeName","src":"6364:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4881,"mutability":"mutable","name":"currency","nameLocation":"6388:8:54","nodeType":"VariableDeclaration","scope":4919,"src":"6380:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4880,"name":"address","nodeType":"ElementaryTypeName","src":"6380:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6346:51:54"},"returnParameters":{"id":4887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4919,"src":"6427:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4885,"name":"uint256","nodeType":"ElementaryTypeName","src":"6427:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6426:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4964,"nodeType":"FunctionDefinition","src":"7023:381:54","nodes":[],"body":{"id":4963,"nodeType":"Block","src":"7129:275:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4934,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7160:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4935,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7169:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4933,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7143:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7143:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7181:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7143:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4942,"nodeType":"IfStatement","src":"7139:75:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4939,"name":"NoFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4754,"src":"7196:16:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7196:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4941,"nodeType":"RevertStatement","src":"7189:25:54"}},{"expression":{"arguments":[{"id":4944,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7241:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7250:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4946,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7258:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4943,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"7224:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7224:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4948,"nodeType":"ExpressionStatement","src":"7224:43:54"},{"expression":{"arguments":[{"id":4950,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7293:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4951,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7302:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4952,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7310:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4949,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"7277:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7277:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4954,"nodeType":"ExpressionStatement","src":"7277:42:54"},{"eventCall":{"arguments":[{"id":4956,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7348:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4957,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7357:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4958,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7365:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4955,"name":"FundsReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"7334:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7334:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4960,"nodeType":"EmitStatement","src":"7329:45:54"},{"expression":{"id":4961,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7391:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4932,"id":4962,"nodeType":"Return","src":"7384:13:54"}]},"documentation":{"id":4920,"nodeType":"StructuredDocumentation","src":"6712:306:54","text":"@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin."},"functionSelector":"15f41501","implemented":true,"kind":"function","modifiers":[{"id":4929,"kind":"modifierInvocation","modifierName":{"id":4928,"name":"restricted","nameLocations":["7100:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"7100:10:54"},"nodeType":"ModifierInvocation","src":"7100:10:54"}],"name":"release","nameLocation":"7032:7:54","parameters":{"id":4927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4922,"mutability":"mutable","name":"account","nameLocation":"7048:7:54","nodeType":"VariableDeclaration","scope":4964,"src":"7040:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4921,"name":"address","nodeType":"ElementaryTypeName","src":"7040:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4924,"mutability":"mutable","name":"amount","nameLocation":"7065:6:54","nodeType":"VariableDeclaration","scope":4964,"src":"7057:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4923,"name":"uint256","nodeType":"ElementaryTypeName","src":"7057:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4926,"mutability":"mutable","name":"currency","nameLocation":"7081:8:54","nodeType":"VariableDeclaration","scope":4964,"src":"7073:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4925,"name":"address","nodeType":"ElementaryTypeName","src":"7073:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7039:51:54"},"returnParameters":{"id":4932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4964,"src":"7120:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4930,"name":"uint256","nodeType":"ElementaryTypeName","src":"7120:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7119:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5011,"nodeType":"FunctionDefinition","src":"7857:385:54","nodes":[],"body":{"id":5010,"nodeType":"Block","src":"7961:281:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4979,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4967,"src":"7992:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4980,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8001:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4978,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7975:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7975:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4982,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8013:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4987,"nodeType":"IfStatement","src":"7971:73:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4984,"name":"NoFundsToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"8028:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4986,"nodeType":"RevertStatement","src":"8021:23:54"}},{"expression":{"arguments":[{"id":4989,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4967,"src":"8071:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4990,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8080:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4991,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8088:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4988,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"8054:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4993,"nodeType":"ExpressionStatement","src":"8054:43:54"},{"expression":{"arguments":[{"expression":{"id":4995,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8126:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8130:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8126:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4997,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8138:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4998,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8146:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4994,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"8110:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8110:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5000,"nodeType":"ExpressionStatement","src":"8110:45:54"},{"eventCall":{"arguments":[{"expression":{"id":5002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8183:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8187:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8183:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5004,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8195:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5005,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8203:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5001,"name":"FundsClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4745,"src":"8170:12:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8170:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5007,"nodeType":"EmitStatement","src":"8165:47:54"},{"expression":{"id":5008,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8229:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4977,"id":5009,"nodeType":"Return","src":"8222:13:54"}]},"documentation":{"id":4965,"nodeType":"StructuredDocumentation","src":"7410:442:54","text":"@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin."},"functionSelector":"9e96a260","implemented":true,"kind":"function","modifiers":[{"id":4974,"kind":"modifierInvocation","modifierName":{"id":4973,"name":"restricted","nameLocations":["7932:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"7932:10:54"},"nodeType":"ModifierInvocation","src":"7932:10:54"}],"name":"claim","nameLocation":"7866:5:54","parameters":{"id":4972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4967,"mutability":"mutable","name":"account","nameLocation":"7880:7:54","nodeType":"VariableDeclaration","scope":5011,"src":"7872:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4966,"name":"address","nodeType":"ElementaryTypeName","src":"7872:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4969,"mutability":"mutable","name":"amount","nameLocation":"7897:6:54","nodeType":"VariableDeclaration","scope":5011,"src":"7889:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4968,"name":"uint256","nodeType":"ElementaryTypeName","src":"7889:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4971,"mutability":"mutable","name":"currency","nameLocation":"7913:8:54","nodeType":"VariableDeclaration","scope":5011,"src":"7905:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4970,"name":"address","nodeType":"ElementaryTypeName","src":"7905:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7871:51:54"},"returnParameters":{"id":4977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5011,"src":"7952:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4975,"name":"uint256","nodeType":"ElementaryTypeName","src":"7952:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7951:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5030,"nodeType":"FunctionDefinition","src":"8664:138:54","nodes":[],"body":{"id":5029,"nodeType":"Block","src":"8749:53:54","nodes":[],"statements":[{"expression":{"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5021,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"8759:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5024,"indexExpression":{"id":5022,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"8767:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8759:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5025,"indexExpression":{"id":5023,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"8776:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8759:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5026,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5016,"src":"8789:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8759:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5028,"nodeType":"ExpressionStatement","src":"8759:36:54"}]},"documentation":{"id":5012,"nodeType":"StructuredDocumentation","src":"8248:411:54","text":"@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced."},"implemented":true,"kind":"function","modifiers":[],"name":"_subLockedAmount","nameLocation":"8673:16:54","parameters":{"id":5019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5014,"mutability":"mutable","name":"account","nameLocation":"8698:7:54","nodeType":"VariableDeclaration","scope":5030,"src":"8690:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5013,"name":"address","nodeType":"ElementaryTypeName","src":"8690:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5016,"mutability":"mutable","name":"amount","nameLocation":"8715:6:54","nodeType":"VariableDeclaration","scope":5030,"src":"8707:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8707:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5018,"mutability":"mutable","name":"currency","nameLocation":"8731:8:54","nodeType":"VariableDeclaration","scope":5030,"src":"8723:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5017,"name":"address","nodeType":"ElementaryTypeName","src":"8723:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8689:51:54"},"returnParameters":{"id":5020,"nodeType":"ParameterList","parameters":[],"src":"8749:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5049,"nodeType":"FunctionDefinition","src":"9218:138:54","nodes":[],"body":{"id":5048,"nodeType":"Block","src":"9303:53:54","nodes":[],"statements":[{"expression":{"id":5046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5040,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"9313:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5043,"indexExpression":{"id":5041,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"9321:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9313:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5044,"indexExpression":{"id":5042,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5037,"src":"9330:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9313:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5045,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5035,"src":"9343:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9313:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5047,"nodeType":"ExpressionStatement","src":"9313:36:54"}]},"documentation":{"id":5031,"nodeType":"StructuredDocumentation","src":"8808:405:54","text":"@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased."},"implemented":true,"kind":"function","modifiers":[],"name":"_sumLockedAmount","nameLocation":"9227:16:54","parameters":{"id":5038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5033,"mutability":"mutable","name":"account","nameLocation":"9252:7:54","nodeType":"VariableDeclaration","scope":5049,"src":"9244:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5032,"name":"address","nodeType":"ElementaryTypeName","src":"9244:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5035,"mutability":"mutable","name":"amount","nameLocation":"9269:6:54","nodeType":"VariableDeclaration","scope":5049,"src":"9261:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9261:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5037,"mutability":"mutable","name":"currency","nameLocation":"9285:8:54","nodeType":"VariableDeclaration","scope":5049,"src":"9277:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5036,"name":"address","nodeType":"ElementaryTypeName","src":"9277:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9243:51:54"},"returnParameters":{"id":5039,"nodeType":"ParameterList","parameters":[],"src":"9303:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5066,"nodeType":"FunctionDefinition","src":"9807:142:54","nodes":[],"body":{"id":5065,"nodeType":"Block","src":"9899:50:54","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5059,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"9916:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5061,"indexExpression":{"id":5060,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"9924:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9916:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5063,"indexExpression":{"id":5062,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"9933:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9916:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5058,"id":5064,"nodeType":"Return","src":"9909:33:54"}]},"documentation":{"id":5050,"nodeType":"StructuredDocumentation","src":"9362:440:54","text":"@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_getLockedAmount","nameLocation":"9816:16:54","parameters":{"id":5055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5052,"mutability":"mutable","name":"account","nameLocation":"9841:7:54","nodeType":"VariableDeclaration","scope":5066,"src":"9833:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5051,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5054,"mutability":"mutable","name":"currency","nameLocation":"9858:8:54","nodeType":"VariableDeclaration","scope":5066,"src":"9850:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5053,"name":"address","nodeType":"ElementaryTypeName","src":"9850:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9832:35:54"},"returnParameters":{"id":5058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5066,"src":"9890:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5056,"name":"uint256","nodeType":"ElementaryTypeName","src":"9890:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9889:9:54"},"scope":5077,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5076,"nodeType":"FunctionDefinition","src":"10253:84:54","nodes":[],"body":{"id":5075,"nodeType":"Block","src":"10335:2:54","nodes":[],"statements":[]},"baseFunctions":[50545],"documentation":{"id":5067,"nodeType":"StructuredDocumentation","src":"9955:293:54","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":5073,"kind":"modifierInvocation","modifierName":{"id":5072,"name":"onlyAdmin","nameLocations":["10325:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"10325:9:54"},"nodeType":"ModifierInvocation","src":"10325:9:54"}],"name":"_authorizeUpgrade","nameLocation":"10262:17:54","overrides":{"id":5071,"nodeType":"OverrideSpecifier","overrides":[],"src":"10316:8:54"},"parameters":{"id":5070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"mutability":"mutable","name":"newImplementation","nameLocation":"10288:17:54","nodeType":"VariableDeclaration","scope":5076,"src":"10280:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5068,"name":"address","nodeType":"ElementaryTypeName","src":"10280:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10279:27:54"},"returnParameters":{"id":5074,"nodeType":"ParameterList","parameters":[],"src":"10335:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":4699,"name":"Initializable","nameLocations":["1238:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":50409,"src":"1238:13:54"},"id":4700,"nodeType":"InheritanceSpecifier","src":"1238:13:54"},{"baseName":{"id":4701,"name":"UUPSUpgradeable","nameLocations":["1257:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":50591,"src":"1257:15:54"},"id":4702,"nodeType":"InheritanceSpecifier","src":"1257:15:54"},{"baseName":{"id":4703,"name":"AccessControlledUpgradeable","nameLocations":["1278:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2672,"src":"1278:27:54"},"id":4704,"nodeType":"InheritanceSpecifier","src":"1278:27:54"},{"baseName":{"id":4705,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1311:35:54"],"nodeType":"IdentifierPath","referencedDeclaration":52500,"src":"1311:35:54"},"id":4706,"nodeType":"InheritanceSpecifier","src":"1311:35:54"},{"baseName":{"id":4707,"name":"BalanceOperatorUpgradeable","nameLocations":["1352:26:54"],"nodeType":"IdentifierPath","referencedDeclaration":2836,"src":"1352:26:54"},"id":4708,"nodeType":"InheritanceSpecifier","src":"1352:26:54"}],"canonicalName":"LedgerVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":4698,"nodeType":"StructuredDocumentation","src":"901:309:54","text":"@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management."},"fullyImplemented":true,"linearizedBaseContracts":[5077,2836,963,992,945,1031,3168,1045,52500,2672,48036,53533,52201,50591,59161,50409],"name":"LedgerVault","nameLocation":"1219:11:54","scope":5078,"usedErrors":[979,1018,1774,1778,2572,4748,4751,4754,50172,50175,50436,50441,52432,53504,53510,53514,59356,59369,60946,61652,61944],"usedEvents":[932,977,1016,4727,4736,4745,50180,53500,59083]}],"license":"MIT"},"id":54} diff --git a/src/config/abi/PoliciesAgg.json b/src/config/abi/PoliciesAgg.json new file mode 100644 index 000000000..ab4d04273 --- /dev/null +++ b/src/config/abi/PoliciesAgg.json @@ -0,0 +1 @@ +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyAuthorizer","type":"address","internalType":"address"},{"name":"assetOwnership","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_AUTHORIZER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyAuthorizer"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAssetSpecificPolicies","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getAvailablePoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getHolderWidePolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016657601f61169938819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c0526040516115069081610193823960805181818161079f0152610837015260a0518181816104e90152611011015260c05181818160c901526106ed0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea2646970667358221220588e95723d19f7c8d500d53ce2c94ed1cc1293dee0a513cdb7c4c1420ba1f45d64736f6c634300081a0033","sourceMap":"760:3814:3:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;-1:-1:-1;;;;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;760:3814:3;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;760:3814:3;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;760:3814:3;;;;1648:74;760:3814;1732:49;;760:3814;;;;;;;;1163:13:56;760:3814:3;;;;;;;;;;1648:74;760:3814;;;;;;;;;;1732:49;760:3814;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;760:3814:3;-1:-1:-1;;;;;760:3814:3;;;8837:64:55;760:3814:3;;;;;;8087:29:55;;760:3814:3;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;760:3814:3;-1:-1:-1;760:3814:3;;;;;;-1:-1:-1;760:3814:3;;;;;-1:-1:-1;760:3814:3;;;;-1:-1:-1;;;;;760:3814:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea2646970667358221220588e95723d19f7c8d500d53ce2c94ed1cc1293dee0a513cdb7c4c1420ba1f45d64736f6c634300081a0033","sourceMap":"760:3814:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;1240:48;760:3814;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;2503:43;760:3814;;:::i;:::-;;;;;;;;2443:18;;760:3814;;2443:18;;;760:3814;2443:18;;:::i;:::-;2503:43;:::i;:::-;760:3814;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;:::i;:::-;8837:64:55;760:3814:3;;;;;;4301:16:55;760:3814:3;;;;4726:16:55;;:34;;;;760:3814:3;4805:1:55;4790:16;:50;;;;760:3814:3;4855:13:55;:30;;;;760:3814:3;4851:91:55;;;760:3814:3;;4805:1:55;760:3814:3;;;;;8837:64:55;760:3814:3;4979:67:55;;760:3814:3;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;760:3814:3;;3295:62:102;760:3814:3;;;3295:62:102;760:3814:3;5066:101:55;;760:3814:3;5066:101:55;760:3814:3;8837:64:55;760:3814:3;;8837:64:55;760:3814:3;5142:14:55;760:3814:3;;;4805:1:55;760:3814:3;;5142:14:55;760:3814:3;4979:67:55;760:3814:3;;;;8837:64:55;760:3814:3;4979:67:55;;;4851:91;4908:23;760:3814:3;4908:23:55;760:3814:3;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;1782:71:54;760:3814:3;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;1103:65;760:3814;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;1782:71:54;760:3814:3;;;;;4698:71:54;;;760:3814:3;;4698:71:54;760:3814:3;;;;;;;;4698:71:54;760:3814:3;;4698:71:54;;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;:::i;:::-;;1782:71:54;760:3814:3;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3814:3;4355:110:54;760:3814:3;4411:43:54;;760:3814:3;4411:43:54;760:3814:3;;;;;4411:43:54;4254:92;4302:33;760:3814:3;4302:33:54;966:10:57;760:3814:3;;;;4302:33:54;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;2889:19;;760:3814;2889:19;;760:3814;;2889:19;;;760:3814;2889:19;;:::i;:::-;760:3814;;2935:32;760:3814;2935:32;;760:3814;2935:32;;760:3814;;2935:15;:32;:15;760:3814;2935:15;760:3814;2935:32;;;;;;;760:3814;2935:32;;;760:3814;;3009:43;;;;:::i;2935:32::-;;;760:3814;2935:32;;760:3814;2935:32;;;;;;760:3814;2935:32;;;:::i;:::-;;;760:3814;;;;;;;3009:43;760:3814;;:::i;:::-;2935:32;;;;;;;;-1:-1:-1;2935:32:3;;;760:3814;;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;5115:6:56;760:3814:3;5106:4:56;5098:23;5094:145;;760:3814:3;;;811:66:68;760:3814:3;;;5094:145:56;5199:29;760:3814:3;5199:29:56;760:3814:3;;5199:29:56;760:3814:3;;;;:::i;:::-;;4692:6:56;760:3814:3;4683:4:56;;4675:23;:120;;;;;760:3814:3;4658:251:56;;;3058:30:102;760:3814:3;;3295:62:102;760:3814:3;;;;3058:30:102;;;;760:3814:3;3058:30:102;;760:3814:3;;3058:30:102;;760:3814:3;1893:10:102;760:3814:3;;;;3058:30:102;;;;;;;760:3814:3;3058:30:102;;;760:3814:3;1869:35:102;;1865:140;;760:3814:3;;;;;;;6156:52:56;;760:3814:3;6156:52:56;760:3814:3;6156:52:56;;;;760:3814:3;;6156:52:56;;;760:3814:3;-1:-1:-1;6152:437:56;;6518:60;;760:3814:3;6518:60:56;760:3814:3;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;760:3814:3;;811:66:68;760:3814:3;;;811:66:68;760:3814:3;2407:36:68;760:3814:3;2407:36:68;;760:3814:3;;2458:15:68;:11;;760:3814:3;4049:25:75;;760:3814:3;4091:55:75;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:68:-;6163:9;;;6159:70;;760:3814:3;6159:70:68;6199:19;760:3814:3;6199:19:68;760:3814:3;;6199:19:68;1744:119;1805:47;760:3814:3;1805:47:68;760:3814:3;;;;1805:47:68;6246:120:56;6317:34;760:3814:3;6317:34:56;760:3814:3;;;;6317:34:56;6156:52;;;;760:3814:3;6156:52:56;;760:3814:3;6156:52:56;;;;;;760:3814:3;6156:52:56;;;:::i;:::-;;;760:3814:3;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;760:3814:3;;1927:67:102;;;760:3814:3;;1927:67:102;;520:1:100;;760:3814:3;520:1:100;;760:3814:3;520:1:100;3058:30:102;760:3814:3;;520:1:100;;;;;;1927:67:102;3058:30;;;760:3814:3;3058:30:102;;760:3814:3;3058:30:102;;;;;;760:3814:3;3058:30:102;;;:::i;:::-;;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;760:3814:3;;;811:66:68;760:3814:3;;4753:42:56;;4675:120;;;760:3814:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3814:3;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3814:3;;;;:::o;:::-;;;:::o;3292:892::-;;760:3814;;;3469:54;760:3814;3469:54;;760:3814;3469:54;;;760:3814;-1:-1:-1;3469:24:3;:54;:24;760:3814;3469:24;760:3814;3469:54;;;;;;;-1:-1:-1;3469:54:3;;;3292:892;760:3814;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3814:3;;;;;;;;;;3668:9;-1:-1:-1;3679:24:3;;;;;;4165:12;;;;3292:892;:::o;3705:20::-;760:3814;3765:11;;;;:::i;:::-;760:3814;;;-1:-1:-1;760:3814:3;;;;3814:48;;;;;;760:3814;3469:54;3814:48;;760:3814;3814:48;760:3814;;;;;;;:::i;:::-;3814:48;760:3814;3814:48;;;;;;:::i;:::-;3914:34;;;;;;;;:::i;:::-;3966:8;;3962:22;;760:3814;;4039:29;;760:3814;4039:29;;760:3814;;;;;;;;;4039:29;;760:3814;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:54;760:3814;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;884:1:98;760:3814:3;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4093:51;;760:3814;4082:62;;;;:::i;:::-;;;;;;:::i;:::-;;3668:9;760:3814;3668:9;;3962:22;3976:8;884:1:98;3976:8:3;;;;760:3814;;;;;;;;:::i;:::-;-1:-1:-1;760:3814:3;;;;;;;:::i;:::-;-1:-1:-1;760:3814:3;;-1:-1:-1;760:3814:3;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;-1:-1:-1;3469:54:3;;;;;;:::i;:::-;;;760:3814;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;;760:3814;;;;;;;:::i;:::-;;;;;;;;;4964:220:54;760:3814:3;;5147:30:54;4964:220;760:3814:3;;;1782:71:54;760:3814:3;;;1782:71:54;760:3814:3;;;;;;5147:30:54;4964:220::o;7084:141:55:-;760:3814:3;8837:64:55;760:3814:3;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;760:3814:3;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3814:3;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3814:3;4917:24:75;;4862:1;4917:24;760:3814:3;4917:24:75;760:3814:3;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"240":[{"start":1257,"length":32},{"start":4113,"length":32}],"244":[{"start":201,"length":32},{"start":1773,"length":32}],"43508":[{"start":1951,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","RIGHTS_POLICY_AUTHORIZER()":"968e48cf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getAssetSpecificPolicies(uint256)":"76e5cef1","getAvailablePoliciesTerms(address,bytes)":"9f30b60f","getHolderWidePolicies(address)":"d45944ca","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getAssetSpecificPolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getHolderWidePolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAssetSpecificPolicies(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getHolderWidePolicies(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAssetSpecificPolicies(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getHolderWidePolicies(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xde2c2de6ed5ea72e27cf6945d268b69425feeda7e7c6283ccb0d250dfc760b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa7a7bc548008ecfbdaaddb8be4741e299639b52c0312f842bd03bf314aa7f62\",\"dweb:/ipfs/QmYqfd5rxvieg9y7xhF2PGhxwRVdDZGaRT1L6sdmKRAF7y\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyAuthorizer","type":"address"},{"internalType":"address","name":"assetOwnership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_AUTHORIZER","outputs":[{"internalType":"contract IRightsPolicyAuthorizer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAssetSpecificPolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getAvailablePoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getHolderWidePolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAssetSpecificPolicies(uint256)":{"params":{"assetId":"The unique identifier of the asset whose policies are being queried."}},"getAvailablePoliciesTerms(address,bytes)":{"params":{"criteria":"Encoded data for policy evaluation.","holder":"Address of the rights holder."}},"getHolderWidePolicies(address)":{"params":{"holder":"The address of the rights holder whose policies are being queried."}},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getAssetSpecificPolicies(uint256)":{"notice":"Retrieves all policies that govern operations on a specific asset."},"getAvailablePoliciesTerms(address,bytes)":{"notice":"Retrieves all available policies for a holder matching specific criteria."},"getHolderWidePolicies(address)":{"notice":"Retrieves all policies that apply to the entirety of a holder's content."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/PoliciesAgg.sol":"PoliciesAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/PoliciesAgg.sol":{"keccak256":"0xde2c2de6ed5ea72e27cf6945d268b69425feeda7e7c6283ccb0d250dfc760b13","urls":["bzz-raw://fa7a7bc548008ecfbdaaddb8be4741e299639b52c0312f842bd03bf314aa7f62","dweb:/ipfs/QmYqfd5rxvieg9y7xhF2PGhxwRVdDZGaRT1L6sdmKRAF7y"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/PoliciesAgg.sol","id":471,"exportedSymbols":{"AccessControlledUpgradeable":[51328],"IAssetOwnership":[50113],"IPolicy":[50275],"IRightsPolicyAuthorizer":[50358],"Initializable":[43488],"LoopOps":[50712],"PoliciesAgg":[470],"T":[51200],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:4543:3","nodes":[{"id":204,"nodeType":"PragmaDirective","src":"32:23:3","nodes":[],"literals":["solidity","0.8",".26"]},{"id":206,"nodeType":"ImportDirective","src":"57:98:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":205,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"66:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":208,"nodeType":"ImportDirective","src":"156:102:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":207,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"165:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":210,"nodeType":"ImportDirective","src":"260:86:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol","file":"@synaps3/core/interfaces/assets/IAssetOwnership.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50114,"symbolAliases":[{"foreign":{"id":209,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50113,"src":"269:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":212,"nodeType":"ImportDirective","src":"347:115:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":211,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"356:27:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":214,"nodeType":"ImportDirective","src":"463:102:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50359,"symbolAliases":[{"foreign":{"id":213,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50358,"src":"472:23:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":216,"nodeType":"ImportDirective","src":"567:72:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50276,"symbolAliases":[{"foreign":{"id":215,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"576:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":218,"nodeType":"ImportDirective","src":"640:62:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50713,"symbolAliases":[{"foreign":{"id":217,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50712,"src":"649:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220,"nodeType":"ImportDirective","src":"703:55:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":51201,"symbolAliases":[{"foreign":{"id":219,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"712:1:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":470,"nodeType":"ContractDefinition","src":"760:3814:3","nodes":[{"id":229,"nodeType":"UsingForDirective","src":"850:26:3","nodes":[],"global":false,"libraryName":{"id":227,"name":"LoopOps","nameLocations":["856:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":50712,"src":"856:7:3"},"typeName":{"id":228,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":236,"nodeType":"StructDefinition","src":"958:73:3","nodes":[],"canonicalName":"PoliciesAgg.PolicyTerms","documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"882:71:3","text":"@notice structure to hold the relationship between policy and terms"},"members":[{"constant":false,"id":232,"mutability":"mutable","name":"policy","nameLocation":"995:6:3","nodeType":"VariableDeclaration","scope":236,"src":"987:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":231,"name":"address","nodeType":"ElementaryTypeName","src":"987:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"terms","nameLocation":"1019:5:3","nodeType":"VariableDeclaration","scope":236,"src":"1011:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"T.Terms","nameLocations":["1011:1:3","1013:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51189,"src":"1011:7:3"},"referencedDeclaration":51189,"src":"1011:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"name":"PolicyTerms","nameLocation":"965:11:3","scope":470,"visibility":"public"},{"id":240,"nodeType":"VariableDeclaration","src":"1103:65:3","nodes":[],"constant":false,"documentation":{"id":237,"nodeType":"StructuredDocumentation","src":"1037:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"968e48cf","mutability":"immutable","name":"RIGHTS_POLICY_AUTHORIZER","nameLocation":"1144:24:3","scope":470,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"},"typeName":{"id":239,"nodeType":"UserDefinedTypeName","pathNode":{"id":238,"name":"IRightsPolicyAuthorizer","nameLocations":["1103:23:3"],"nodeType":"IdentifierPath","referencedDeclaration":50358,"src":"1103:23:3"},"referencedDeclaration":50358,"src":"1103:23:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"visibility":"public"},{"id":244,"nodeType":"VariableDeclaration","src":"1240:48:3","nodes":[],"constant":false,"documentation":{"id":241,"nodeType":"StructuredDocumentation","src":"1174:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f520d4eb","mutability":"immutable","name":"ASSET_OWNERSHIP","nameLocation":"1273:15:3","scope":470,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"},"typeName":{"id":243,"nodeType":"UserDefinedTypeName","pathNode":{"id":242,"name":"IAssetOwnership","nameLocations":["1240:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":50113,"src":"1240:15:3"},"referencedDeclaration":50113,"src":"1240:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"visibility":"public"},{"id":268,"nodeType":"FunctionDefinition","src":"1348:440:3","nodes":[],"body":{"id":267,"nodeType":"Block","src":"1416:372:3","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"1616:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"ExpressionStatement","src":"1616:22:3"},{"expression":{"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":255,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"1648:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":257,"name":"rightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"1699:22:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":256,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50358,"src":"1675:23:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyAuthorizer_$50358_$","typeString":"type(contract IRightsPolicyAuthorizer)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"src":"1648:74:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"id":260,"nodeType":"ExpressionStatement","src":"1648:74:3"},{"expression":{"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":261,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"1732:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":263,"name":"assetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"1766:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":262,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50113,"src":"1750:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetOwnership_$50113_$","typeString":"type(contract IAssetOwnership)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"src":"1732:49:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"id":266,"nodeType":"ExpressionStatement","src":"1732:49:3"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"1295:48:3","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"rightsPolicyAuthorizer","nameLocation":"1368:22:3","nodeType":"VariableDeclaration","scope":268,"src":"1360:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":246,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":249,"mutability":"mutable","name":"assetOwnership","nameLocation":"1400:14:3","nodeType":"VariableDeclaration","scope":268,"src":"1392:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1359:56:3"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[],"src":"1416:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":284,"nodeType":"FunctionDefinition","src":"1982:151:3","nodes":[],"body":{"id":283,"nodeType":"Block","src":"2044:89:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"2054:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":278,"nodeType":"ExpressionStatement","src":"2054:24:3"},{"expression":{"arguments":[{"id":280,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"2112:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":279,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"2088:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":282,"nodeType":"ExpressionStatement","src":"2088:38:3"}]},"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"1794:183:3","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":274,"kind":"modifierInvocation","modifierName":{"id":273,"name":"initializer","nameLocations":["2032:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"2032:11:3"},"nodeType":"ModifierInvocation","src":"2032:11:3"}],"name":"initialize","nameLocation":"1991:10:3","parameters":{"id":272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"accessManager","nameLocation":"2010:13:3","nodeType":"VariableDeclaration","scope":284,"src":"2002:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":270,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2001:23:3"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[],"src":"2044:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":314,"nodeType":"FunctionDefinition","src":"2317:261:3","nodes":[],"body":{"id":313,"nodeType":"Block","src":"2409:169:3","nodes":[],"statements":[{"assignments":[295],"declarations":[{"constant":false,"id":295,"mutability":"mutable","name":"criteria","nameLocation":"2432:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2419:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2419:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"initialValue":{"arguments":[{"id":298,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2454:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2443:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2447:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2443:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2419:42:3"},{"assignments":[305],"declarations":[{"constant":false,"id":305,"mutability":"mutable","name":"policies","nameLocation":"2492:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2471:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":303,"nodeType":"UserDefinedTypeName","pathNode":{"id":302,"name":"PolicyTerms","nameLocations":["2471:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2471:11:3"},"referencedDeclaration":236,"src":"2471:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":304,"nodeType":"ArrayTypeName","src":"2471:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":310,"initialValue":{"arguments":[{"id":307,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2529:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":308,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2537:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":306,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"2503:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2471:75:3"},{"expression":{"id":311,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"2563:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":293,"id":312,"nodeType":"Return","src":"2556:15:3"}]},"documentation":{"id":285,"nodeType":"StructuredDocumentation","src":"2139:173:3","text":"@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried."},"functionSelector":"d45944ca","implemented":true,"kind":"function","modifiers":[],"name":"getHolderWidePolicies","nameLocation":"2326:21:3","parameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":287,"mutability":"mutable","name":"holder","nameLocation":"2356:6:3","nodeType":"VariableDeclaration","scope":314,"src":"2348:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:16:3"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"2387:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":290,"nodeType":"UserDefinedTypeName","pathNode":{"id":289,"name":"PolicyTerms","nameLocations":["2387:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2387:11:3"},"referencedDeclaration":236,"src":"2387:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":291,"nodeType":"ArrayTypeName","src":"2387:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2386:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":351,"nodeType":"FunctionDefinition","src":"2759:325:3","nodes":[],"body":{"id":350,"nodeType":"Block","src":"2855:229:3","nodes":[],"statements":[{"assignments":[325],"declarations":[{"constant":false,"id":325,"mutability":"mutable","name":"criteria","nameLocation":"2878:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2865:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2865:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":330,"initialValue":{"arguments":[{"id":328,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2900:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2889:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2893:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2889:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2865:43:3"},{"assignments":[332],"declarations":[{"constant":false,"id":332,"mutability":"mutable","name":"holder","nameLocation":"2926:6:3","nodeType":"VariableDeclaration","scope":350,"src":"2918:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"2918:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":337,"initialValue":{"arguments":[{"id":335,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2959:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":333,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2935:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2951:7:3","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":45324,"src":"2935:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2918:49:3"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"policies","nameLocation":"2998:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2977:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":340,"nodeType":"UserDefinedTypeName","pathNode":{"id":339,"name":"PolicyTerms","nameLocations":["2977:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2977:11:3"},"referencedDeclaration":236,"src":"2977:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":341,"nodeType":"ArrayTypeName","src":"2977:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":347,"initialValue":{"arguments":[{"id":344,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"3035:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":345,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"3043:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":343,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"3009:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2977:75:3"},{"expression":{"id":348,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"3069:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":323,"id":349,"nodeType":"Return","src":"3062:15:3"}]},"documentation":{"id":315,"nodeType":"StructuredDocumentation","src":"2584:170:3","text":"@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried."},"functionSelector":"76e5cef1","implemented":true,"kind":"function","modifiers":[],"name":"getAssetSpecificPolicies","nameLocation":"2768:24:3","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":317,"mutability":"mutable","name":"assetId","nameLocation":"2801:7:3","nodeType":"VariableDeclaration","scope":351,"src":"2793:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2792:17:3"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"2833:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":320,"nodeType":"UserDefinedTypeName","pathNode":{"id":319,"name":"PolicyTerms","nameLocations":["2833:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2833:11:3"},"referencedDeclaration":236,"src":"2833:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":321,"nodeType":"ArrayTypeName","src":"2833:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2832:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":459,"nodeType":"FunctionDefinition","src":"3292:892:3","nodes":[],"body":{"id":458,"nodeType":"Block","src":"3431:753:3","nodes":[],"statements":[{"assignments":[367],"declarations":[{"constant":false,"id":367,"mutability":"mutable","name":"policies","nameLocation":"3458:8:3","nodeType":"VariableDeclaration","scope":458,"src":"3441:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":366,"nodeType":"ArrayTypeName","src":"3441:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":372,"initialValue":{"arguments":[{"id":370,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"3516:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":368,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"3469:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3494:21:3","memberName":"getAuthorizedPolicies","nodeType":"MemberAccess","referencedDeclaration":50333,"src":"3469:46:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address) view external returns (address[] memory)"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3469:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3441:82:3"},{"assignments":[377],"declarations":[{"constant":false,"id":377,"mutability":"mutable","name":"terms","nameLocation":"3554:5:3","nodeType":"VariableDeclaration","scope":458,"src":"3533:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":375,"nodeType":"UserDefinedTypeName","pathNode":{"id":374,"name":"PolicyTerms","nameLocations":["3533:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3533:11:3"},"referencedDeclaration":236,"src":"3533:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":376,"nodeType":"ArrayTypeName","src":"3533:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":385,"initialValue":{"arguments":[{"expression":{"id":382,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3580:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3589:6:3","memberName":"length","nodeType":"MemberAccess","src":"3580:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3562:17:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)"},"typeName":{"baseType":{"id":379,"nodeType":"UserDefinedTypeName","pathNode":{"id":378,"name":"PolicyTerms","nameLocations":["3566:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3566:11:3"},"referencedDeclaration":236,"src":"3566:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":380,"nodeType":"ArrayTypeName","src":"3566:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3533:63:3"},{"assignments":[387],"declarations":[{"constant":false,"id":387,"mutability":"mutable","name":"availablePoliciesLen","nameLocation":"3614:20:3","nodeType":"VariableDeclaration","scope":458,"src":"3606:28:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3606:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":390,"initialValue":{"expression":{"id":388,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3637:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3646:6:3","memberName":"length","nodeType":"MemberAccess","src":"3637:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3606:46:3"},{"body":{"id":454,"nodeType":"Block","src":"3727:428:3","statements":[{"assignments":[404],"declarations":[{"constant":false,"id":404,"mutability":"mutable","name":"policyAddress","nameLocation":"3749:13:3","nodeType":"VariableDeclaration","scope":454,"src":"3741:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":403,"name":"address","nodeType":"ElementaryTypeName","src":"3741:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":408,"initialValue":{"baseExpression":{"id":405,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3765:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":407,"indexExpression":{"id":406,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3774:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3765:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3741:35:3"},{"assignments":[410],"declarations":[{"constant":false,"id":410,"mutability":"mutable","name":"callData","nameLocation":"3803:8:3","nodeType":"VariableDeclaration","scope":454,"src":"3790:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":409,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":418,"initialValue":{"arguments":[{"expression":{"id":413,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"3829:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$50275_$","typeString":"type(contract IPolicy)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3837:12:3","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":50258,"src":"3829:20:3","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51189_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"}},{"components":[{"id":415,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"3852:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3851:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51189_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3814:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3818:10:3","memberName":"encodeCall","nodeType":"MemberAccess","src":"3814:14:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3814:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3790:72:3"},{"assignments":[420,422],"declarations":[{"constant":false,"id":420,"mutability":"mutable","name":"success","nameLocation":"3882:7:3","nodeType":"VariableDeclaration","scope":454,"src":"3877:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":419,"name":"bool","nodeType":"ElementaryTypeName","src":"3877:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":422,"mutability":"mutable","name":"result","nameLocation":"3904:6:3","nodeType":"VariableDeclaration","scope":454,"src":"3891:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":421,"name":"bytes","nodeType":"ElementaryTypeName","src":"3891:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":427,"initialValue":{"arguments":[{"id":425,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":410,"src":"3939:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":423,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"3914:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3928:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"3914:24:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3876:72:3"},{"condition":{"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3966:8:3","subExpression":{"id":428,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"3967:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":431,"nodeType":"IfStatement","src":"3962:22:3","trueBody":{"id":430,"nodeType":"Continue","src":"3976:8:3"}},{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"term","nameLocation":"4032:4:3","nodeType":"VariableDeclaration","scope":454,"src":"4017:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":435,"nodeType":"UserDefinedTypeName","pathNode":{"id":434,"name":"T.Terms","nameLocations":["4017:1:3","4019:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51189,"src":"4017:7:3"},"referencedDeclaration":51189,"src":"4017:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":444,"initialValue":{"arguments":[{"id":439,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4050:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":440,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"4059:1:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51200_$","typeString":"type(library T)"}},"id":441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4061:5:3","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51189,"src":"4059:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"id":442,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4058:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}],"expression":{"id":437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4039:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4043:6:3","memberName":"decode","nodeType":"MemberAccess","src":"4039:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4039:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"4017:51:3"},{"expression":{"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":445,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4082:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"id":447,"indexExpression":{"id":446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4088:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4082:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":449,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4115:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":450,"name":"term","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4137:4:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}],"id":448,"name":"PolicyTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"4093:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyTerms_$236_storage_ptr_$","typeString":"type(struct PoliciesAgg.PolicyTerms storage pointer)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4107:6:3","4130:5:3"],"names":["policy","terms"],"nodeType":"FunctionCall","src":"4093:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"src":"4082:62:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"id":453,"nodeType":"ExpressionStatement","src":"4082:62:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3679:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":395,"name":"availablePoliciesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"3683:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3679:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":455,"initializationExpression":{"assignments":[392],"declarations":[{"constant":false,"id":392,"mutability":"mutable","name":"i","nameLocation":"3676:1:3","nodeType":"VariableDeclaration","scope":455,"src":"3668:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":393,"nodeType":"VariableDeclarationStatement","src":"3668:9:3"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":397,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3705:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3709:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3711:12:3","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":50711,"src":"3709:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3709:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3705:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":402,"nodeType":"ExpressionStatement","src":"3705:20:3"},"nodeType":"ForStatement","src":"3663:492:3"},{"expression":{"id":456,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4172:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":362,"id":457,"nodeType":"Return","src":"4165:12:3"}]},"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"3090:197:3","text":"@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation."},"functionSelector":"9f30b60f","implemented":true,"kind":"function","modifiers":[],"name":"getAvailablePoliciesTerms","nameLocation":"3301:25:3","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"holder","nameLocation":"3344:6:3","nodeType":"VariableDeclaration","scope":459,"src":"3336:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"criteria","nameLocation":"3373:8:3","nodeType":"VariableDeclaration","scope":459,"src":"3360:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":355,"name":"bytes","nodeType":"ElementaryTypeName","src":"3360:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3326:61:3"},"returnParameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":459,"src":"3409:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":359,"nodeType":"UserDefinedTypeName","pathNode":{"id":358,"name":"PolicyTerms","nameLocations":["3409:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3409:11:3"},"referencedDeclaration":236,"src":"3409:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":360,"nodeType":"ArrayTypeName","src":"3409:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"3408:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":469,"nodeType":"FunctionDefinition","src":"4488:84:3","nodes":[],"body":{"id":468,"nodeType":"Block","src":"4570:2:3","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":460,"nodeType":"StructuredDocumentation","src":"4190:293:3","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":466,"kind":"modifierInvocation","modifierName":{"id":465,"name":"onlyAdmin","nameLocations":["4560:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"4560:9:3"},"nodeType":"ModifierInvocation","src":"4560:9:3"}],"name":"_authorizeUpgrade","nameLocation":"4497:17:3","overrides":{"id":464,"nodeType":"OverrideSpecifier","overrides":[],"src":"4551:8:3"},"parameters":{"id":463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":462,"mutability":"mutable","name":"newImplementation","nameLocation":"4523:17:3","nodeType":"VariableDeclaration","scope":469,"src":"4515:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":461,"name":"address","nodeType":"ElementaryTypeName","src":"4515:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4514:27:3"},"returnParameters":{"id":467,"nodeType":"ParameterList","parameters":[],"src":"4570:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":221,"name":"Initializable","nameLocations":["784:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"784:13:3"},"id":222,"nodeType":"InheritanceSpecifier","src":"784:13:3"},{"baseName":{"id":223,"name":"UUPSUpgradeable","nameLocations":["799:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"799:15:3"},"id":224,"nodeType":"InheritanceSpecifier","src":"799:15:3"},{"baseName":{"id":225,"name":"AccessControlledUpgradeable","nameLocations":["816:27:3"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"816:27:3"},"id":226,"nodeType":"InheritanceSpecifier","src":"816:27:3"}],"canonicalName":"PoliciesAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[470,51328,43234,43838,43716,43670,44407,43488],"name":"PoliciesAgg","nameLocation":"769:11:3","scope":471,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[43259,43805,44380]}],"license":"MIT"},"id":3} diff --git a/src/config/abi/RightsAccessAgreement.json b/src/config/abi/RightsAccessAgreement.json deleted file mode 100644 index f981abece..000000000 --- a/src/config/abi/RightsAccessAgreement.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"treasury","type":"address","internalType":"address"},{"name":"tollgate","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"TOLLGATE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITollgate"}],"stateMutability":"view"},{"type":"function","name":"TREASURY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITreasury"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"createAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"disburse","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getTreasuryAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"previewAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"broker","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"quitAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"settleAgreement","inputs":[{"name":"proof","type":"uint256","internalType":"uint256"},{"name":"counterparty","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AgreementCancelled","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AgreementCreated","inputs":[{"name":"initiator","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AgreementSettled","inputs":[{"name":"broker","type":"address","indexed":true,"internalType":"address"},{"name":"counterparty","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FeesDisbursed","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidAgreementOp","inputs":[{"name":"message","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidAgreementProof","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidTreasuryAddress","inputs":[{"name":"invalidAddress","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidUnauthorizedDisbursement","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016d57601f612d0e38819003918201601f19168301916001600160401b0383118484101761017157808492604094855283398101031261016d57610052602061004b83610185565b9201610185565b306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661015e576002600160401b03196001600160401b038216016100f5575b506001600160a01b0390811660c0521660a052604051612b74908161019a82396080518181816109b00152610aaf015260a0518181816105650152818161134101526122e8015260c051818181610ecc0152611ba90152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009c565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361016d5756fe60806040526004361015610011575f80fd5b5f3560e01c80631c8ce890146115e05780632182b2311461138557806329f780e3146113655780632d2c5565146113155780633f5d1b6f14610ef05780634b74c03514610ea05780634f1ef28614610a535780634f9f6fe614610a2857806352d1902d146109895780637a9e5e4b146108b25780638fb360371461081f578063ad3cb1cc146107c0578063bf7e214f1461076e578063c4d66de8146103e1578063d949b8441461034e578063e0024604146102fc5763e5f5677a146100d4575f80fd5b346102f85760406003193601126102f8576004356100f0611699565b906100f9611ae0565b5061010381611e93565b8051159081156102d5575b506102765761011c81611e93565b9073ffffffffffffffffffffffffffffffffffffffff60208301511633036101f25773ffffffffffffffffffffffffffffffffffffffff6101ee936101b460c085015160e08601516101ae8560408901511680936101a7895f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b503061225b565b836122ce565b60405192835216907f4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe660203392a3604051918291826116ff565b0390f35b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f6e6c792062726f6b65722063616e20736574746c652074686520616772656560448201527f6d656e742e0000000000000000000000000000000000000000000000000000006064820152fd5b6040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420696e6163746976652061677265656d656e742e00000000006044820152606490fd5b73ffffffffffffffffffffffffffffffffffffffff91506060015116155f61010e565b5f80fd5b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416604051908152f35b346102f85760406003193601126102f857610367611676565b73ffffffffffffffffffffffffffffffffffffffff6103cb610387611699565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346102f85760206003193601126102f8576103fa611676565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610766575b600114908161075c575b159081610753575b5061072b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556106d6575b506104bd6129c7565b6104c56129c7565b6104cd6129c7565b6104d56129c7565b6104de816127b2565b6104e66129c7565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661058d6129c7565b6105956129c7565b61059d6129c7565b80156106ab577fffffffffffffffffffffffff00000000000000000000000000000000000000007fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416177fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e7400556106126129c7565b61061857005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fd35749f4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836104b4565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461044b565b303b159150610443565b849150610439565b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346102f8575f6003193601126102f8576101ee6040516107e160408261192d565b600581527f352e302e3000000000000000000000000000000000000000000000000000000060208201526040519182916020835260208301906116bc565b346102f8575f6003193601126102f8577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108aa5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610880565b346102f85760206003193601126102f8576108cb611676565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361095d57803b1561091b57610919906127b2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346102f8575f6003193601126102f85773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a005760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102f85760206003193601126102f8576101ee610a47600435611e93565b604051918291826116ff565b60406003193601126102f857610a67611676565b60243567ffffffffffffffff81116102f857366023820112156102f857610a989036906024816004013591016119a8565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610e5e575b50610a00576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610e53575f91610e06575b5015610d825773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610d4e575b50610be657837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610d235750813b15610cf857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610cc7575f8083602061091995519101845af4610cc161290e565b91612aa5565b505034610cd057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610d7a575b81610d6a6020938361192d565b810103126102f857519085610bb5565b3d9150610d5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610e4b575b81610e216040938361192d565b810103126102f85780519081151582036102f8576020015163ffffffff8116036102f85783610b60565b3d9150610e14565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610ada565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f857610f19610f14610f0436611833565b96909594809295949394336125da565b611b2a565b6040516020810190610f5b81610f2f85856116ff565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261192d565b519020805f525f60205260405f208251151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815560208301517fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0083549260081b16911617815573ffffffffffffffffffffffffffffffffffffffff60408401511673ffffffffffffffffffffffffffffffffffffffff6001830191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff60608401511673ffffffffffffffffffffffffffffffffffffffff6002830191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556080830151600382015560a0830151600482015560c0830151600582015560e08301516006820155600781016101008401519081519167ffffffffffffffff83116112a3576801000000000000000083116112a35760209082548484558085106112fa575b5001905f5260205f205f5b8381106112d057610120870151805190876008880167ffffffffffffffff84116112a35760209361113b8254611e42565b601f811161126a575b508493601f82116001146111ce5793819293945f926111c3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b6040518181527fb649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca833392a2604051908152f35b01519050858061115e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821694835f52805f20915f5b87811061125357508360019596971061121c575b505050811b019055611190565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905585808061120f565b9192886001819286850151815501940192016111fb565b61129390835f52865f20601f840160051c810191888510611299575b601f0160051c019061279c565b85611144565b9091508190611286565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600190602073ffffffffffffffffffffffffffffffffffffffff855116940193818401550161110a565b61130f90845f5285845f20918201910161279c565b876110ff565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f8576101ee610a4761137936611833565b95949094939193611b2a565b346102f85760206003193601126102f8576004356113a1611ae0565b506113ab81611e93565b8051159081156115bd575b50610276577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115955760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d61140e81611e93565b6060810173ffffffffffffffffffffffffffffffffffffffff8151163303611511577ffab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae60206101ee946114db73ffffffffffffffffffffffffffffffffffffffff60e08701519551169460c0870151906114d573ffffffffffffffffffffffffffffffffffffffff60408a01511680936101a7875f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b866122ce565b604051908152a25f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051918291826116ff565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677260448201527f65656d656e742e000000000000000000000000000000000000000000000000006064820152fd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff9150606001511615826113b6565b346102f85760206003193601126102f8576115f9611676565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416330361164a576116426020916119de565b604051908152f35b7f7344c314000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9190916020815261016081019083511515602082015273ffffffffffffffffffffffffffffffffffffffff602085015116604082015273ffffffffffffffffffffffffffffffffffffffff604085015116606082015273ffffffffffffffffffffffffffffffffffffffff6060850151166080820152608084015160a082015260a084015160c082015260c084015160e082015260e0840151610100820152610100840151916101406101208301528251809152602061018083019301905f5b8181106118075750505061012061180493940151906101407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828503019101526116bc565b90565b825173ffffffffffffffffffffffffffffffffffffffff168552602094850194909201916001016117bf565b60a06003198201126102f8576004359160243573ffffffffffffffffffffffffffffffffffffffff811681036102f8579160443573ffffffffffffffffffffffffffffffffffffffff811681036102f857916064359167ffffffffffffffff83116102f857806023840112156102f85782600401359267ffffffffffffffff84116102f8578160248560051b830101116102f857602401929160843567ffffffffffffffff81116102f857826023820112156102f85780600401359267ffffffffffffffff84116102f857602484830101116102f8576024019190565b610140810190811067ffffffffffffffff8211176112a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176112a357604052565b67ffffffffffffffff81116112a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926119b48261196e565b916119c2604051938461192d565b8294818452818301116102f8578281602093845f960137010152565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416611a5d3073ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2054918215611ad957604081611ab47faacdfb17e73979730dd4f099403209fa37d2a4486c1bcddfad753c3fc6c430df938686612067565b73ffffffffffffffffffffffffffffffffffffffff825191868352166020820152a290565b5050505f90565b60405190611aed82611910565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e0820152826101008201520152565b9695929694939194611b3a611ae0565b508215611dbe5773ffffffffffffffffffffffffffffffffffffffff604051927f5622361d00000000000000000000000000000000000000000000000000000000845260026004850152169182602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e53575f91611d8c575b506127108111611d0857808202908282041482151715611cdb5761271090049081810392818411611cdb5773ffffffffffffffffffffffffffffffffffffffff60405198611c268a611910565b60018a52166020890152604088015233606088015242608088015260a087015260c086015260e085015267ffffffffffffffff81116112a3578060051b9560405191611c75602089018461192d565b825260208201968101903682116102f857965b818810611cae57505083949550610100611ca594015236916119a8565b61012082015290565b873573ffffffffffffffffffffffffffffffffffffffff811681036102f857815260209788019701611c88565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4250532063616e6e6f742062652067726561746572207468616e2031305f303060448201527f30000000000000000000000000000000000000000000000000000000000000006064820152fd5b90506020813d602011611db6575b81611da76020938361192d565b810103126102f857515f611bd9565b3d9150611d9a565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f41677265656d656e74206d75737420696e636c756465206174206c656173742060448201527f6f6e6520706172747900000000000000000000000000000000000000000000006064820152fd5b90600182811c92168015611e89575b6020831014611e5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611e51565b611e9b611ae0565b505f525f60205260405f2060405190611eb382611910565b73ffffffffffffffffffffffffffffffffffffffff815460ff81161515845260081c16602083015273ffffffffffffffffffffffffffffffffffffffff600182015416604083015273ffffffffffffffffffffffffffffffffffffffff600282015416606083015260038101546080830152600481015460a0830152600581015460c0830152600681015460e0830152600781016040519081602082549182815201915f5260205f20905f5b81811061203b5750505090611f798160089493038261192d565b6101008401520160405190815f825492611f9284611e42565b8084529360018116908115611ffb5750600114611fb7575b50611ca59250038261192d565b90505f9291925260205f20905f915b818310611fdf575050906020611ca5928201015f611faa565b6020919350806001915483858801015201910190918392611fc6565b60209350611ca59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611faa565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611f5f565b9181156121f05781612079823061285d565b106121925773ffffffffffffffffffffffffffffffffffffffff168015612104576040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260448084019290925290825261210291906120fd60648361192d565b612a1e565b565b505f8080939273ffffffffffffffffffffffffffffffffffffffff8294165af161212c61290e565b501561213457565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b91908201809211611cdb57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526122ca60405f2091825461224e565b9055565b909173ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911690811580156125d2575b61254f576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82166024820152602081604481865afa8015610e535785905f90612519575b612382925061224e565b60205f60405192612410846123e4858201937f095ea7b300000000000000000000000000000000000000000000000000000000855288602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810186528561192d565b83519082875af15f513d826124fd575b5050156124a0575b50803b156102f8575f928360649273ffffffffffffffffffffffffffffffffffffffff9460405197889687957ff45346dc000000000000000000000000000000000000000000000000000000008752166004860152602485015260448401525af18015610e53576124965750565b5f6121029161192d565b6124f7906124f16040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528460248201525f6044820152604481526124eb60648261192d565b85612a1e565b83612a1e565b5f612428565b9091506125115750823b15155b5f80612420565b60011461250a565b50506020813d602011612547575b816125346020938361192d565b810103126102f857846123829151612378565b3d9150612527565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508315612314565b919091821561273e5773ffffffffffffffffffffffffffffffffffffffff82169182156126d35761260b908261293d565b8311612675576118049173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526120fd60848361192d565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b5050503481116126e05790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b8181106127a7575050565b5f815560010161279c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156129085773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610e53575f916128d9575090565b90506020813d602011612900575b816128f46020938361192d565b810103126102f8575190565b3d91506128e7565b90503190565b3d15612938573d9061291f8261196e565b9161292d604051938461192d565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff1680156129c1576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610e53575f916128d9575090565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156129f657565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610e53575f513d612a9c575073ffffffffffffffffffffffffffffffffffffffff81163b155b612a5a5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612a53565b90612ae25750805115612aba57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612b35575b612af3575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15612aeb56fea2646970667358221220db73c7a83853f7125065c30036ad2daf3c1f4621555efd0f62f9f4dd027e63ea64736f6c634300081a0033","sourceMap":"1170:12074:55:-:0;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;-1:-1:-1;;;;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:102;1163:13;;8837:64:101;1170:12074:55;;;;;;7896:76:101;;-1:-1:-1;;;;;;;;;;;1170:12074:55;;7985:34:101;7981:146;;-1:-1:-1;;;;;;;1170:12074:55;;;4374:30;;1170:12074;;4414:30;1170:12074;;;;;;;;1163:13:102;1170:12074:55;;;;;;;;;;4414:30;1170:12074;;;;;;;;;;;;;;;4374:30;1170:12074;;;;;;;;;;;7981:146:101;-1:-1:-1;;;;;;1170:12074:55;-1:-1:-1;;;;;1170:12074:55;;;8837:64:101;1170:12074:55;;;;;;8087:29:101;;1170:12074:55;;8087:29:101;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:101;;-1:-1:-1;7938:23:101;1170:12074:55;-1:-1:-1;1170:12074:55;;;;;;-1:-1:-1;1170:12074:55;;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;;;;;1170:12074:55;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80631c8ce890146115e05780632182b2311461138557806329f780e3146113655780632d2c5565146113155780633f5d1b6f14610ef05780634b74c03514610ea05780634f1ef28614610a535780634f9f6fe614610a2857806352d1902d146109895780637a9e5e4b146108b25780638fb360371461081f578063ad3cb1cc146107c0578063bf7e214f1461076e578063c4d66de8146103e1578063d949b8441461034e578063e0024604146102fc5763e5f5677a146100d4575f80fd5b346102f85760406003193601126102f8576004356100f0611699565b906100f9611ae0565b5061010381611e93565b8051159081156102d5575b506102765761011c81611e93565b9073ffffffffffffffffffffffffffffffffffffffff60208301511633036101f25773ffffffffffffffffffffffffffffffffffffffff6101ee936101b460c085015160e08601516101ae8560408901511680936101a7895f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b503061225b565b836122ce565b60405192835216907f4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe660203392a3604051918291826116ff565b0390f35b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4f6e6c792062726f6b65722063616e20736574746c652074686520616772656560448201527f6d656e742e0000000000000000000000000000000000000000000000000000006064820152fd5b6040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420696e6163746976652061677265656d656e742e00000000006044820152606490fd5b73ffffffffffffffffffffffffffffffffffffffff91506060015116155f61010e565b5f80fd5b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416604051908152f35b346102f85760406003193601126102f857610367611676565b73ffffffffffffffffffffffffffffffffffffffff6103cb610387611699565b9273ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346102f85760206003193601126102f8576103fa611676565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff821680159081610766575b600114908161075c575b159081610753575b5061072b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556106d6575b506104bd6129c7565b6104c56129c7565b6104cd6129c7565b6104d56129c7565b6104de816127b2565b6104e66129c7565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005573ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001661058d6129c7565b6105956129c7565b61059d6129c7565b80156106ab577fffffffffffffffffffffffff00000000000000000000000000000000000000007fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416177fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e7400556106126129c7565b61061857005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fd35749f4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836104b4565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461044b565b303b159150610443565b849150610439565b346102f8575f6003193601126102f857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346102f8575f6003193601126102f8576101ee6040516107e160408261192d565b600581527f352e302e3000000000000000000000000000000000000000000000000000000060208201526040519182916020835260208301906116bc565b346102f8575f6003193601126102f8577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108aa5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610880565b346102f85760206003193601126102f8576108cb611676565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361095d57803b1561091b57610919906127b2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346102f8575f6003193601126102f85773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610a005760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b346102f85760206003193601126102f8576101ee610a47600435611e93565b604051918291826116ff565b60406003193601126102f857610a67611676565b60243567ffffffffffffffff81116102f857366023820112156102f857610a989036906024816004013591016119a8565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610e5e575b50610a00576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610e53575f91610e06575b5015610d825773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610d4e575b50610be657837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610d235750813b15610cf857807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610cc7575f8083602061091995519101845af4610cc161290e565b91612aa5565b505034610cd057005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610d7a575b81610d6a6020938361192d565b810103126102f857519085610bb5565b3d9150610d5d565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610e4b575b81610e216040938361192d565b810103126102f85780519081151582036102f8576020015163ffffffff8116036102f85783610b60565b3d9150610e14565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610ada565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f857610f19610f14610f0436611833565b96909594809295949394336125da565b611b2a565b6040516020810190610f5b81610f2f85856116ff565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810183528261192d565b519020805f525f60205260405f208251151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00835416911617815560208301517fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0083549260081b16911617815573ffffffffffffffffffffffffffffffffffffffff60408401511673ffffffffffffffffffffffffffffffffffffffff6001830191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905573ffffffffffffffffffffffffffffffffffffffff60608401511673ffffffffffffffffffffffffffffffffffffffff6002830191167fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790556080830151600382015560a0830151600482015560c0830151600582015560e08301516006820155600781016101008401519081519167ffffffffffffffff83116112a3576801000000000000000083116112a35760209082548484558085106112fa575b5001905f5260205f205f5b8381106112d057610120870151805190876008880167ffffffffffffffff84116112a35760209361113b8254611e42565b601f811161126a575b508493601f82116001146111ce5793819293945f926111c3575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c19161790555b6040518181527fb649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca833392a2604051908152f35b01519050858061115e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0821694835f52805f20915f5b87811061125357508360019596971061121c575b505050811b019055611190565b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c1916905585808061120f565b9192886001819286850151815501940192016111fb565b61129390835f52865f20601f840160051c810191888510611299575b601f0160051c019061279c565b85611144565b9091508190611286565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b600190602073ffffffffffffffffffffffffffffffffffffffff855116940193818401550161110a565b61130f90845f5285845f20918201910161279c565b876110ff565b346102f8575f6003193601126102f857602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346102f8576101ee610a4761137936611833565b95949094939193611b2a565b346102f85760206003193601126102f8576004356113a1611ae0565b506113ab81611e93565b8051159081156115bd575b50610276577f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c6115955760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d61140e81611e93565b6060810173ffffffffffffffffffffffffffffffffffffffff8151163303611511577ffab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae60206101ee946114db73ffffffffffffffffffffffffffffffffffffffff60e08701519551169460c0870151906114d573ffffffffffffffffffffffffffffffffffffffff60408a01511680936101a7875f525f60205260405f207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416815590565b866122ce565b604051908152a25f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051918291826116ff565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677260448201527f65656d656e742e000000000000000000000000000000000000000000000000006064820152fd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b73ffffffffffffffffffffffffffffffffffffffff9150606001511615826113b6565b346102f85760206003193601126102f8576115f9611676565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416330361164a576116426020916119de565b604051908152f35b7f7344c314000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036102f857565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b9190916020815261016081019083511515602082015273ffffffffffffffffffffffffffffffffffffffff602085015116604082015273ffffffffffffffffffffffffffffffffffffffff604085015116606082015273ffffffffffffffffffffffffffffffffffffffff6060850151166080820152608084015160a082015260a084015160c082015260c084015160e082015260e0840151610100820152610100840151916101406101208301528251809152602061018083019301905f5b8181106118075750505061012061180493940151906101407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0828503019101526116bc565b90565b825173ffffffffffffffffffffffffffffffffffffffff168552602094850194909201916001016117bf565b60a06003198201126102f8576004359160243573ffffffffffffffffffffffffffffffffffffffff811681036102f8579160443573ffffffffffffffffffffffffffffffffffffffff811681036102f857916064359167ffffffffffffffff83116102f857806023840112156102f85782600401359267ffffffffffffffff84116102f8578160248560051b830101116102f857602401929160843567ffffffffffffffff81116102f857826023820112156102f85780600401359267ffffffffffffffff84116102f857602484830101116102f8576024019190565b610140810190811067ffffffffffffffff8211176112a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176112a357604052565b67ffffffffffffffff81116112a357601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9291926119b48261196e565b916119c2604051938461192d565b8294818452818301116102f8578281602093845f960137010152565b73ffffffffffffffffffffffffffffffffffffffff7fad118695963461d59b4e186bb251fe176897e2c57f3362e8dade6f9a4f8e74005416611a5d3073ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff83165f5260205260405f2054918215611ad957604081611ab47faacdfb17e73979730dd4f099403209fa37d2a4486c1bcddfad753c3fc6c430df938686612067565b73ffffffffffffffffffffffffffffffffffffffff825191868352166020820152a290565b5050505f90565b60405190611aed82611910565b6060610120835f81525f60208201525f60408201525f838201525f60808201525f60a08201525f60c08201525f60e0820152826101008201520152565b9695929694939194611b3a611ae0565b508215611dbe5773ffffffffffffffffffffffffffffffffffffffff604051927f5622361d00000000000000000000000000000000000000000000000000000000845260026004850152169182602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610e53575f91611d8c575b506127108111611d0857808202908282041482151715611cdb5761271090049081810392818411611cdb5773ffffffffffffffffffffffffffffffffffffffff60405198611c268a611910565b60018a52166020890152604088015233606088015242608088015260a087015260c086015260e085015267ffffffffffffffff81116112a3578060051b9560405191611c75602089018461192d565b825260208201968101903682116102f857965b818810611cae57505083949550610100611ca594015236916119a8565b61012082015290565b873573ffffffffffffffffffffffffffffffffffffffff811681036102f857815260209788019701611c88565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4250532063616e6e6f742062652067726561746572207468616e2031305f303060448201527f30000000000000000000000000000000000000000000000000000000000000006064820152fd5b90506020813d602011611db6575b81611da76020938361192d565b810103126102f857515f611bd9565b3d9150611d9a565b60846040517f7884ed9b00000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f41677265656d656e74206d75737420696e636c756465206174206c656173742060448201527f6f6e6520706172747900000000000000000000000000000000000000000000006064820152fd5b90600182811c92168015611e89575b6020831014611e5c57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691611e51565b611e9b611ae0565b505f525f60205260405f2060405190611eb382611910565b73ffffffffffffffffffffffffffffffffffffffff815460ff81161515845260081c16602083015273ffffffffffffffffffffffffffffffffffffffff600182015416604083015273ffffffffffffffffffffffffffffffffffffffff600282015416606083015260038101546080830152600481015460a0830152600581015460c0830152600681015460e0830152600781016040519081602082549182815201915f5260205f20905f5b81811061203b5750505090611f798160089493038261192d565b6101008401520160405190815f825492611f9284611e42565b8084529360018116908115611ffb5750600114611fb7575b50611ca59250038261192d565b90505f9291925260205f20905f915b818310611fdf575050906020611ca5928201015f611faa565b6020919350806001915483858801015201910190918392611fc6565b60209350611ca59592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f611faa565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201611f5f565b9181156121f05781612079823061285d565b106121925773ffffffffffffffffffffffffffffffffffffffff168015612104576040517fa9059cbb00000000000000000000000000000000000000000000000000000000602082015273ffffffffffffffffffffffffffffffffffffffff93909316602484015260448084019290925290825261210291906120fd60648361192d565b612a1e565b565b505f8080939273ffffffffffffffffffffffffffffffffffffffff8294165af161212c61290e565b501561213457565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b91908201809211611cdb57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526122ca60405f2091825461224e565b9055565b909173ffffffffffffffffffffffffffffffffffffffff807f000000000000000000000000000000000000000000000000000000000000000016911690811580156125d2575b61254f576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff82166024820152602081604481865afa8015610e535785905f90612519575b612382925061224e565b60205f60405192612410846123e4858201937f095ea7b300000000000000000000000000000000000000000000000000000000855288602484016020909392919373ffffffffffffffffffffffffffffffffffffffff60408201951681520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0810186528561192d565b83519082875af15f513d826124fd575b5050156124a0575b50803b156102f8575f928360649273ffffffffffffffffffffffffffffffffffffffff9460405197889687957ff45346dc000000000000000000000000000000000000000000000000000000008752166004860152602485015260448401525af18015610e53576124965750565b5f6121029161192d565b6124f7906124f16040517f095ea7b30000000000000000000000000000000000000000000000000000000060208201528460248201525f6044820152604481526124eb60648261192d565b85612a1e565b83612a1e565b5f612428565b9091506125115750823b15155b5f80612420565b60011461250a565b50506020813d602011612547575b816125346020938361192d565b810103126102f857846123829151612378565b3d9150612527565b60846040517f23c75658000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f496e76616c6964207370656e646572206f7220616c6c6f77616e63652061747460448201527f656d7074000000000000000000000000000000000000000000000000000000006064820152fd5b508315612314565b919091821561273e5773ffffffffffffffffffffffffffffffffffffffff82169182156126d35761260b908261293d565b8311612675576118049173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd000000000000000000000000000000000000000000000000000000006020850152166024830152306044830152836064830152606482526120fd60848361192d565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b5050503481116126e05790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b8181106127a7575050565b5f815560010161279c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156129085773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115610e53575f916128d9575090565b90506020813d602011612900575b816128f46020938361192d565b810103126102f8575190565b3d91506128e7565b90503190565b3d15612938573d9061291f8261196e565b9161292d604051938461192d565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff1680156129c1576040517fdd62ed3e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff929092166004830152306024830152602090829060449082905afa908115610e53575f916128d9575090565b50503490565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156129f657565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b905f602091828151910182855af115610e53575f513d612a9c575073ffffffffffffffffffffffffffffffffffffffff81163b155b612a5a5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415612a53565b90612ae25750805115612aba57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580612b35575b612af3575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15612aeb56fea2646970667358221220db73c7a83853f7125065c30036ad2daf3c1f4621555efd0f62f9f4dd027e63ea64736f6c634300081a0033","sourceMap":"1170:12074:55:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;11024:21;;;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;:::i;:::-;;;;:::i;:::-;;3778:19;;;:::i;:::-;1170:12074;;;;;;3811:54;;1170:12074;3807:141;;;7811:19;;;:::i;:::-;7844:16;1170:12074;;7844:16;;1170:12074;;7864:10;7844:30;7840:127;;1170:12074;;7992:14;8327:8;7992:14;;;1170:12074;;8048:19;;1170:12074;8258:8;8115:18;1170:12074;8115:18;;1170:12074;;8144:22;;;;11614:11;1170:12074;11614:11;1170:12074;;;11614:11;1170:12074;;;;;;;11418:281;;8144:22;;8245:4;8258:8;:::i;:::-;8327;;:::i;:::-;1170:12074;;;;;;7864:10;8352:49;1170:12074;7864:10;8352:49;;1170:12074;;;;;;;:::i;:::-;;;;7840:127;7897:59;1170:12074;;7897:59;;;1170:12074;;7897:59;;1170:12074;;;;;;;;;;;;;;;;7897:59;3807:141;1170:12074;;3888:49;;;1170:12074;;3888:49;;1170:12074;;;;;;;;;;;;;3888:49;3811:54;1170:12074;3832:19;;;;1170:12074;;3832:33;3811:54;;;1170:12074;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;4768:62:6;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;1452:18:7;1170:12074:55;;:::i;:::-;1452:18:7;1170:12074:55;;;;4161:54:7;1170:12074:55;;;;;;;1452:18:7;:28;1170:12074:55;-1:-1:-1;1170:12074:55;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;8837:64:101;1170:12074:55;;;;;;4301:16:101;1170:12074:55;;;;4726:16:101;;:34;;;;1170:12074:55;4805:1:101;4790:16;:50;;;;1170:12074:55;4855:13:101;:30;;;;1170:12074:55;4851:91:101;;;1170:12074:55;;4805:1:101;1170:12074:55;;;;;8837:64:101;1170:12074:55;4979:67:101;;1170:12074:55;6893:76:101;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:99;;;:::i;:::-;6893:76:101;;:::i;:::-;1170:12074:55;;3286:62:5;1170:12074:55;;;3286:62:5;1170:12074:55;;4676:8;1170:12074;6893:76:101;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;4237:37:6;;4233:97;;1170:12074:55;4768:62:6;1170:12074:55;;;4768:62:6;1170:12074:55;6893:76:101;;:::i;:::-;5066:101;;1170:12074:55;5066:101:101;1170:12074:55;8837:64:101;1170:12074:55;;8837:64:101;1170:12074:55;5142:14:101;1170:12074:55;;;4805:1:101;1170:12074:55;;5142:14:101;1170:12074:55;4233:97:6;4283:47;1170:12074:55;4283:47:6;1170:12074:55;;;;4283:47:6;4979:67:101;1170:12074:55;;;;8837:64:101;1170:12074:55;4979:67:101;;;4851:91;4908:23;1170:12074:55;4908:23:101;1170:12074:55;;4908:23:101;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:101;;4726:34;;;-1:-1:-1;4726:34:101;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;1782:71:99;1170:12074:55;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1170:12074:55;;;;;1782:71:99;1170:12074:55;;;;;4698:71:99;;;1170:12074:55;;4698:71:99;1170:12074:55;;;;;;;;4698:71:99;1170:12074:55;;4698:71:99;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;1782:71:99;1170:12074:55;;966:10:105;4258:21:99;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1170:12074:55;4355:110:99;1170:12074:55;4411:43:99;;1170:12074:55;4411:43:99;1170:12074:55;;;;;4411:43:99;4254:92;4302:33;1170:12074:55;4302:33:99;966:10:105;1170:12074:55;;;;4302:33:99;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;5115:6:102;1170:12074:55;5106:4:102;5098:23;5094:145;;1170:12074:55;;;811:66:139;1170:12074:55;;;5094:145:102;5199:29;1170:12074:55;5199:29:102;1170:12074:55;;5199:29:102;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4692:6:102;1170:12074:55;4683:4:102;;4675:23;:120;;;;;1170:12074:55;4658:251:102;;;3049:30:5;1170:12074:55;;3286:62:5;1170:12074:55;;;;3049:30:5;;;;1170:12074:55;3049:30:5;;1170:12074:55;;3049:30:5;;1170:12074:55;1884:10:5;1170:12074:55;;;;3049:30:5;;;;;;;1170:12074:55;3049:30:5;;;1170:12074:55;1860:35:5;;1856:140;;1170:12074:55;;;;;;;6156:52:102;;1170:12074:55;6156:52:102;1170:12074:55;6156:52:102;;;;1170:12074:55;;6156:52:102;;;1170:12074:55;-1:-1:-1;6152:437:102;;6518:60;;1170:12074:55;6518:60:102;1170:12074:55;;;;6518:60:102;6152:437;6250:40;811:66:139;6250:40:102;;;6246:120;;1748:29:139;;;:34;1744:119;;1170:12074:55;;811:66:139;1170:12074:55;;;811:66:139;1170:12074:55;2407:36:139;1170:12074:55;2407:36:139;;1170:12074:55;;2458:15:139;:11;;1170:12074:55;4049:25:160;;1170:12074:55;4091:55:160;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:139:-;6163:9;;;6159:70;;1170:12074:55;6159:70:139;6199:19;1170:12074:55;6199:19:139;1170:12074:55;;6199:19:139;1744:119;1805:47;1170:12074:55;1805:47:139;1170:12074:55;;;;1805:47:139;6246:120:102;6317:34;1170:12074:55;6317:34:102;1170:12074:55;;;;6317:34:102;6156:52;;;;1170:12074:55;6156:52:102;;1170:12074:55;6156:52:102;;;;;;1170:12074:55;6156:52:102;;;:::i;:::-;;;1170:12074:55;;;;;6156:52:102;;;;;;;-1:-1:-1;6156:52:102;;1856:140:5;1918:67;1170:12074:55;;1918:67:5;;;1170:12074:55;;1918:67:5;;520:1:45;1170:12074:55;;520:1:45;;1170:12074:55;520:1:45;3049:30:5;1170:12074:55;;520:1:45;;;;;;1918:67:5;3049:30;;;1170:12074:55;3049:30:5;;1170:12074:55;3049:30:5;;;;;;1170:12074:55;3049:30:5;;;:::i;:::-;;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;3049:30:5;;;;;;-1:-1:-1;3049:30:5;;;1170:12074:55;;;;;;;;;4675:120:102;1170:12074:55;;;811:66:139;1170:12074:55;;4753:42:102;;4675:120;;;1170:12074:55;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;1944:35;1170:12074;;;;;;;;5504:63;5423:40;1170:12074;;;:::i;:::-;5423:10;;;;;;;;;;;:40;:::i;:::-;5504:63;:::i;:::-;1170:12074;;11024:21;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;1170:12074;11071:19;;1170:12074;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5891:35;5423:10;;5891:35;;1170:12074;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;;;;;;;11024:21;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;1837:35;1170:12074;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;:::i;:::-;;3778:19;;;:::i;:::-;1170:12074;;;;;;3811:54;;1170:12074;3807:141;;;757:66:108;3321:69:170;1706:93:108;;1170:12074:55;757:66:108;3550:68:170;6270:19:55;;;:::i;:::-;6303;;;1170:12074;;;;6326:10;6303:33;6299:132;;6946:36;1170:12074;;6526:19;6921:8;1170:12074;;6526:19;;1170:12074;;;;6667:14;;;;1170:12074;6734:18;6855:8;1170:12074;;6734:18;;1170:12074;;6763:22;;;;11614:11;1170:12074;11614:11;1170:12074;;;11614:11;1170:12074;;;;;;;11418:281;;6855:8;6921;;:::i;:::-;1170:12074;;;;;6946:36;1170:12074;757:66:108;3550:68:170;1170:12074:55;;;;;;;:::i;6299:132::-;6359:61;1170:12074;;6359:61;;;1170:12074;;6359:61;;1170:12074;;;;;;;;;;;;;;;;6359:61;1706:93:108;1758:30;1170:12074:55;1758:30:108;1170:12074:55;;1758:30:108;3811:54:55;1170:12074;3832:19;;;;1170:12074;;3832:33;3811:54;;;1170:12074;;;;;-1:-1:-1;;1170:12074:55;;;;;;;:::i;:::-;;4768:62:6;1170:12074:55;;1906:10:6;1882:34;1878:115;;2585:546;1170:12074:55;2585:546:6;;:::i;:::-;1170:12074:55;;;;;;1878:115:6;1939:43;1170:12074:55;1939:43:6;1906:10;1170:12074:55;;;;1939:43:6;1170:12074:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1170:12074:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;1170:12074:55;;;;;;:::o;2585:546:6:-;1170:12074:55;4768:62:6;1170:12074:55;;1452:18:7;2842:4:6;1170:12074:55;;;;4161:54:7;1170:12074:55;;;;;;;1452:18:7;1170:12074:55;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;2872:11:6;;;2868:25;;1170:12074:55;3029:8:6;;3053:48;3029:8;;;;:::i;:::-;1170:12074:55;;;;;;;;;;;;3053:48:6;2585:546;:::o;2868:25::-;2885:8;;;-1:-1:-1;2885:8:6;:::o;1170:12074:55:-;;;;;;;:::i;:::-;;;;-1:-1:-1;1170:12074:55;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;-1:-1:-1;1170:12074:55;;;;;;;;;;;:::o;8845:1616::-;;;;;;;;;1170:12074;;:::i;:::-;;9074:19;;9070:120;;1170:12074;;;12222:41;1170:12074;12222:41;;12239:13;12222:41;;;1170:12074;;;;;;;;;12222:8;:41;:8;1170:12074;12222:8;1170:12074;12222:41;;;;;;;9092:1;12222:41;;;8845:1616;1182:16:46;469:6:45;1182:16:46;;469:6:45;;1170:12074:55;;;;;;;;;;;;;;469:6:45;;;1170:12074:55;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;9684:770;;1170:12074;;9684:770;;1170:12074;9969:10;9684:770;;;1170:12074;10231:15;9684:770;;;1170:12074;9684:770;;;1170:12074;9684:770;;;1170:12074;;9684:770;;1170:12074;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;9684:770;;;;;;;1170:12074;9684:770;;1170:12074;;;;:::i;:::-;9684:770;;;1170:12074;8845:1616;:::o;1170:12074::-;;;;;;;;;;;;;;;;;;;;;;9092:1;1170:12074;;12222:41;1170:12074;;9092:1;1170:12074;469:6:45;;1170:12074:55;;469:6:45;;;1170:12074:55;12222:41;469:6:45;;;;1170:12074:55;469:6:45;;1170:12074:55;469:6:45;12222:41:55;1170:12074;;469:6:45;;;;;;;12222:41:55;;;1170:12074;12222:41;;1170:12074;12222:41;;;;;;1170:12074;12222:41;;;:::i;:::-;;;1170:12074;;;;;12222:41;;;;;;-1:-1:-1;12222:41:55;;9070:120;9116:63;1170:12074;;9116:63;;;1170:12074;9116:63;;;1170:12074;;;;;;;;;;;;;;;;9116:63;1170:12074;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;7172:120;1170:12074;;:::i;:::-;;7267:11;1170:12074;7267:11;1170:12074;;;7267:11;1170:12074;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7267:11;1170:12074;;7267:11;1170:12074;;7267:11;1170:12074;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7267:11;1170:12074;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;7267:11;1170:12074;;;;;7267:11;1170:12074;;7267:11;1170:12074;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5230:383:48;;5314:11;;5310:78;;5420:4;5402:31;5420:4;;5402:31;:::i;:::-;:40;5398:96;;1170:12074:55;;5508:19:48;;5504:59;;1170:12074:55;;;1380:43:153;;;;1170:12074:55;;;;;1380:43:153;;;1170:12074:55;;;;;;;;;1380:43:153;;;;;1170:12074:55;1380:43:153;1170:12074:55;;1380:43:153;:::i;:::-;;:::i;:::-;5230:383:48:o;5504:59::-;1170:12074:55;5324:1:48;1170:12074:55;;;;;;;;901:37:48;;;;:::i;:::-;;952:8;948:58;;5529:34::o;948:58::-;969:37;1170:12074:55;;969:37:48;;;1170:12074:55;969:37:48;;;1170:12074:55;;;;;;;;;;;969:37:48;5398:96;5451:43;1170:12074:55;;5451:43:48;;;1170:12074:55;5451:43:48;;;1170:12074:55;;;;;;;;;;;5451:43:48;5310:78;5334:54;1170:12074:55;;5334:54:48;;;1170:12074:55;5334:54:48;;;1170:12074:55;;;;;;;;;;;5334:54:48;1170:12074:55;;;;;;;;;;:::o;3099:195:7:-;1170:12074:55;3099:195:7;;;;1170:12074:55;-1:-1:-1;1170:12074:55;4161:54:7;1170:12074:55;;;;-1:-1:-1;1170:12074:55;3249:28:7;1170:12074:55;-1:-1:-1;1170:12074:55;;;3249:38:7;1170:12074:55;-1:-1:-1;1170:12074:55;;;;3249:38:7;:::i;:::-;1170:12074:55;;3099:195:7:o;12938:304:55:-;;;1170:12074;13135:8;;1170:12074;2085:1:48;1170:12074:55;2068:19:48;;;:34;;;;12938:304:55;2064:104:48;;1170:12074:55;;;2633:39:153;;2657:4;2633:39;;;1170:12074:55;;;;;;;;2633:39:153;1170:12074:55;;;2633:39:153;;;;;;;;;2085:1:48;2633:39:153;;;12938:304:55;2711:20:153;;;;:::i;:::-;2633:39;2085:1:48;1170:12074:55;;4567:47:153;;;;;;;;1170:12074:55;4567:47:153;;;;;;1170:12074:55;;;;;;;;;;;;;;;;;4567:47:153;;;;;;;;;:::i;:::-;9138:199;;;;;;;2085:1:48;9138:199:153;;9353:80;;;12938:304:55;4629:45:153;;;4625:201;;12938:304:55;13190:45;;;;;;2085:1:48;1170:12074:55;;13190:45;1170:12074;;;;;13190:45;;;;;1170:12074;13190:45;;1170:12074;2633:39:153;13190:45:55;;1170:12074;4567:47:153;1170:12074:55;;;;;;;13190:45;;;;;;;;12938:304;:::o;13190:45::-;2085:1:48;13190:45:55;;;:::i;4625:201:153:-;4802:12;1170:12074:55;4717:43:153;1170:12074:55;;;2633:39:153;4717:43;;;;4567:47;4717:43;;1170:12074:55;2085:1:48;1170:12074:55;;;;;4717:43:153;;;;;;:::i;:::-;;;:::i;:::-;4802:12;;:::i;:::-;4625:201;;;9353:80;9365:67;;-1:-1:-1;9365:15:153;;9383:26;;;:30;;9365:67;9353:80;;;;9365:67;9431:1;9416:16;9365:67;;2633:39;;;;;;;;;;;;;1170:12074:55;2633:39:153;;;:::i;:::-;;;1170:12074:55;;;;;2711:20:153;1170:12074:55;;2633:39:153;;;;;-1:-1:-1;2633:39:153;;2064:104:48;2111:57;1170:12074:55;;2111:57:48;;;1170:12074:55;2111:57:48;;;1170:12074:55;;;;;;;;;;;;;;;;2111:57:48;2068:34;2091:11;;;2068:34;;3536:881;;;;3643:11;;3639:65;;1170:12074:55;;;3718:19:48;;;3714:230;;3967:22;;;;:::i;:::-;3958:31;;3954:90;;1797:53:153;1170:12074:55;;;;1797:53:153;1170:12074:55;1797:53:153;;;;1170:12074:55;1797:53:153;;;1170:12074:55;4373:4:48;1170:12074:55;;;;;;;;;;1797:53:153;;;;;;:::i;3954:90:48:-;3998:46;1170:12074:55;;3998:46:48;;;1170:12074:55;3998:46:48;;;1170:12074:55;;;;;;;;;;;3998:46:48;3714:230;3766:9;;;;3757:18;;3753:75;;3920:13;:::o;3753:75::-;3784:44;1170:12074:55;;3784:44:48;;;1170:12074:55;3784:44:48;;;1170:12074:55;;;;;;;;;;;3784:44:48;3639:65;3663:41;1170:12074:55;;3663:41:48;;;1170:12074:55;3663:41:48;;;1170:12074:55;;;;;;;;;;;3663:41:48;1170:12074:55;;;;;;;;:::o;:::-;;;;;;;;4964:220:99;1170:12074:55;;5147:30:99;4964:220;1170:12074:55;;;1782:71:99;1170:12074:55;;;1782:71:99;1170:12074:55;;;;;;5147:30:99;4964:220::o;4671:193:48:-;;1170:12074:55;;4767:19:48;;;4763:46;;1170:12074:55;4826:31:48;1170:12074:55;;;;4826:31:48;;;;;1170:12074:55;4826:31:48;;1170:12074:55;4826:31:48;;;1170:12074:55;4826:31:48;;;;;;;1170:12074:55;4826:31:48;;;4819:38;4671:193;:::o;4826:31::-;;;1170:12074:55;4826:31:48;;1170:12074:55;4826:31:48;;;;;;1170:12074:55;4826:31:48;;;:::i;:::-;;;1170:12074:55;;;;;4671:193:48;:::o;4826:31::-;;;-1:-1:-1;4826:31:48;;4763:46;4795:14;;;4788:21;:::o;1170:12074:55:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1170:12074:55;;;;:::o;:::-;;;:::o;2838:201:48:-;;1170:12074:55;;2933:19:48;;2929:41;;1170:12074:55;;;2987:45:48;;1170:12074:55;;;;;2987:45:48;;;1170:12074:55;3026:4:48;1170:12074:55;;;;2987:45:48;;1170:12074:55;;;;;;2987:45:48;;;;;;;1170:12074:55;2987:45:48;;;2980:52;2838:201;:::o;2929:41::-;2961:9;;;2954:16;:::o;7084:141:101:-;1170:12074:55;8837:64:101;1170:12074:55;;;;7150:18:101;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:101;;-1:-1:-1;7191:17:101;7738:720:153;;-1:-1:-1;7875:421:153;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:153;;8310:15;;1170:12074:55;;;;8328:26:153;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1170:12074:55;8401:40:153;;-1:-1:-1;8401:40:153;1170:12074:55;8401:40:153;1170:12074:55;;-1:-1:-1;8401:40:153;8310:68;8377:1;8362:16;;8310:68;;4421:582:160;;4593:8;;-1:-1:-1;1170:12074:55;;5674:21:160;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1170:12074:55;;4841:22:160;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1170:12074:55;4917:24:160;;4862:1;4917:24;1170:12074:55;4917:24:160;1170:12074:55;;4862:1:160;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"51668":[{"start":2480,"length":32},{"start":2735,"length":32}],"5172":[{"start":1381,"length":32},{"start":4929,"length":32},{"start":8936,"length":32}],"5176":[{"start":3788,"length":32},{"start":7081,"length":32}]}},"methodIdentifiers":{"TOLLGATE()":"4b74c035","TREASURY()":"2d2c5565","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","createAgreement(uint256,address,address,address[],bytes)":"3f5d1b6f","disburse(address)":"1c8ce890","getAgreement(uint256)":"4f9f6fe6","getLedgerBalance(address,address)":"d949b844","getTreasuryAddress()":"e0024604","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","previewAgreement(uint256,address,address,address[],bytes)":"29f780e3","proxiableUUID()":"52d1902d","quitAgreement(uint256)":"2182b231","setAuthority(address)":"7a9e5e4b","settleAgreement(uint256,address)":"e5f5677a","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"tollgate\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"message\",\"type\":\"string\"}],\"name\":\"InvalidAgreementOp\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAgreementProof\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"invalidAddress\",\"type\":\"address\"}],\"name\":\"InvalidTreasuryAddress\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"InvalidUnauthorizedDisbursement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementCancelled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"counterparty\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"AgreementSettled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FeesDisbursed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"TOLLGATE\",\"outputs\":[{\"internalType\":\"contract ITollgate\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"TREASURY\",\"outputs\":[{\"internalType\":\"contract ITreasury\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"createAgreement\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"disburse\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"getAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasuryAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"previewAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"}],\"name\":\"quitAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"counterparty\",\"type\":\"address\"}],\"name\":\"settleAgreement\",\"outputs\":[{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidAgreementOp(string)\":[{\"details\":\"Custom error thrown for invalid operations on an agreement, with a descriptive message.\",\"params\":{\"message\":\"A string explaining the invalid operation.\"}}],\"InvalidAgreementProof()\":[{\"details\":\"Custom error thrown when the provided proof for an agreement is invalid.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidTreasuryAddress(address)\":[{\"params\":{\"invalidAddress\":\"The invalid treasury address.\"}}],\"InvalidUnauthorizedDisbursement(address)\":[{\"params\":{\"caller\":\"The unauthorized address attempting the disbursement.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AgreementCancelled(address,uint256)\":{\"params\":{\"initiator\":\"The account that initiated the cancellation.\",\"proof\":\"The unique identifier (hash or proof) of the canceled agreement.\"}},\"AgreementCreated(address,uint256)\":{\"params\":{\"initiator\":\"The account that initiated or created the agreement.\",\"proof\":\"The unique identifier (hash or proof) of the created agreement.\"}},\"AgreementSettled(address,address,uint256)\":{\"params\":{\"broker\":\"The account that facilitated the agreement settlement.\",\"proof\":\"The unique identifier (hash or proof) of the settled agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FeesDisbursed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of fees being disbursed.\",\"currency\":\"The currency used for the disbursement.\",\"target\":\"The address receiving the disbursed fees.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"createAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The total amount committed.\",\"broker\":\"The authorized account to manage the agreement.\",\"currency\":\"The currency used for the agreement.\",\"parties\":\"The parties in the agreement.\",\"payload\":\"Additional data for execution.\"}},\"disburse(address)\":{\"details\":\"This function can only be called by the treasury. It transfers the full balance of the specified currency.\",\"params\":{\"currency\":\"The address of the ERC20 token to disburse.\"}},\"getAgreement(uint256)\":{\"params\":{\"proof\":\"The unique identifier (hash) of the agreement.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"getTreasuryAddress()\":{\"returns\":{\"_0\":\"The address of the treasury.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"previewAgreement(uint256,address,address,address[],bytes)\":{\"params\":{\"amount\":\"The total amount committed.\",\"broker\":\"The authorized account to manage the agreement.\",\"currency\":\"The currency used for the agreement.\",\"parties\":\"The parties in the agreement.\",\"payload\":\"Additional data for execution.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"quitAgreement(uint256)\":{\"params\":{\"proof\":\"The unique identifier of the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"settleAgreement(uint256,address)\":{\"params\":{\"counterparty\":\"The address that will receive the funds upon settlement.\",\"proof\":\"The unique identifier of the agreement.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"TOLLGATE\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"TREASURY\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"InvalidTreasuryAddress(address)\":[{\"notice\":\"Error thrown when an invalid treasury address is provided.\"}],\"InvalidUnauthorizedDisbursement(address)\":[{\"notice\":\"Error thrown when an unauthorized address attempts a disbursement.\"}]},\"events\":{\"AgreementCancelled(address,uint256)\":{\"notice\":\"Emitted when an agreement is canceled by the broker or another authorized account.\"},\"AgreementCreated(address,uint256)\":{\"notice\":\"Emitted when an agreement is created.\"},\"AgreementSettled(address,address,uint256)\":{\"notice\":\"Emitted when an agreement is settled by the designated broker or authorized account.\"},\"FeesDisbursed(address,uint256,address)\":{\"notice\":\"Emitted when fees are disbursed to the treasury.\"}},\"kind\":\"user\",\"methods\":{\"createAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and stores a new agreement.\"},\"disburse(address)\":{\"notice\":\"Disburses all collected funds of a specified currency from the contract to the treasury.\"},\"getAgreement(uint256)\":{\"notice\":\"Retrieves the details of an agreement based on the provided proof.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"getTreasuryAddress()\":{\"notice\":\"Returns the current address of the treasury.\"},\"initialize(address)\":{\"notice\":\"Initialize the proxy state.\"},\"previewAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Previews an agreement by calculating fees and returning the agreement terms without committing them.\"},\"quitAgreement(uint256)\":{\"notice\":\"Allows the initiator to quit the agreement and receive the committed funds.\"},\"settleAgreement(uint256,address)\":{\"notice\":\"Settles an agreement by marking it inactive and transferring funds to the counterparty.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rightsmanager/RightsAccessAgreement.sol\":\"RightsAccessAgreement\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/base/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xa69389a8507ce5ad3e62dd6ed4da92b7c21cd2f1cc69b050fe4d4a4b868632bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e4db9871c08bec940fc926cab5589a937f01d5fe24a5efc33faf6b8eddc76a6d\",\"dweb:/ipfs/QmNRrjxUaEBMTCB6Hd28hu3jXAh6ezWjBgh8vBuQ3d6PCt\"]},\"contracts/base/upgradeable/FeesCollectorUpgradeable.sol\":{\"keccak256\":\"0xfd1de4f94d082cf6bf2e4bb2afbce841a10ae16c030d0f770c7e596f465c8373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7fb3a221924db3e16d534d48623e36ab3701f598ee7abbb8e34c0f277a710bbc\",\"dweb:/ipfs/QmUqMY7MyemYJAiKBdXns9UH293zG6NLNw5xZyTXruL2hz\"]},\"contracts/base/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x496218449b745692a6c4c92649092cb637ec54c7a75ee8850c1edc0180ffb2f0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1272de213f220f1a487e91dd35feffc3dfc1664d2babb468312ccc75a36adbf2\",\"dweb:/ipfs/QmdSRyQ7oUveMnaCn1Ftoy5Z45AWftoRzfEHNA6ktrtsWD\"]},\"contracts/interfaces/IBalanceWithdrawable.sol\":{\"keccak256\":\"0xa34d07f92aa63e54777e7fd7cd69cc18fe19953ef95065b0c46071d68a453d8a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0eb2d5b0c8451aab1e18958c3fbb8fcc68b456f0911087546d8a61672d03b5a9\",\"dweb:/ipfs/QmP18cyPcwyoQhCATSgFodFguKUf73ETRpRf5cKWSt7C1F\"]},\"contracts/interfaces/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/interfaces/economics/IFeesCollector.sol\":{\"keccak256\":\"0x226b8425659facb7fcd78b2a9af6d5327011d97bde1eebf9396da78bbbe86175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34c52e857b76f530f0870a978e83005246afb1a6c4537507f0df97a6a7a2cf06\",\"dweb:/ipfs/QmaWhfcsR4m9P38a6QisEkSJBiaoDUU1Jwfiqu4vPZ4fXV\"]},\"contracts/interfaces/economics/ITollgate.sol\":{\"keccak256\":\"0x2796e60afda619c5e9dc3be8d644c10128d6c36fe60d1e8006e62831620612a2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://528dc38499681484bff7554b4e40c108b8984afb3e2f104372e5e0ee60e6addb\",\"dweb:/ipfs/QmVabq6s7V76YdNW7fR6DZuXDJyLgPRgLEwomZh9YhQpUj\"]},\"contracts/interfaces/economics/ITreasury.sol\":{\"keccak256\":\"0x19c47ce91c6a64ec1aa3b6c1c3c1ad39a3f8fd0967ccb2054b92b164c36bec53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f0d31f9b8d5a5e0e90fd69b624f63b441d2df07232d4630ee8277c290ed68c1\",\"dweb:/ipfs/QmNSmwi2s4Y8zu9AapoT3st6JACYxBJ4Twm51ii3e2tszo\"]},\"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol\":{\"keccak256\":\"0x07ce599930cfe854cc721d55b15a358fe169986d2e064a1247f0375895d237b7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2c36c4c1e5cf441f515ef1690de569e4d063c34d538cc53e162558546c924f65\",\"dweb:/ipfs/QmVmUWGCn1zEVN9NcPibRWek6HnrSgVodtRb3KTGSJ92ns\"]},\"contracts/libraries/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"contracts/libraries/FeesOps.sol\":{\"keccak256\":\"0xe3b65580cadc54674b72d12836b3b285e675c7dfd52fb399d1310ee9c2beb474\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1bed84275f8774f1573740575f938e52870450b0b285feba86efe6327e1fba0b\",\"dweb:/ipfs/QmRpD6xnEBteUv2jgzHbuU6t4ZigxDbpisnUKhrwYv6HNZ\"]},\"contracts/libraries/TreasuryOps.sol\":{\"keccak256\":\"0xc49abdcd0e6746c50243d43bb61cded08156b6897c20edf3872e32552782ffd6\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://4488b9708e69ec9da725d3b66e38a56754769ae217e50cc05ed9b9feef035e21\",\"dweb:/ipfs/QmdQJSgT7fx4B7fWzsuqaG6toUhKtRAqJAnfd2Jd9Nw1p9\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"contracts/rightsmanager/RightsAccessAgreement.sol\":{\"keccak256\":\"0xf48871916512fba10476f5c47ea5d4da2084ee48d84eaa27ed523c76310e4e62\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5301149b0114013335ebf910d47a0432f53932d081134490bbcda89e91aff135\",\"dweb:/ipfs/QmXL5VZN4mdWc6nBwb6SPjLG1qk3BGn7YN78FEURvQBf7a\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"treasury","type":"address"},{"internalType":"address","name":"tollgate","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[{"internalType":"string","name":"message","type":"string"}],"type":"error","name":"InvalidAgreementOp"},{"inputs":[],"type":"error","name":"InvalidAgreementProof"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"invalidAddress","type":"address"}],"type":"error","name":"InvalidTreasuryAddress"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"InvalidUnauthorizedDisbursement"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementCancelled","anonymous":false},{"inputs":[{"internalType":"address","name":"initiator","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"broker","type":"address","indexed":true},{"internalType":"address","name":"counterparty","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false}],"type":"event","name":"AgreementSettled","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"target","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FeesDisbursed","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"TOLLGATE","outputs":[{"internalType":"contract ITollgate","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"TREASURY","outputs":[{"internalType":"contract ITreasury","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"createAgreement","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"disburse","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasuryAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"view","type":"function","name":"previewAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"quitAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"uint256","name":"proof","type":"uint256"},{"internalType":"address","name":"counterparty","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"settleAgreement","outputs":[{"internalType":"struct T.Agreement","name":"","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"createAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The total amount committed.","broker":"The authorized account to manage the agreement.","currency":"The currency used for the agreement.","parties":"The parties in the agreement.","payload":"Additional data for execution."}},"disburse(address)":{"details":"This function can only be called by the treasury. It transfers the full balance of the specified currency.","params":{"currency":"The address of the ERC20 token to disburse."}},"getAgreement(uint256)":{"params":{"proof":"The unique identifier (hash) of the agreement."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"getTreasuryAddress()":{"returns":{"_0":"The address of the treasury."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"previewAgreement(uint256,address,address,address[],bytes)":{"params":{"amount":"The total amount committed.","broker":"The authorized account to manage the agreement.","currency":"The currency used for the agreement.","parties":"The parties in the agreement.","payload":"Additional data for execution."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"quitAgreement(uint256)":{"params":{"proof":"The unique identifier of the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"settleAgreement(uint256,address)":{"params":{"counterparty":"The address that will receive the funds upon settlement.","proof":"The unique identifier of the agreement."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"createAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and stores a new agreement."},"disburse(address)":{"notice":"Disburses all collected funds of a specified currency from the contract to the treasury."},"getAgreement(uint256)":{"notice":"Retrieves the details of an agreement based on the provided proof."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"getTreasuryAddress()":{"notice":"Returns the current address of the treasury."},"initialize(address)":{"notice":"Initialize the proxy state."},"previewAgreement(uint256,address,address,address[],bytes)":{"notice":"Previews an agreement by calculating fees and returning the agreement terms without committing them."},"quitAgreement(uint256)":{"notice":"Allows the initiator to quit the agreement and receive the committed funds."},"settleAgreement(uint256,address)":{"notice":"Settles an agreement by marking it inactive and transferring funds to the counterparty."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rightsmanager/RightsAccessAgreement.sol":"RightsAccessAgreement"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/base/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xa69389a8507ce5ad3e62dd6ed4da92b7c21cd2f1cc69b050fe4d4a4b868632bd","urls":["bzz-raw://e4db9871c08bec940fc926cab5589a937f01d5fe24a5efc33faf6b8eddc76a6d","dweb:/ipfs/QmNRrjxUaEBMTCB6Hd28hu3jXAh6ezWjBgh8vBuQ3d6PCt"],"license":"MIT"},"contracts/base/upgradeable/FeesCollectorUpgradeable.sol":{"keccak256":"0xfd1de4f94d082cf6bf2e4bb2afbce841a10ae16c030d0f770c7e596f465c8373","urls":["bzz-raw://7fb3a221924db3e16d534d48623e36ab3701f598ee7abbb8e34c0f277a710bbc","dweb:/ipfs/QmUqMY7MyemYJAiKBdXns9UH293zG6NLNw5xZyTXruL2hz"],"license":"MIT"},"contracts/base/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x496218449b745692a6c4c92649092cb637ec54c7a75ee8850c1edc0180ffb2f0","urls":["bzz-raw://1272de213f220f1a487e91dd35feffc3dfc1664d2babb468312ccc75a36adbf2","dweb:/ipfs/QmdSRyQ7oUveMnaCn1Ftoy5Z45AWftoRzfEHNA6ktrtsWD"],"license":"MIT"},"contracts/interfaces/IBalanceWithdrawable.sol":{"keccak256":"0xa34d07f92aa63e54777e7fd7cd69cc18fe19953ef95065b0c46071d68a453d8a","urls":["bzz-raw://0eb2d5b0c8451aab1e18958c3fbb8fcc68b456f0911087546d8a61672d03b5a9","dweb:/ipfs/QmP18cyPcwyoQhCATSgFodFguKUf73ETRpRf5cKWSt7C1F"],"license":"MIT"},"contracts/interfaces/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/interfaces/economics/IFeesCollector.sol":{"keccak256":"0x226b8425659facb7fcd78b2a9af6d5327011d97bde1eebf9396da78bbbe86175","urls":["bzz-raw://34c52e857b76f530f0870a978e83005246afb1a6c4537507f0df97a6a7a2cf06","dweb:/ipfs/QmaWhfcsR4m9P38a6QisEkSJBiaoDUU1Jwfiqu4vPZ4fXV"],"license":"MIT"},"contracts/interfaces/economics/ITollgate.sol":{"keccak256":"0x2796e60afda619c5e9dc3be8d644c10128d6c36fe60d1e8006e62831620612a2","urls":["bzz-raw://528dc38499681484bff7554b4e40c108b8984afb3e2f104372e5e0ee60e6addb","dweb:/ipfs/QmVabq6s7V76YdNW7fR6DZuXDJyLgPRgLEwomZh9YhQpUj"],"license":"MIT"},"contracts/interfaces/economics/ITreasury.sol":{"keccak256":"0x19c47ce91c6a64ec1aa3b6c1c3c1ad39a3f8fd0967ccb2054b92b164c36bec53","urls":["bzz-raw://6f0d31f9b8d5a5e0e90fd69b624f63b441d2df07232d4630ee8277c290ed68c1","dweb:/ipfs/QmNSmwi2s4Y8zu9AapoT3st6JACYxBJ4Twm51ii3e2tszo"],"license":"MIT"},"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol":{"keccak256":"0x07ce599930cfe854cc721d55b15a358fe169986d2e064a1247f0375895d237b7","urls":["bzz-raw://2c36c4c1e5cf441f515ef1690de569e4d063c34d538cc53e162558546c924f65","dweb:/ipfs/QmVmUWGCn1zEVN9NcPibRWek6HnrSgVodtRb3KTGSJ92ns"],"license":"MIT"},"contracts/libraries/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"contracts/libraries/FeesOps.sol":{"keccak256":"0xe3b65580cadc54674b72d12836b3b285e675c7dfd52fb399d1310ee9c2beb474","urls":["bzz-raw://1bed84275f8774f1573740575f938e52870450b0b285feba86efe6327e1fba0b","dweb:/ipfs/QmRpD6xnEBteUv2jgzHbuU6t4ZigxDbpisnUKhrwYv6HNZ"],"license":"MIT"},"contracts/libraries/TreasuryOps.sol":{"keccak256":"0xc49abdcd0e6746c50243d43bb61cded08156b6897c20edf3872e32552782ffd6","urls":["bzz-raw://4488b9708e69ec9da725d3b66e38a56754769ae217e50cc05ed9b9feef035e21","dweb:/ipfs/QmdQJSgT7fx4B7fWzsuqaG6toUhKtRAqJAnfd2Jd9Nw1p9"],"license":"GPL-3.0-or-later"},"contracts/libraries/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"contracts/rightsmanager/RightsAccessAgreement.sol":{"keccak256":"0xf48871916512fba10476f5c47ea5d4da2084ee48d84eaa27ed523c76310e4e62","urls":["bzz-raw://5301149b0114013335ebf910d47a0432f53932d081134490bbcda89e91aff135","dweb:/ipfs/QmXL5VZN4mdWc6nBwb6SPjLG1qk3BGn7YN78FEURvQBf7a"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5181,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"_agreements","offset":0,"slot":"0","type":"t_mapping(t_uint256,t_struct(Agreement)3673_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_uint256,t_struct(Agreement)3673_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct T.Agreement)","numberOfBytes":"32","value":"t_struct(Agreement)3673_storage"},"t_struct(Agreement)3673_storage":{"encoding":"inplace","label":"struct T.Agreement","numberOfBytes":"288","members":[{"astId":3653,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"active","offset":0,"slot":"0","type":"t_bool"},{"astId":3655,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"broker","offset":1,"slot":"0","type":"t_address"},{"astId":3657,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"currency","offset":0,"slot":"1","type":"t_address"},{"astId":3659,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"initiator","offset":0,"slot":"2","type":"t_address"},{"astId":3661,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"createdAt","offset":0,"slot":"3","type":"t_uint256"},{"astId":3663,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"amount","offset":0,"slot":"4","type":"t_uint256"},{"astId":3665,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"fees","offset":0,"slot":"5","type":"t_uint256"},{"astId":3667,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"available","offset":0,"slot":"6","type":"t_uint256"},{"astId":3670,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"parties","offset":0,"slot":"7","type":"t_array(t_address)dyn_storage"},{"astId":3672,"contract":"contracts/rightsmanager/RightsAccessAgreement.sol:RightsAccessAgreement","label":"payload","offset":0,"slot":"8","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rightsmanager/RightsAccessAgreement.sol","id":5722,"exportedSymbols":{"AccessControlledUpgradeable":[981],"FeesCollectorUpgradeable":[1168],"FeesOps":[3338],"IRightsAccessAgreement":[2905],"ITollgate":[2653],"ITreasury":[2698],"Initializable":[51648],"ReentrancyGuardTransientUpgradeable":[53739],"RightsAccessAgreement":[5721],"T":[3707],"TreasuryOps":[3636],"UUPSUpgradeable":[51830]},"nodeType":"SourceUnit","src":"124:13121:55","nodes":[{"id":5128,"nodeType":"PragmaDirective","src":"124:23:55","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5130,"nodeType":"ImportDirective","src":"149:98:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":51649,"symbolAliases":[{"foreign":{"id":5129,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51648,"src":"158:13:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ImportDirective","src":"248:102:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":51831,"symbolAliases":[{"foreign":{"id":5131,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51830,"src":"257:15:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5134,"nodeType":"ImportDirective","src":"351:105:55","nodes":[],"absolutePath":"contracts/base/upgradeable/AccessControlledUpgradeable.sol","file":"contracts/base/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":982,"symbolAliases":[{"foreign":{"id":5133,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":981,"src":"360:27:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5136,"nodeType":"ImportDirective","src":"502:136:55","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":53740,"symbolAliases":[{"foreign":{"id":5135,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53739,"src":"511:35:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5138,"nodeType":"ImportDirective","src":"639:99:55","nodes":[],"absolutePath":"contracts/base/upgradeable/FeesCollectorUpgradeable.sol","file":"contracts/base/upgradeable/FeesCollectorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":1169,"symbolAliases":[{"foreign":{"id":5137,"name":"FeesCollectorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1168,"src":"648:24:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5140,"nodeType":"ImportDirective","src":"740:103:55","nodes":[],"absolutePath":"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol","file":"contracts/interfaces/rightsmanager/IRightsAccessAgreement.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2906,"symbolAliases":[{"foreign":{"id":5139,"name":"IRightsAccessAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2905,"src":"749:22:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5142,"nodeType":"ImportDirective","src":"844:73:55","nodes":[],"absolutePath":"contracts/interfaces/economics/ITollgate.sol","file":"contracts/interfaces/economics/ITollgate.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2654,"symbolAliases":[{"foreign":{"id":5141,"name":"ITollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"853:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5144,"nodeType":"ImportDirective","src":"918:73:55","nodes":[],"absolutePath":"contracts/interfaces/economics/ITreasury.sol","file":"contracts/interfaces/economics/ITreasury.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":2699,"symbolAliases":[{"foreign":{"id":5143,"name":"ITreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"927:9:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5146,"nodeType":"ImportDirective","src":"992:66:55","nodes":[],"absolutePath":"contracts/libraries/TreasuryOps.sol","file":"contracts/libraries/TreasuryOps.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3637,"symbolAliases":[{"foreign":{"id":5145,"name":"TreasuryOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3636,"src":"1001:11:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5148,"nodeType":"ImportDirective","src":"1059:58:55","nodes":[],"absolutePath":"contracts/libraries/FeesOps.sol","file":"contracts/libraries/FeesOps.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3339,"symbolAliases":[{"foreign":{"id":5147,"name":"FeesOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3338,"src":"1068:7:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5150,"nodeType":"ImportDirective","src":"1118:50:55","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"contracts/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":5722,"sourceUnit":3708,"symbolAliases":[{"foreign":{"id":5149,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"1127:1:55","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5721,"nodeType":"ContractDefinition","src":"1170:12074:55","nodes":[{"id":5165,"nodeType":"UsingForDirective","src":"1381:26:55","nodes":[],"global":false,"libraryName":{"id":5163,"name":"FeesOps","nameLocations":["1387:7:55"],"nodeType":"IdentifierPath","referencedDeclaration":3338,"src":"1387:7:55"},"typeName":{"id":5164,"name":"uint256","nodeType":"ElementaryTypeName","src":"1399:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5168,"nodeType":"UsingForDirective","src":"1412:30:55","nodes":[],"global":false,"libraryName":{"id":5166,"name":"TreasuryOps","nameLocations":["1418:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":3636,"src":"1418:11:55"},"typeName":{"id":5167,"name":"address","nodeType":"ElementaryTypeName","src":"1434:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":5172,"nodeType":"VariableDeclaration","src":"1837:35:55","nodes":[],"constant":false,"documentation":{"id":5169,"nodeType":"StructuredDocumentation","src":"1771:61:55","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"2d2c5565","mutability":"immutable","name":"TREASURY","nameLocation":"1864:8:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"},"typeName":{"id":5171,"nodeType":"UserDefinedTypeName","pathNode":{"id":5170,"name":"ITreasury","nameLocations":["1837:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":2698,"src":"1837:9:55"},"referencedDeclaration":2698,"src":"1837:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"visibility":"public"},{"id":5176,"nodeType":"VariableDeclaration","src":"1944:35:55","nodes":[],"constant":false,"documentation":{"id":5173,"nodeType":"StructuredDocumentation","src":"1878:61:55","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"4b74c035","mutability":"immutable","name":"TOLLGATE","nameLocation":"1971:8:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"},"typeName":{"id":5175,"nodeType":"UserDefinedTypeName","pathNode":{"id":5174,"name":"ITollgate","nameLocations":["1944:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":2653,"src":"1944:9:55"},"referencedDeclaration":2653,"src":"1944:9:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"visibility":"public"},{"id":5181,"nodeType":"VariableDeclaration","src":"2227:51:55","nodes":[],"constant":false,"mutability":"mutable","name":"_agreements","nameLocation":"2267:11:55","scope":5721,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement)"},"typeName":{"id":5180,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5177,"name":"uint256","nodeType":"ElementaryTypeName","src":"2235:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"2227:31:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5179,"nodeType":"UserDefinedTypeName","pathNode":{"id":5178,"name":"T.Agreement","nameLocations":["2246:1:55","2248:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"2246:11:55"},"referencedDeclaration":3673,"src":"2246:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}}},"visibility":"private"},{"id":5188,"nodeType":"EventDefinition","src":"2502:65:55","nodes":[],"anonymous":false,"documentation":{"id":5182,"nodeType":"StructuredDocumentation","src":"2285:212:55","text":"@notice Emitted when an agreement is created.\n @param initiator The account that initiated or created the agreement.\n @param proof The unique identifier (hash or proof) of the created agreement."},"eventSelector":"b649569e5c9bb3f3eb7cc2fd396f5abc452ec3f6f6e2d62638b48d3e7fa599ca","name":"AgreementCreated","nameLocation":"2508:16:55","parameters":{"id":5187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5184,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"2541:9:55","nodeType":"VariableDeclaration","scope":5188,"src":"2525:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5183,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5186,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2560:5:55","nodeType":"VariableDeclaration","scope":5188,"src":"2552:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5185,"name":"uint256","nodeType":"ElementaryTypeName","src":"2552:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2524:42:55"}},{"id":5197,"nodeType":"EventDefinition","src":"2836:92:55","nodes":[],"anonymous":false,"documentation":{"id":5189,"nodeType":"StructuredDocumentation","src":"2573:258:55","text":"@notice Emitted when an agreement is settled by the designated broker or authorized account.\n @param broker The account that facilitated the agreement settlement.\n @param proof The unique identifier (hash or proof) of the settled agreement."},"eventSelector":"4ee820438d9a88f87a3ce7b61be7ebc31585a98ffd36ac2cbfd9b3452c2bbbe6","name":"AgreementSettled","nameLocation":"2842:16:55","parameters":{"id":5196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5191,"indexed":true,"mutability":"mutable","name":"broker","nameLocation":"2875:6:55","nodeType":"VariableDeclaration","scope":5197,"src":"2859:22:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5190,"name":"address","nodeType":"ElementaryTypeName","src":"2859:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5193,"indexed":true,"mutability":"mutable","name":"counterparty","nameLocation":"2899:12:55","nodeType":"VariableDeclaration","scope":5197,"src":"2883:28:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5192,"name":"address","nodeType":"ElementaryTypeName","src":"2883:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5195,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2921:5:55","nodeType":"VariableDeclaration","scope":5197,"src":"2913:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5194,"name":"uint256","nodeType":"ElementaryTypeName","src":"2913:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2858:69:55"}},{"id":5204,"nodeType":"EventDefinition","src":"3189:67:55","nodes":[],"anonymous":false,"documentation":{"id":5198,"nodeType":"StructuredDocumentation","src":"2934:250:55","text":"@notice Emitted when an agreement is canceled by the broker or another authorized account.\n @param initiator The account that initiated the cancellation.\n @param proof The unique identifier (hash or proof) of the canceled agreement."},"eventSelector":"fab2b7f82959aa58a83804666a6c0eb98ef4ec938a314db9f0c72bfbb37f05ae","name":"AgreementCancelled","nameLocation":"3195:18:55","parameters":{"id":5203,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5200,"indexed":true,"mutability":"mutable","name":"initiator","nameLocation":"3230:9:55","nodeType":"VariableDeclaration","scope":5204,"src":"3214:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5199,"name":"address","nodeType":"ElementaryTypeName","src":"3214:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5202,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"3249:5:55","nodeType":"VariableDeclaration","scope":5204,"src":"3241:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3241:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3213:42:55"}},{"id":5207,"nodeType":"ErrorDefinition","src":"3348:30:55","nodes":[],"documentation":{"id":5205,"nodeType":"StructuredDocumentation","src":"3262:81:55","text":"@dev Custom error thrown when the provided proof for an agreement is invalid."},"errorSelector":"a5fa8550","name":"InvalidAgreementProof","nameLocation":"3354:21:55","parameters":{"id":5206,"nodeType":"ParameterList","parameters":[],"src":"3375:2:55"}},{"id":5212,"nodeType":"ErrorDefinition","src":"3551:41:55","nodes":[],"documentation":{"id":5208,"nodeType":"StructuredDocumentation","src":"3384:162:55","text":"@dev Custom error thrown for invalid operations on an agreement, with a descriptive message.\n @param message A string explaining the invalid operation."},"errorSelector":"7884ed9b","name":"InvalidAgreementOp","nameLocation":"3557:18:55","parameters":{"id":5211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5210,"mutability":"mutable","name":"message","nameLocation":"3583:7:55","nodeType":"VariableDeclaration","scope":5212,"src":"3576:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5209,"name":"string","nodeType":"ElementaryTypeName","src":"3576:6:55","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"3575:16:55"}},{"id":5245,"nodeType":"ModifierDefinition","src":"3694:271:55","nodes":[],"body":{"id":5244,"nodeType":"Block","src":"3737:228:55","nodes":[],"statements":[{"assignments":[5221],"declarations":[{"constant":false,"id":5221,"mutability":"mutable","name":"agreement","nameLocation":"3766:9:55","nodeType":"VariableDeclaration","scope":5244,"src":"3747:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5220,"nodeType":"UserDefinedTypeName","pathNode":{"id":5219,"name":"T.Agreement","nameLocations":["3747:1:55","3749:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"3747:11:55"},"referencedDeclaration":3673,"src":"3747:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5225,"initialValue":{"arguments":[{"id":5223,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5215,"src":"3791:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5222,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"3778:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3778:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"3747:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3811:17:55","subExpression":{"expression":{"id":5226,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"3812:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3822:6:55","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":3653,"src":"3812:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5229,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5221,"src":"3832:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3842:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"3832:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":5233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3863:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":5232,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3855:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5231,"name":"address","nodeType":"ElementaryTypeName","src":"3855:7:55","typeDescriptions":{}}},"id":5234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3855:10:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3832:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3811:54:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5242,"nodeType":"IfStatement","src":"3807:141:55","trueBody":{"id":5241,"nodeType":"Block","src":"3867:81:55","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c696420696e6163746976652061677265656d656e742e","id":5238,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3907:29:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_c62b98ea997536b712277174ea3c883d00112048cf77ca98f117eb4a27c3bbaf","typeString":"literal_string \"Invalid inactive agreement.\""},"value":"Invalid inactive agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c62b98ea997536b712277174ea3c883d00112048cf77ca98f117eb4a27c3bbaf","typeString":"literal_string \"Invalid inactive agreement.\""}],"id":5237,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"3888:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3888:49:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5240,"nodeType":"RevertStatement","src":"3881:56:55"}]}},{"id":5243,"nodeType":"PlaceholderStatement","src":"3957:1:55"}]},"documentation":{"id":5213,"nodeType":"StructuredDocumentation","src":"3598:91:55","text":"@notice Ensures the agreement associated with the provided `proof` is valid and active."},"name":"onlyValidAgreement","nameLocation":"3703:18:55","parameters":{"id":5216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5215,"mutability":"mutable","name":"proof","nameLocation":"3730:5:55","nodeType":"VariableDeclaration","scope":5245,"src":"3722:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5214,"name":"uint256","nodeType":"ElementaryTypeName","src":"3722:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3721:15:55"},"virtual":false,"visibility":"internal"},{"id":5269,"nodeType":"FunctionDefinition","src":"4024:427:55","nodes":[],"body":{"id":5268,"nodeType":"Block","src":"4072:379:55","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5253,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51616,"src":"4272:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4272:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5255,"nodeType":"ExpressionStatement","src":"4272:22:55"},{"expression":{"id":5260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5256,"name":"TOLLGATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"4374:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5258,"name":"tollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5250,"src":"4395:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5257,"name":"ITollgate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2653,"src":"4385:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITollgate_$2653_$","typeString":"type(contract ITollgate)"}},"id":5259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4385:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"src":"4374:30:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"id":5261,"nodeType":"ExpressionStatement","src":"4374:30:55"},{"expression":{"id":5266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5262,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"4414:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5264,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5248,"src":"4435:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5263,"name":"ITreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2698,"src":"4425:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITreasury_$2698_$","typeString":"type(contract ITreasury)"}},"id":5265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4425:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"src":"4414:30:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"id":5267,"nodeType":"ExpressionStatement","src":"4414:30:55"}]},"documentation":{"id":5246,"nodeType":"StructuredDocumentation","src":"3971:48:55","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5248,"mutability":"mutable","name":"treasury","nameLocation":"4044:8:55","nodeType":"VariableDeclaration","scope":5269,"src":"4036:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5247,"name":"address","nodeType":"ElementaryTypeName","src":"4036:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5250,"mutability":"mutable","name":"tollgate","nameLocation":"4062:8:55","nodeType":"VariableDeclaration","scope":5269,"src":"4054:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5249,"name":"address","nodeType":"ElementaryTypeName","src":"4054:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4035:36:55"},"returnParameters":{"id":5252,"nodeType":"ParameterList","parameters":[],"src":"4072:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"4493:243:55","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"4555:181:55","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5277,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51702,"src":"4565:22:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4565:24:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5279,"nodeType":"ExpressionStatement","src":"4565:24:55"},{"expression":{"arguments":[{"id":5281,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5272,"src":"4623:13:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5280,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":916,"src":"4599:23:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4599:38:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5283,"nodeType":"ExpressionStatement","src":"4599:38:55"},{"expression":{"arguments":[{"arguments":[{"id":5287,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"4676:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}],"id":5286,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4668:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5285,"name":"address","nodeType":"ElementaryTypeName","src":"4668:7:55","typeDescriptions":{}}},"id":5288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4668:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5284,"name":"__FeesCollector_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1115,"src":"4647:20:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4647:39:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5290,"nodeType":"ExpressionStatement","src":"4647:39:55"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5291,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53688,"src":"4696:31:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4696:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5293,"nodeType":"ExpressionStatement","src":"4696:33:55"}]},"documentation":{"id":5270,"nodeType":"StructuredDocumentation","src":"4457:31:55","text":"Initialize the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5275,"kind":"modifierInvocation","modifierName":{"id":5274,"name":"initializer","nameLocations":["4543:11:55"],"nodeType":"IdentifierPath","referencedDeclaration":51502,"src":"4543:11:55"},"nodeType":"ModifierInvocation","src":"4543:11:55"}],"name":"initialize","nameLocation":"4502:10:55","parameters":{"id":5273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5272,"mutability":"mutable","name":"accessManager","nameLocation":"4521:13:55","nodeType":"VariableDeclaration","scope":5295,"src":"4513:21:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5271,"name":"address","nodeType":"ElementaryTypeName","src":"4513:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4512:23:55"},"returnParameters":{"id":5276,"nodeType":"ParameterList","parameters":[],"src":"4555:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5354,"nodeType":"FunctionDefinition","src":"5082:873:55","nodes":[],"body":{"id":5353,"nodeType":"Block","src":"5282:673:55","nodes":[],"statements":[{"assignments":[5313],"declarations":[{"constant":false,"id":5313,"mutability":"mutable","name":"confirmed","nameLocation":"5411:9:55","nodeType":"VariableDeclaration","scope":5353,"src":"5403:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5312,"name":"uint256","nodeType":"ElementaryTypeName","src":"5403:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5320,"initialValue":{"arguments":[{"id":5317,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5298,"src":"5446:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5318,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5300,"src":"5454:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"id":5314,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5423:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5427:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5423:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5434:11:55","memberName":"safeDeposit","nodeType":"MemberAccess","referencedDeclaration":3556,"src":"5423:22:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$attached_to$_t_address_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":5319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5423:40:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5403:60:55"},{"assignments":[5325],"declarations":[{"constant":false,"id":5325,"mutability":"mutable","name":"agreement","nameLocation":"5492:9:55","nodeType":"VariableDeclaration","scope":5353,"src":"5473:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5324,"nodeType":"UserDefinedTypeName","pathNode":{"id":5323,"name":"T.Agreement","nameLocations":["5473:1:55","5475:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"5473:11:55"},"referencedDeclaration":3673,"src":"5473:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5333,"initialValue":{"arguments":[{"id":5327,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5313,"src":"5521:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5328,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5300,"src":"5532:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5329,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5302,"src":"5542:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5330,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5305,"src":"5550:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":5331,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5307,"src":"5559:7:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":5326,"name":"previewAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5585,"src":"5504:16:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_bytes_calldata_ptr_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256,address,address,address[] calldata,bytes calldata) view returns (struct T.Agreement memory)"}},"id":5332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5504:63:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"5473:94:55"},{"assignments":[5335],"declarations":[{"constant":false,"id":5335,"mutability":"mutable","name":"proof","nameLocation":"5802:5:55","nodeType":"VariableDeclaration","scope":5353,"src":"5794:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5334,"name":"uint256","nodeType":"ElementaryTypeName","src":"5794:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5339,"initialValue":{"arguments":[{"id":5337,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5823:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"id":5336,"name":"_createProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5623,"src":"5810:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_struct$_Agreement_$3673_memory_ptr_$returns$_t_uint256_$","typeString":"function (struct T.Agreement memory) pure returns (uint256)"}},"id":5338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5810:23:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5794:39:55"},{"expression":{"arguments":[{"id":5341,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5859:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5342,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5325,"src":"5866:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"id":5340,"name":"_storeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5639,"src":"5843:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_struct$_Agreement_$3673_memory_ptr_$returns$__$","typeString":"function (uint256,struct T.Agreement memory)"}},"id":5343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5843:33:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5344,"nodeType":"ExpressionStatement","src":"5843:33:55"},{"eventCall":{"arguments":[{"expression":{"id":5346,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5908:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5912:6:55","memberName":"sender","nodeType":"MemberAccess","src":"5908:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5348,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5920:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5345,"name":"AgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5188,"src":"5891:16:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5891:35:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5350,"nodeType":"EmitStatement","src":"5886:40:55"},{"expression":{"id":5351,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5335,"src":"5943:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5311,"id":5352,"nodeType":"Return","src":"5936:12:55"}]},"baseFunctions":[2868],"documentation":{"id":5296,"nodeType":"StructuredDocumentation","src":"4742:335:55","text":"@notice Creates and stores a new agreement.\n @param amount The total amount committed.\n @param currency The currency used for the agreement.\n @param broker The authorized account to manage the agreement.\n @param parties The parties in the agreement.\n @param payload Additional data for execution."},"functionSelector":"3f5d1b6f","implemented":true,"kind":"function","modifiers":[],"name":"createAgreement","nameLocation":"5091:15:55","parameters":{"id":5308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5298,"mutability":"mutable","name":"amount","nameLocation":"5124:6:55","nodeType":"VariableDeclaration","scope":5354,"src":"5116:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5297,"name":"uint256","nodeType":"ElementaryTypeName","src":"5116:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5300,"mutability":"mutable","name":"currency","nameLocation":"5148:8:55","nodeType":"VariableDeclaration","scope":5354,"src":"5140:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5299,"name":"address","nodeType":"ElementaryTypeName","src":"5140:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5302,"mutability":"mutable","name":"broker","nameLocation":"5174:6:55","nodeType":"VariableDeclaration","scope":5354,"src":"5166:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5301,"name":"address","nodeType":"ElementaryTypeName","src":"5166:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5305,"mutability":"mutable","name":"parties","nameLocation":"5209:7:55","nodeType":"VariableDeclaration","scope":5354,"src":"5190:26:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5303,"name":"address","nodeType":"ElementaryTypeName","src":"5190:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5304,"nodeType":"ArrayTypeName","src":"5190:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5307,"mutability":"mutable","name":"payload","nameLocation":"5241:7:55","nodeType":"VariableDeclaration","scope":5354,"src":"5226:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5306,"name":"bytes","nodeType":"ElementaryTypeName","src":"5226:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5106:148:55"},"returnParameters":{"id":5311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5354,"src":"5273:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5309,"name":"uint256","nodeType":"ElementaryTypeName","src":"5273:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5272:9:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5435,"nodeType":"FunctionDefinition","src":"6114:901:55","nodes":[],"body":{"id":5434,"nodeType":"Block","src":"6229:786:55","nodes":[],"statements":[{"assignments":[5372],"declarations":[{"constant":false,"id":5372,"mutability":"mutable","name":"agreement","nameLocation":"6258:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6239:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5371,"nodeType":"UserDefinedTypeName","pathNode":{"id":5370,"name":"T.Agreement","nameLocations":["6239:1:55","6241:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"6239:11:55"},"referencedDeclaration":3673,"src":"6239:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5376,"initialValue":{"arguments":[{"id":5374,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6283:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5373,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"6270:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6270:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"6239:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5377,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6303:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6313:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"6303:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5379,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6326:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6330:6:55","memberName":"sender","nodeType":"MemberAccess","src":"6326:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6303:33:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5387,"nodeType":"IfStatement","src":"6299:132:55","trueBody":{"id":5386,"nodeType":"Block","src":"6338:93:55","statements":[{"errorCall":{"arguments":[{"hexValue":"4f6e6c7920696e69746961746f722063616e20636c6f7365207468652061677265656d656e742e","id":5383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6378:41:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_68736425e255bc550a198c5bfe11944856edaeb40ebc7ab0c22161e01fdbc2c0","typeString":"literal_string \"Only initiator can close the agreement.\""},"value":"Only initiator can close the agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_68736425e255bc550a198c5bfe11944856edaeb40ebc7ab0c22161e01fdbc2c0","typeString":"literal_string \"Only initiator can close the agreement.\""}],"id":5382,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"6359:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6359:61:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5385,"nodeType":"RevertStatement","src":"6352:68:55"}]}},{"assignments":[5389],"declarations":[{"constant":false,"id":5389,"mutability":"mutable","name":"available","nameLocation":"6514:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6506:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5388,"name":"uint256","nodeType":"ElementaryTypeName","src":"6506:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5392,"initialValue":{"expression":{"id":5390,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6526:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6536:9:55","memberName":"available","nodeType":"MemberAccess","referencedDeclaration":3667,"src":"6526:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6506:39:55"},{"assignments":[5394],"declarations":[{"constant":false,"id":5394,"mutability":"mutable","name":"initiator","nameLocation":"6585:9:55","nodeType":"VariableDeclaration","scope":5434,"src":"6577:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5393,"name":"address","nodeType":"ElementaryTypeName","src":"6577:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5397,"initialValue":{"expression":{"id":5395,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6597:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5396,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6607:9:55","memberName":"initiator","nodeType":"MemberAccess","referencedDeclaration":3659,"src":"6597:19:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6577:39:55"},{"assignments":[5399],"declarations":[{"constant":false,"id":5399,"mutability":"mutable","name":"fees","nameLocation":"6660:4:55","nodeType":"VariableDeclaration","scope":5434,"src":"6652:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5398,"name":"uint256","nodeType":"ElementaryTypeName","src":"6652:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5402,"initialValue":{"expression":{"id":5400,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6667:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5401,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6677:4:55","memberName":"fees","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"6667:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6652:29:55"},{"assignments":[5404],"declarations":[{"constant":false,"id":5404,"mutability":"mutable","name":"currency","nameLocation":"6723:8:55","nodeType":"VariableDeclaration","scope":5434,"src":"6715:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5403,"name":"address","nodeType":"ElementaryTypeName","src":"6715:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5407,"initialValue":{"expression":{"id":5405,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6734:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6744:8:55","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"6734:18:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6715:37:55"},{"expression":{"arguments":[{"id":5409,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6779:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5408,"name":"_closeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"6763:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"function (uint256) returns (struct T.Agreement storage pointer)"}},"id":5410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6763:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5411,"nodeType":"ExpressionStatement","src":"6763:22:55"},{"expression":{"arguments":[{"arguments":[{"id":5415,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"6842:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}],"id":5414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6834:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5413,"name":"address","nodeType":"ElementaryTypeName","src":"6834:7:55","typeDescriptions":{}}},"id":5416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5417,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5399,"src":"6849:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5418,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6855:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5412,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"6818:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6818:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5420,"nodeType":"ExpressionStatement","src":"6818:46:55"},{"expression":{"arguments":[{"id":5422,"name":"initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"6899:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5423,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5389,"src":"6910:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5424,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5404,"src":"6921:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5421,"name":"_registerFundsInTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"6874:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6874:56:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5426,"nodeType":"ExpressionStatement","src":"6874:56:55"},{"eventCall":{"arguments":[{"id":5428,"name":"initiator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5394,"src":"6965:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5429,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6976:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5427,"name":"AgreementCancelled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5204,"src":"6946:18:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":5430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6946:36:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5431,"nodeType":"EmitStatement","src":"6941:41:55"},{"expression":{"id":5432,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5372,"src":"6999:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5367,"id":5433,"nodeType":"Return","src":"6992:16:55"}]},"baseFunctions":[2904],"documentation":{"id":5355,"nodeType":"StructuredDocumentation","src":"5961:148:55","text":"@notice Allows the initiator to quit the agreement and receive the committed funds.\n @param proof The unique identifier of the agreement."},"functionSelector":"2182b231","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5360,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5357,"src":"6180:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5361,"kind":"modifierInvocation","modifierName":{"id":5359,"name":"onlyValidAgreement","nameLocations":["6161:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":5245,"src":"6161:18:55"},"nodeType":"ModifierInvocation","src":"6161:25:55"},{"id":5363,"kind":"modifierInvocation","modifierName":{"id":5362,"name":"nonReentrant","nameLocations":["6187:12:55"],"nodeType":"IdentifierPath","referencedDeclaration":53682,"src":"6187:12:55"},"nodeType":"ModifierInvocation","src":"6187:12:55"}],"name":"quitAgreement","nameLocation":"6123:13:55","parameters":{"id":5358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5357,"mutability":"mutable","name":"proof","nameLocation":"6145:5:55","nodeType":"VariableDeclaration","scope":5435,"src":"6137:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5356,"name":"uint256","nodeType":"ElementaryTypeName","src":"6137:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6136:15:55"},"returnParameters":{"id":5367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5366,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5435,"src":"6209:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5365,"nodeType":"UserDefinedTypeName","pathNode":{"id":5364,"name":"T.Agreement","nameLocations":["6209:1:55","6211:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"6209:11:55"},"referencedDeclaration":3673,"src":"6209:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"6208:20:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5449,"nodeType":"FunctionDefinition","src":"7172:120:55","nodes":[],"body":{"id":5448,"nodeType":"Block","src":"7250:42:55","nodes":[],"statements":[{"expression":{"baseExpression":{"id":5444,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"7267:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5446,"indexExpression":{"id":5445,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5438,"src":"7279:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7267:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"functionReturnParameters":5443,"id":5447,"nodeType":"Return","src":"7260:25:55"}]},"baseFunctions":[2895],"documentation":{"id":5436,"nodeType":"StructuredDocumentation","src":"7021:146:55","text":"@notice Retrieves the details of an agreement based on the provided proof.\n @param proof The unique identifier (hash) of the agreement."},"functionSelector":"4f9f6fe6","implemented":true,"kind":"function","modifiers":[],"name":"getAgreement","nameLocation":"7181:12:55","parameters":{"id":5439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5438,"mutability":"mutable","name":"proof","nameLocation":"7202:5:55","nodeType":"VariableDeclaration","scope":5449,"src":"7194:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5437,"name":"uint256","nodeType":"ElementaryTypeName","src":"7194:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7193:15:55"},"returnParameters":{"id":5443,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5442,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5449,"src":"7230:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5441,"nodeType":"UserDefinedTypeName","pathNode":{"id":5440,"name":"T.Agreement","nameLocations":["7230:1:55","7232:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7230:11:55"},"referencedDeclaration":3673,"src":"7230:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"7229:20:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":5527,"nodeType":"FunctionDefinition","src":"7548:886:55","nodes":[],"body":{"id":5526,"nodeType":"Block","src":"7694:740:55","nodes":[],"statements":[{"assignments":[5467],"declarations":[{"constant":false,"id":5467,"mutability":"mutable","name":"agreement","nameLocation":"7799:9:55","nodeType":"VariableDeclaration","scope":5526,"src":"7780:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5466,"nodeType":"UserDefinedTypeName","pathNode":{"id":5465,"name":"T.Agreement","nameLocations":["7780:1:55","7782:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7780:11:55"},"referencedDeclaration":3673,"src":"7780:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5471,"initialValue":{"arguments":[{"id":5469,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"7824:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5468,"name":"getAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5449,"src":"7811:12:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_struct$_Agreement_$3673_memory_ptr_$","typeString":"function (uint256) view returns (struct T.Agreement memory)"}},"id":5470,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7811:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"nodeType":"VariableDeclarationStatement","src":"7780:50:55"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":5476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5472,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"7844:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5473,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"7854:6:55","memberName":"broker","nodeType":"MemberAccess","referencedDeclaration":3655,"src":"7844:16:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":5474,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7864:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7868:6:55","memberName":"sender","nodeType":"MemberAccess","src":"7864:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7844:30:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5482,"nodeType":"IfStatement","src":"7840:127:55","trueBody":{"id":5481,"nodeType":"Block","src":"7876:91:55","statements":[{"errorCall":{"arguments":[{"hexValue":"4f6e6c792062726f6b65722063616e20736574746c65207468652061677265656d656e742e","id":5478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7916:39:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_b7d75a7838a30d0530c0323127b2e900c0d98334ab73a3523919640f0daad574","typeString":"literal_string \"Only broker can settle the agreement.\""},"value":"Only broker can settle the agreement."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b7d75a7838a30d0530c0323127b2e900c0d98334ab73a3523919640f0daad574","typeString":"literal_string \"Only broker can settle the agreement.\""}],"id":5477,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"7897:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7897:59:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5480,"nodeType":"RevertStatement","src":"7890:66:55"}]}},{"assignments":[5484],"declarations":[{"constant":false,"id":5484,"mutability":"mutable","name":"fees","nameLocation":"7985:4:55","nodeType":"VariableDeclaration","scope":5526,"src":"7977:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5483,"name":"uint256","nodeType":"ElementaryTypeName","src":"7977:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5487,"initialValue":{"expression":{"id":5485,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"7992:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8002:4:55","memberName":"fees","nodeType":"MemberAccess","referencedDeclaration":3665,"src":"7992:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7977:29:55"},{"assignments":[5489],"declarations":[{"constant":false,"id":5489,"mutability":"mutable","name":"available","nameLocation":"8036:9:55","nodeType":"VariableDeclaration","scope":5526,"src":"8028:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5488,"name":"uint256","nodeType":"ElementaryTypeName","src":"8028:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5492,"initialValue":{"expression":{"id":5490,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8048:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5491,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8058:9:55","memberName":"available","nodeType":"MemberAccess","referencedDeclaration":3667,"src":"8048:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"8028:39:55"},{"assignments":[5494],"declarations":[{"constant":false,"id":5494,"mutability":"mutable","name":"currency","nameLocation":"8104:8:55","nodeType":"VariableDeclaration","scope":5526,"src":"8096:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5493,"name":"address","nodeType":"ElementaryTypeName","src":"8096:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":5497,"initialValue":{"expression":{"id":5495,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8115:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"id":5496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8125:8:55","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3657,"src":"8115:18:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"8096:37:55"},{"expression":{"arguments":[{"id":5499,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"8160:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5498,"name":"_closeAgreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5666,"src":"8144:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"function (uint256) returns (struct T.Agreement storage pointer)"}},"id":5500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8144:22:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5501,"nodeType":"ExpressionStatement","src":"8144:22:55"},{"expression":{"arguments":[{"arguments":[{"id":5505,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"8245:4:55","typeDescriptions":{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RightsAccessAgreement_$5721","typeString":"contract RightsAccessAgreement"}],"id":5504,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8237:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5503,"name":"address","nodeType":"ElementaryTypeName","src":"8237:7:55","typeDescriptions":{}}},"id":5506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8237:13:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5507,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5484,"src":"8252:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5508,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"8258:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5502,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1283,"src":"8221:15:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8221:46:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5510,"nodeType":"ExpressionStatement","src":"8221:46:55"},{"expression":{"arguments":[{"id":5512,"name":"counterparty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5454,"src":"8302:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5513,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5489,"src":"8316:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5514,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5494,"src":"8327:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5511,"name":"_registerFundsInTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5720,"src":"8277:24:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8277:59:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5516,"nodeType":"ExpressionStatement","src":"8277:59:55"},{"eventCall":{"arguments":[{"expression":{"id":5518,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8369:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8373:6:55","memberName":"sender","nodeType":"MemberAccess","src":"8369:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5520,"name":"counterparty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5454,"src":"8381:12:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5521,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"8395:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":5517,"name":"AgreementSettled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5197,"src":"8352:16:55","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":5522,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8352:49:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5523,"nodeType":"EmitStatement","src":"8347:54:55"},{"expression":{"id":5524,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5467,"src":"8418:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5462,"id":5525,"nodeType":"Return","src":"8411:16:55"}]},"baseFunctions":[2851],"documentation":{"id":5450,"nodeType":"StructuredDocumentation","src":"7298:245:55","text":"@notice Settles an agreement by marking it inactive and transferring funds to the counterparty.\n @param proof The unique identifier of the agreement.\n @param counterparty The address that will receive the funds upon settlement."},"functionSelector":"e5f5677a","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":5457,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5452,"src":"7658:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":5458,"kind":"modifierInvocation","modifierName":{"id":5456,"name":"onlyValidAgreement","nameLocations":["7639:18:55"],"nodeType":"IdentifierPath","referencedDeclaration":5245,"src":"7639:18:55"},"nodeType":"ModifierInvocation","src":"7639:25:55"}],"name":"settleAgreement","nameLocation":"7557:15:55","parameters":{"id":5455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5452,"mutability":"mutable","name":"proof","nameLocation":"7590:5:55","nodeType":"VariableDeclaration","scope":5527,"src":"7582:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5451,"name":"uint256","nodeType":"ElementaryTypeName","src":"7582:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5454,"mutability":"mutable","name":"counterparty","nameLocation":"7613:12:55","nodeType":"VariableDeclaration","scope":5527,"src":"7605:20:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5453,"name":"address","nodeType":"ElementaryTypeName","src":"7605:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7572:59:55"},"returnParameters":{"id":5462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5527,"src":"7674:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5460,"nodeType":"UserDefinedTypeName","pathNode":{"id":5459,"name":"T.Agreement","nameLocations":["7674:1:55","7676:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"7674:11:55"},"referencedDeclaration":3673,"src":"7674:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"7673:20:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5585,"nodeType":"FunctionDefinition","src":"8845:1616:55","nodes":[],"body":{"id":5584,"nodeType":"Block","src":"9060:1401:55","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":5545,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"9074:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":5546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9082:6:55","memberName":"length","nodeType":"MemberAccess","src":"9074:14:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":5547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9092:1:55","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9074:19:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5554,"nodeType":"IfStatement","src":"9070:120:55","trueBody":{"id":5553,"nodeType":"Block","src":"9095:95:55","statements":[{"errorCall":{"arguments":[{"hexValue":"41677265656d656e74206d75737420696e636c756465206174206c65617374206f6e65207061727479","id":5550,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9135:43:55","typeDescriptions":{"typeIdentifier":"t_stringliteral_6c91b877d83206befe4fb24225f7463711bd07c1aad8f41e0e11bafe95831ce3","typeString":"literal_string \"Agreement must include at least one party\""},"value":"Agreement must include at least one party"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6c91b877d83206befe4fb24225f7463711bd07c1aad8f41e0e11bafe95831ce3","typeString":"literal_string \"Agreement must include at least one party\""}],"id":5549,"name":"InvalidAgreementOp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5212,"src":"9116:18:55","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":5551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9116:63:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":5552,"nodeType":"RevertStatement","src":"9109:70:55"}]}},{"assignments":[5556],"declarations":[{"constant":false,"id":5556,"mutability":"mutable","name":"deductions","nameLocation":"9329:10:55","nodeType":"VariableDeclaration","scope":5584,"src":"9321:18:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5555,"name":"uint256","nodeType":"ElementaryTypeName","src":"9321:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5561,"initialValue":{"arguments":[{"id":5558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"9352:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5559,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"9360:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5557,"name":"_calcFees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5692,"src":"9342:9:55","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":5560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9342:27:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9321:48:55"},{"assignments":[5563],"declarations":[{"constant":false,"id":5563,"mutability":"mutable","name":"available","nameLocation":"9387:9:55","nodeType":"VariableDeclaration","scope":5584,"src":"9379:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5562,"name":"uint256","nodeType":"ElementaryTypeName","src":"9379:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5567,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":5566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":5564,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"9399:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":5565,"name":"deductions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"9408:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9399:19:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9379:39:55"},{"expression":{"arguments":[{"hexValue":"74727565","id":5570,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"9722:4:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"id":5571,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5534,"src":"9812:6:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5572,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5532,"src":"9896:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":5573,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9969:3:55","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9973:6:55","memberName":"sender","nodeType":"MemberAccess","src":"9969:10:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5575,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5530,"src":"10025:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5576,"name":"deductions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5556,"src":"10081:10:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5577,"name":"available","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5563,"src":"10158:9:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":5578,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"10231:5:55","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":5579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10237:9:55","memberName":"timestamp","nodeType":"MemberAccess","src":"10231:15:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5580,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5537,"src":"10304:7:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":5581,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5539,"src":"10375:7:55","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":5568,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"9684:1:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$3707_$","typeString":"type(library T)"}},"id":5569,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9686:9:55","memberName":"Agreement","nodeType":"MemberAccess","referencedDeclaration":3673,"src":"9684:11:55","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Agreement_$3673_storage_ptr_$","typeString":"type(struct T.Agreement storage pointer)"}},"id":5582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9714:6:55","9804:6:55","9886:8:55","9958:9:55","10017:6:55","10075:4:55","10147:9:55","10220:9:55","10295:7:55","10366:7:55"],"names":["active","broker","currency","initiator","amount","fees","available","createdAt","parties","payload"],"nodeType":"FunctionCall","src":"9684:770:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"functionReturnParameters":5544,"id":5583,"nodeType":"Return","src":"9665:789:55"}]},"baseFunctions":[2886],"documentation":{"id":5528,"nodeType":"StructuredDocumentation","src":"8440:400:55","text":"@notice Previews an agreement by calculating fees and returning the agreement terms without committing them.\n @param amount The total amount committed.\n @param currency The currency used for the agreement.\n @param broker The authorized account to manage the agreement.\n @param parties The parties in the agreement.\n @param payload Additional data for execution."},"functionSelector":"29f780e3","implemented":true,"kind":"function","modifiers":[],"name":"previewAgreement","nameLocation":"8854:16:55","parameters":{"id":5540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5530,"mutability":"mutable","name":"amount","nameLocation":"8888:6:55","nodeType":"VariableDeclaration","scope":5585,"src":"8880:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5529,"name":"uint256","nodeType":"ElementaryTypeName","src":"8880:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5532,"mutability":"mutable","name":"currency","nameLocation":"8912:8:55","nodeType":"VariableDeclaration","scope":5585,"src":"8904:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5531,"name":"address","nodeType":"ElementaryTypeName","src":"8904:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5534,"mutability":"mutable","name":"broker","nameLocation":"8938:6:55","nodeType":"VariableDeclaration","scope":5585,"src":"8930:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5533,"name":"address","nodeType":"ElementaryTypeName","src":"8930:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5537,"mutability":"mutable","name":"parties","nameLocation":"8973:7:55","nodeType":"VariableDeclaration","scope":5585,"src":"8954:26:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":5535,"name":"address","nodeType":"ElementaryTypeName","src":"8954:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5536,"nodeType":"ArrayTypeName","src":"8954:9:55","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":5539,"mutability":"mutable","name":"payload","nameLocation":"9005:7:55","nodeType":"VariableDeclaration","scope":5585,"src":"8990:22:55","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5538,"name":"bytes","nodeType":"ElementaryTypeName","src":"8990:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"8870:148:55"},"returnParameters":{"id":5544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5543,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5585,"src":"9040:18:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5542,"nodeType":"UserDefinedTypeName","pathNode":{"id":5541,"name":"T.Agreement","nameLocations":["9040:1:55","9042:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"9040:11:55"},"referencedDeclaration":3673,"src":"9040:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"9039:20:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":5595,"nodeType":"FunctionDefinition","src":"10659:84:55","nodes":[],"body":{"id":5594,"nodeType":"Block","src":"10741:2:55","nodes":[],"statements":[]},"baseFunctions":[51784],"documentation":{"id":5586,"nodeType":"StructuredDocumentation","src":"10467:187:55","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":5592,"kind":"modifierInvocation","modifierName":{"id":5591,"name":"onlyAdmin","nameLocations":["10731:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":899,"src":"10731:9:55"},"nodeType":"ModifierInvocation","src":"10731:9:55"}],"name":"_authorizeUpgrade","nameLocation":"10668:17:55","overrides":{"id":5590,"nodeType":"OverrideSpecifier","overrides":[],"src":"10722:8:55"},"parameters":{"id":5589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5588,"mutability":"mutable","name":"newImplementation","nameLocation":"10694:17:55","nodeType":"VariableDeclaration","scope":5595,"src":"10686:25:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5587,"name":"address","nodeType":"ElementaryTypeName","src":"10686:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10685:27:55"},"returnParameters":{"id":5593,"nodeType":"ParameterList","parameters":[],"src":"10741:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5623,"nodeType":"FunctionDefinition","src":"10829:299:55","nodes":[],"body":{"id":5622,"nodeType":"Block","src":"10912:216:55","nodes":[],"statements":[{"assignments":[5605],"declarations":[{"constant":false,"id":5605,"mutability":"mutable","name":"rawProof","nameLocation":"11013:8:55","nodeType":"VariableDeclaration","scope":5622,"src":"11000:21:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":5604,"name":"bytes","nodeType":"ElementaryTypeName","src":"11000:5:55","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":5610,"initialValue":{"arguments":[{"id":5608,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5599,"src":"11035:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}],"expression":{"id":5606,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"11024:3:55","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":5607,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11028:6:55","memberName":"encode","nodeType":"MemberAccess","src":"11024:10:55","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":5609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11024:21:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"11000:45:55"},{"assignments":[5612],"declarations":[{"constant":false,"id":5612,"mutability":"mutable","name":"proof","nameLocation":"11063:5:55","nodeType":"VariableDeclaration","scope":5622,"src":"11055:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5611,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11055:7:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":5616,"initialValue":{"arguments":[{"id":5614,"name":"rawProof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5605,"src":"11081:8:55","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":5613,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"11071:9:55","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":5615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11071:19:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"11055:35:55"},{"expression":{"arguments":[{"id":5619,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5612,"src":"11115:5:55","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":5618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11107:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":5617,"name":"uint256","nodeType":"ElementaryTypeName","src":"11107:7:55","typeDescriptions":{}}},"id":5620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11107:14:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5603,"id":5621,"nodeType":"Return","src":"11100:21:55"}]},"documentation":{"id":5596,"nodeType":"StructuredDocumentation","src":"10749:75:55","text":"@dev Generates a unique proof for an agreement using keccak256 hashing."},"implemented":true,"kind":"function","modifiers":[],"name":"_createProof","nameLocation":"10838:12:55","parameters":{"id":5600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5599,"mutability":"mutable","name":"agreement","nameLocation":"10870:9:55","nodeType":"VariableDeclaration","scope":5623,"src":"10851:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5598,"nodeType":"UserDefinedTypeName","pathNode":{"id":5597,"name":"T.Agreement","nameLocations":["10851:1:55","10853:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"10851:11:55"},"referencedDeclaration":3673,"src":"10851:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"10850:30:55"},"returnParameters":{"id":5603,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5602,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5623,"src":"10903:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5601,"name":"uint256","nodeType":"ElementaryTypeName","src":"10903:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10902:9:55"},"scope":5721,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":5639,"nodeType":"FunctionDefinition","src":"11197:146:55","nodes":[],"body":{"id":5638,"nodeType":"Block","src":"11275:68:55","nodes":[],"statements":[{"expression":{"id":5636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":5632,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"11285:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5634,"indexExpression":{"id":5633,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5626,"src":"11297:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11285:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":5635,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5629,"src":"11306:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement memory"}},"src":"11285:30:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"id":5637,"nodeType":"ExpressionStatement","src":"11285:30:55"}]},"documentation":{"id":5624,"nodeType":"StructuredDocumentation","src":"11134:58:55","text":"@dev Set the agreement relation with proof in storage."},"implemented":true,"kind":"function","modifiers":[],"name":"_storeAgreement","nameLocation":"11206:15:55","parameters":{"id":5630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5626,"mutability":"mutable","name":"proof","nameLocation":"11230:5:55","nodeType":"VariableDeclaration","scope":5639,"src":"11222:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5625,"name":"uint256","nodeType":"ElementaryTypeName","src":"11222:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5629,"mutability":"mutable","name":"agreement","nameLocation":"11256:9:55","nodeType":"VariableDeclaration","scope":5639,"src":"11237:28:55","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_memory_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5628,"nodeType":"UserDefinedTypeName","pathNode":{"id":5627,"name":"T.Agreement","nameLocations":["11237:1:55","11239:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11237:11:55"},"referencedDeclaration":3673,"src":"11237:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"11221:45:55"},"returnParameters":{"id":5631,"nodeType":"ParameterList","parameters":[],"src":"11275:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5666,"nodeType":"FunctionDefinition","src":"11418:281:55","nodes":[],"body":{"id":5665,"nodeType":"Block","src":"11496:203:55","nodes":[],"statements":[{"assignments":[5652],"declarations":[{"constant":false,"id":5652,"mutability":"mutable","name":"agreement","nameLocation":"11602:9:55","nodeType":"VariableDeclaration","scope":5665,"src":"11582:29:55","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5651,"nodeType":"UserDefinedTypeName","pathNode":{"id":5650,"name":"T.Agreement","nameLocations":["11582:1:55","11584:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11582:11:55"},"referencedDeclaration":3673,"src":"11582:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"id":5656,"initialValue":{"baseExpression":{"id":5653,"name":"_agreements","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5181,"src":"11614:11:55","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Agreement_$3673_storage_$","typeString":"mapping(uint256 => struct T.Agreement storage ref)"}},"id":5655,"indexExpression":{"id":5654,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5642,"src":"11626:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11614:18:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage","typeString":"struct T.Agreement storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11582:50:55"},{"expression":{"id":5661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":5657,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"11642:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"id":5659,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11652:6:55","memberName":"active","nodeType":"MemberAccess","referencedDeclaration":3653,"src":"11642:16:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":5660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11661:5:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"11642:24:55","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":5662,"nodeType":"ExpressionStatement","src":"11642:24:55"},{"expression":{"id":5663,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5652,"src":"11683:9:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement storage pointer"}},"functionReturnParameters":5647,"id":5664,"nodeType":"Return","src":"11676:16:55"}]},"documentation":{"id":5640,"nodeType":"StructuredDocumentation","src":"11349:64:55","text":"@dev Marks an agreement as inactive, effectively closing it."},"implemented":true,"kind":"function","modifiers":[],"name":"_closeAgreement","nameLocation":"11427:15:55","parameters":{"id":5643,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5642,"mutability":"mutable","name":"proof","nameLocation":"11451:5:55","nodeType":"VariableDeclaration","scope":5666,"src":"11443:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5641,"name":"uint256","nodeType":"ElementaryTypeName","src":"11443:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11442:15:55"},"returnParameters":{"id":5647,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5646,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5666,"src":"11475:19:55","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"},"typeName":{"id":5645,"nodeType":"UserDefinedTypeName","pathNode":{"id":5644,"name":"T.Agreement","nameLocations":["11475:1:55","11477:9:55"],"nodeType":"IdentifierPath","referencedDeclaration":3673,"src":"11475:11:55"},"referencedDeclaration":3673,"src":"11475:11:55","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$3673_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"11474:21:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5692,"nodeType":"FunctionDefinition","src":"12032:307:55","nodes":[],"body":{"id":5691,"nodeType":"Block","src":"12115:224:55","nodes":[],"statements":[{"assignments":[5677],"declarations":[{"constant":false,"id":5677,"mutability":"mutable","name":"fees","nameLocation":"12215:4:55","nodeType":"VariableDeclaration","scope":5691,"src":"12207:12:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5676,"name":"uint256","nodeType":"ElementaryTypeName","src":"12207:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":5685,"initialValue":{"arguments":[{"expression":{"expression":{"id":5680,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3707,"src":"12239:1:55","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$3707_$","typeString":"type(library T)"}},"id":5681,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12241:7:55","memberName":"Context","nodeType":"MemberAccess","referencedDeclaration":3644,"src":"12239:9:55","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Context_$3644_$","typeString":"type(enum T.Context)"}},"id":5682,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12249:3:55","memberName":"RMA","nodeType":"MemberAccess","referencedDeclaration":3643,"src":"12239:13:55","typeDescriptions":{"typeIdentifier":"t_enum$_Context_$3644","typeString":"enum T.Context"}},{"id":5683,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5671,"src":"12254:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_enum$_Context_$3644","typeString":"enum T.Context"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5678,"name":"TOLLGATE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5176,"src":"12222:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITollgate_$2653","typeString":"contract ITollgate"}},"id":5679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12231:7:55","memberName":"getFees","nodeType":"MemberAccess","referencedDeclaration":2631,"src":"12222:16:55","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_enum$_Context_$3644_$_t_address_$returns$_t_uint256_$","typeString":"function (enum T.Context,address) view external returns (uint256)"}},"id":5684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12222:41:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12207:56:55"},{"expression":{"arguments":[{"id":5688,"name":"fees","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5677,"src":"12292:4:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":5686,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5669,"src":"12280:5:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12286:5:55","memberName":"perOf","nodeType":"MemberAccess","referencedDeclaration":3323,"src":"12280:11:55","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":5689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12280:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5675,"id":5690,"nodeType":"Return","src":"12273:24:55"}]},"documentation":{"id":5667,"nodeType":"StructuredDocumentation","src":"11705:322:55","text":"@notice Calculates the fee based on the provided total amount and currency.\n @dev Reverts if the currency is not supported by the fees manager.\n @param total The total amount from which the fee will be calculated.\n @param currency The address of the currency for which the fee is being calculated."},"implemented":true,"kind":"function","modifiers":[],"name":"_calcFees","nameLocation":"12041:9:55","parameters":{"id":5672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5669,"mutability":"mutable","name":"total","nameLocation":"12059:5:55","nodeType":"VariableDeclaration","scope":5692,"src":"12051:13:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5668,"name":"uint256","nodeType":"ElementaryTypeName","src":"12051:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5671,"mutability":"mutable","name":"currency","nameLocation":"12074:8:55","nodeType":"VariableDeclaration","scope":5692,"src":"12066:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5670,"name":"address","nodeType":"ElementaryTypeName","src":"12066:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12050:33:55"},"returnParameters":{"id":5675,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5674,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5692,"src":"12106:7:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5673,"name":"uint256","nodeType":"ElementaryTypeName","src":"12106:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12105:9:55"},"scope":5721,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5720,"nodeType":"FunctionDefinition","src":"12938:304:55","nodes":[],"body":{"id":5719,"nodeType":"Block","src":"13033:209:55","nodes":[],"statements":[{"expression":{"arguments":[{"id":5707,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"13163:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5708,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5699,"src":"13171:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":5704,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"13135:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}],"id":5703,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13127:7:55","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":5702,"name":"address","nodeType":"ElementaryTypeName","src":"13127:7:55","typeDescriptions":{}}},"id":5705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13127:17:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5706,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13145:17:55","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":3459,"src":"13127:35:55","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$attached_to$_t_address_$","typeString":"function (address,uint256,address)"}},"id":5709,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13127:53:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5710,"nodeType":"ExpressionStatement","src":"13127:53:55"},{"expression":{"arguments":[{"id":5714,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5695,"src":"13207:9:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5715,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5697,"src":"13218:6:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5716,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5699,"src":"13226:8:55","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5711,"name":"TREASURY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5172,"src":"13190:8:55","typeDescriptions":{"typeIdentifier":"t_contract$_ITreasury_$2698","typeString":"contract ITreasury"}},"id":5713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13199:7:55","memberName":"deposit","nodeType":"MemberAccess","referencedDeclaration":2688,"src":"13190:16:55","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address) external"}},"id":5717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13190:45:55","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5718,"nodeType":"ExpressionStatement","src":"13190:45:55"}]},"documentation":{"id":5693,"nodeType":"StructuredDocumentation","src":"12345:588:55","text":"@notice Registers a specified amount of currency in the treasury on behalf of the recipient.\n @dev This function increases the allowance for the treasury to access the specified `amount` of `currency`\n and then deposits the funds into the treasury for the given `recipient`.\n @param recipient The address that will receive the registered funds in the treasury.\n @param amount The amount of currency to be registered in the treasury.\n @param currency The address of the ERC20 token used for the registration, or `address(0)` for native currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_registerFundsInTreasury","nameLocation":"12947:24:55","parameters":{"id":5700,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5695,"mutability":"mutable","name":"recipient","nameLocation":"12980:9:55","nodeType":"VariableDeclaration","scope":5720,"src":"12972:17:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5694,"name":"address","nodeType":"ElementaryTypeName","src":"12972:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5697,"mutability":"mutable","name":"amount","nameLocation":"12999:6:55","nodeType":"VariableDeclaration","scope":5720,"src":"12991:14:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5696,"name":"uint256","nodeType":"ElementaryTypeName","src":"12991:7:55","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5699,"mutability":"mutable","name":"currency","nameLocation":"13015:8:55","nodeType":"VariableDeclaration","scope":5720,"src":"13007:16:55","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5698,"name":"address","nodeType":"ElementaryTypeName","src":"13007:7:55","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12971:53:55"},"returnParameters":{"id":5701,"nodeType":"ParameterList","parameters":[],"src":"13033:0:55"},"scope":5721,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5151,"name":"Initializable","nameLocations":["1208:13:55"],"nodeType":"IdentifierPath","referencedDeclaration":51648,"src":"1208:13:55"},"id":5152,"nodeType":"InheritanceSpecifier","src":"1208:13:55"},{"baseName":{"id":5153,"name":"UUPSUpgradeable","nameLocations":["1227:15:55"],"nodeType":"IdentifierPath","referencedDeclaration":51830,"src":"1227:15:55"},"id":5154,"nodeType":"InheritanceSpecifier","src":"1227:15:55"},{"baseName":{"id":5155,"name":"AccessControlledUpgradeable","nameLocations":["1248:27:55"],"nodeType":"IdentifierPath","referencedDeclaration":981,"src":"1248:27:55"},"id":5156,"nodeType":"InheritanceSpecifier","src":"1248:27:55"},{"baseName":{"id":5157,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1281:35:55"],"nodeType":"IdentifierPath","referencedDeclaration":53739,"src":"1281:35:55"},"id":5158,"nodeType":"InheritanceSpecifier","src":"1281:35:55"},{"baseName":{"id":5159,"name":"FeesCollectorUpgradeable","nameLocations":["1322:24:55"],"nodeType":"IdentifierPath","referencedDeclaration":1168,"src":"1322:24:55"},"id":5160,"nodeType":"InheritanceSpecifier","src":"1322:24:55"},{"baseName":{"id":5161,"name":"IRightsAccessAgreement","nameLocations":["1352:22:55"],"nodeType":"IdentifierPath","referencedDeclaration":2905,"src":"1352:22:55"},"id":5162,"nodeType":"InheritanceSpecifier","src":"1352:22:55"}],"canonicalName":"RightsAccessAgreement","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[5721,2905,1168,2604,1320,2456,53739,981,49275,54772,53440,51830,60400,51648],"name":"RightsAccessAgreement","nameLocation":"1179:21:55","scope":5722,"usedErrors":[881,1014,1019,3374,3378,5207,5212,51411,51414,51675,51680,53671,54743,54749,54753,60595,60608,62185,62891,63183],"usedEvents":[2595,5188,5197,5204,51419,54739,60322]}],"license":"MIT"},"id":55} \ No newline at end of file diff --git a/src/config/abi/RightsPolicyAuthorizer.json b/src/config/abi/RightsPolicyAuthorizer.json index f39319c0d..dccac54a4 100644 --- a/src/config/abi/RightsPolicyAuthorizer.json +++ b/src/config/abi/RightsPolicyAuthorizer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61166a38819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a05260405161150b908161015f82396080518181816107d901526108da015260a0518181816105e1015261107b0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea26469706673582212209043256edec719959f93e5f861dadc5f7e422b6dcf4bd7d06acb1c54cb964cb064736f6c634300081a0033","sourceMap":"841:5884:54:-:0;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;-1:-1:-1;;;;;841:5884:54;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;841:5884:54;;;;;;;;1171:4:99;1163:13;;8837:64:98;841:5884:54;;;;;;7896:76:98;;-1:-1:-1;;;;;;;;;;;841:5884:54;;7985:34:98;7981:146;;-1:-1:-1;3006:52:54;;;841:5884;;;;;;;;1163:13:99;841:5884:54;;;;;;;;;;3006:52;841:5884;;;;;;;;;;;7981:146:98;-1:-1:-1;;;;;;841:5884:54;-1:-1:-1;;;;;841:5884:54;;;8837:64:98;841:5884:54;;;;;;8087:29:98;;841:5884:54;;8087:29:98;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:98;;-1:-1:-1;7938:23:98;841:5884:54;-1:-1:-1;841:5884:54;;;;;;-1:-1:-1;841:5884:54;;;;;-1:-1:-1;841:5884:54","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea26469706673582212209043256edec719959f93e5f861dadc5f7e422b6dcf4bd7d06acb1c54cb964cb064736f6c634300081a0033","sourceMap":"841:5884:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:180;;841:5884:54;;;;;;4360:26:180;;4904:70:54;;;;841:5884;;;;;;;;;;4904:70;4952:22;;;;:::i;:::-;4904:70;;;841:5884;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;8837:64:98;841:5884:54;;;;;;4301:16:98;841:5884:54;;;;4726:16:98;;:34;;;;841:5884:54;4805:1:98;4790:16;:50;;;;841:5884:54;4855:13:98;:30;;;;841:5884:54;4851:91:98;;;841:5884:54;;4805:1:98;841:5884:54;;;;;8837:64:98;841:5884:54;4979:67:98;;841:5884:54;6893:76:98;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:96;;;:::i;:::-;6893:76:98;;:::i;:::-;841:5884:54;;3295:62:38;841:5884:54;;;3295:62:38;841:5884:54;5066:101:98;;841:5884:54;5066:101:98;841:5884:54;8837:64:98;841:5884:54;;8837:64:98;841:5884:54;5142:14:98;841:5884:54;;;4805:1:98;841:5884:54;;5142:14:98;841:5884:54;4979:67:98;841:5884:54;;;;8837:64:98;841:5884:54;4979:67:98;;;4851:91;4908:23;841:5884:54;4908:23:98;841:5884:54;;4908:23:98;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:98;;4726:34;;;-1:-1:-1;4726:34:98;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;1782:71:96;841:5884:54;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;4458:10;841:5884;;;;;8703:53:180;841:5884:54;;;;;;8703:53:180;;;:::i;:::-;;4458:10:54;4499:33;;841:5884;4499:33;;841:5884;;;;;;-1:-1:-1;;841:5884:54;;;;;1782:71:96;841:5884:54;;;;;4698:71:96;;;841:5884:54;;4698:71:96;841:5884:54;;;;;;;;4698:71:96;841:5884:54;;4698:71:96;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;;;1427:54;841:5884;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;1782:71:96;841:5884:54;;966:10:102;4258:21:96;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;841:5884:54;4355:110:96;841:5884:54;4411:43:96;;841:5884:54;4411:43:96;841:5884:54;;;;;4411:43:96;4254:92;4302:33;841:5884:54;4302:33:96;966:10:102;841:5884:54;;;;4302:33:96;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;841:5884:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5884:54;;;;;;5115:6:99;841:5884:54;5106:4:99;5098:23;5094:145;;841:5884:54;;;811:66:136;841:5884:54;;;5094:145:99;5199:29;841:5884:54;5199:29:99;841:5884:54;;5199:29:99;841:5884:54;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:99;841:5884:54;4683:4:99;;4675:23;:120;;;;;841:5884:54;4658:251:99;;;3058:30:38;841:5884:54;;3295:62:38;841:5884:54;;;;3058:30:38;;;;841:5884:54;3058:30:38;;841:5884:54;;3058:30:38;;841:5884:54;1893:10:38;841:5884:54;;;;3058:30:38;;;;;;;841:5884:54;3058:30:38;;;841:5884:54;1869:35:38;;1865:140;;841:5884:54;;;;;;;6156:52:99;;841:5884:54;6156:52:99;841:5884:54;6156:52:99;;;;841:5884:54;;6156:52:99;;;841:5884:54;-1:-1:-1;6152:437:99;;6518:60;;841:5884:54;6518:60:99;841:5884:54;;;;6518:60:99;6152:437;6250:40;811:66:136;6250:40:99;;;6246:120;;1748:29:136;;;:34;1744:119;;841:5884:54;;811:66:136;841:5884:54;;;811:66:136;841:5884:54;2407:36:136;841:5884:54;2407:36:136;;841:5884:54;;2458:15:136;:11;;841:5884:54;4049:25:157;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:136:-;6163:9;;;;6159:70;;841:5884:54;6159:70:136;6199:19;841:5884:54;6199:19:136;841:5884:54;;6199:19:136;1744:119;1805:47;841:5884:54;1805:47:136;841:5884:54;;;;1805:47:136;6246:120:99;6317:34;841:5884:54;6317:34:99;841:5884:54;;;;6317:34:99;6156:52;;;;841:5884:54;6156:52:99;;841:5884:54;6156:52:99;;;;;;841:5884:54;6156:52:99;;;:::i;:::-;;;841:5884:54;;;;;6156:52:99;;;;;;;-1:-1:-1;6156:52:99;;1865:140:38;1927:67;841:5884:54;;1927:67:38;;;841:5884:54;;1927:67:38;;520:1:36;841:5884:54;;520:1:36;;841:5884:54;520:1:36;3058:30:38;841:5884:54;;520:1:36;;;;;;1927:67:38;3058:30;;;841:5884:54;3058:30:38;;841:5884:54;3058:30:38;;;;;;841:5884:54;3058:30:38;;;:::i;:::-;;;841:5884:54;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:38;;;;;;-1:-1:-1;3058:30:38;;;841:5884:54;;;;;;;;;4675:120:99;841:5884:54;;;811:66:136;841:5884:54;;4753:42:99;;4675:120;;;841:5884:54;;;;;-1:-1:-1;;841:5884:54;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3681:22;;;:::i;:::-;3680:23;3676:67;;841:5884;;;3889:54;841:5884;;;;;;3889:54;;;;841:5884;;3889:54;;;;;;3925:10;3889:54;;;841:5884;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:54;;841:5884;3889:54;;;;;;:::i;:::-;3877:67;;;;;;;;:::i;:::-;;3958:8;3954:91;;3925:10;841:5884;;;;;8382:50:180;841:5884:54;;;;;;8382:50:180;;;:::i;:::-;;3925:10:54;4165:33;;841:5884;4165:33;;841:5884;3954:91;841:5884;;;3975:70;;;841:5884;;3975:70;;841:5884;;;;;;;;;;;;;;;;3975:70;3676:67;841:5884;3712:31;;841:5884;3712:31;841:5884;;;;;3712:31;841:5884;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;841:5884:54;;;;;-1:-1:-1;841:5884:54;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;841:5884:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;6575:148::-;841:5884;;6661:20;;;:54;;;;6653:63;6575:148;:::o;6661:54::-;841:5884;;;;6685:30;841:5884;6685:30;;;;;841:5884;;6685:12;:30;:12;841:5884;6685:12;841:5884;6685:30;;;;;;;6679:1;6685:30;;;6661:54;6575:148;:::o;6685:30::-;;;841:5884;6685:30;;841:5884;6685:30;;;;;;841:5884;6685:30;;;:::i;:::-;;;841:5884;;;;;;;:::i;:::-;6575:148;:::o;6685:30::-;;;-1:-1:-1;6685:30:54;;4964:220:96;841:5884:54;;5147:30:96;4964:220;841:5884:54;;;1782:71:96;841:5884:54;;;1782:71:96;841:5884:54;;;;;;5147:30:96;4964:220::o;841:5884:54:-;;;;;;;;-1:-1:-1;841:5884:54;;-1:-1:-1;841:5884:54;;;-1:-1:-1;841:5884:54;:::o;:::-;;;;;;;;;;2241:406:180;-1:-1:-1;841:5884:54;;;4360:14:180;;;841:5884:54;;;;;;2325:21:180;;841:5884:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:180;841:5884:54;;;;;;;2576:11:180;:::o;2320:321::-;2618:12;;841:5884:54;2618:12:180;:::o;2815:1368::-;;3010:14;;;841:5884:54;;;;;;;;;;;3046:13:180;;;3042:1135;3046:13;;;841:5884:54;;;;;;;;;;;;;;;;;;;3521:23:180;;;3517:378;;3042:1135;841:5884:54;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:180;4112:11;:::o;841:5884:54:-;;;;;;;;;;3517:378:180;841:5884:54;3584:22:180;3705:23;3584:22;;;:::i;:::-;841:5884:54;;;;;;3705:23:180;;;;;:::i;841:5884:54:-;;;;;;;;;;;;3517:378:180;;;;;841:5884:54;;;;;;;;;;3042:1135:180;4154:12;;;;841:5884:54;4154:12:180;:::o;7084:141:98:-;841:5884:54;8837:64:98;841:5884:54;;;;7150:18:98;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:98;;-1:-1:-1;7191:17:98;4421:582:157;;4593:8;;-1:-1:-1;841:5884:54;;5674:21:157;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;841:5884:54;;4841:22:157;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;841:5884:54;4917:24:157;;4862:1;4917:24;841:5884:54;4917:24:157;841:5884:54;;4862:1:157;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"51706":[{"start":2009,"length":32},{"start":2266,"length":32}],"6145":[{"start":1505,"length":32},{"start":4219,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the assetolder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x5e5bb219f96c38e6a8b6d752bf4b3d5d4f2bbcc044b66dea0a572f9ce27588db\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://67d991b5a27b6cb0ccab0417a1e1a35d3eeeb097c6b3cdce8e10f03af9237f21\",\"dweb:/ipfs/QmetnbV7kki2yjtPE2giNjhs5kSwvT7YzcGvLenUEHeAFs\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685\",\"dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x3ae0b323ab3e895a09ae6973f5ffeb70a59255c41ba0f51511d775d45b6c2dca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://336bd19272a3b0cf9d19fb34e9dad66bc4e1df157c8eb8c31fe03ddd8a5c26ad\",\"dweb:/ipfs/QmVjwMfDs7c96zKefkFRyKoZiuok8hRM7qXLbPLpUzd1fv\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0xd8afae76625f55b198f6e18da17c968024010bd10ccff065c0dcdc619f6e1524\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a8aa28b2e82856e563309f587d916f0492b5138aadc9fa295a8a7da7ad77b413\",\"dweb:/ipfs/Qmdi2jS96N894C2Re9AX48vK8io2VHCxdptabh5GpNCzQF\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the assetolder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0x5e5bb219f96c38e6a8b6d752bf4b3d5d4f2bbcc044b66dea0a572f9ce27588db","urls":["bzz-raw://67d991b5a27b6cb0ccab0417a1e1a35d3eeeb097c6b3cdce8e10f03af9237f21","dweb:/ipfs/QmetnbV7kki2yjtPE2giNjhs5kSwvT7YzcGvLenUEHeAFs"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0x67da75876d8a614c9be2d0da22664a0c1ff93cbd080ab3e893c451fbc8bb2f81","urls":["bzz-raw://16d5e8f5cd1c4bf9731d163bc70e67bce4f8152207aa784e17f295e0c515b685","dweb:/ipfs/QmXi1YSH8cUn6UBmFz6YNsUhCUEH3SuPXDQzS4cu4ooM9a"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x3ae0b323ab3e895a09ae6973f5ffeb70a59255c41ba0f51511d775d45b6c2dca","urls":["bzz-raw://336bd19272a3b0cf9d19fb34e9dad66bc4e1df157c8eb8c31fe03ddd8a5c26ad","dweb:/ipfs/QmVjwMfDs7c96zKefkFRyKoZiuok8hRM7qXLbPLpUzd1fv"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0xd8afae76625f55b198f6e18da17c968024010bd10ccff065c0dcdc619f6e1524","urls":["bzz-raw://a8aa28b2e82856e563309f587d916f0492b5138aadc9fa295a8a7da7ad77b413","dweb:/ipfs/Qmdi2jS96N894C2Re9AX48vK8io2VHCxdptabh5GpNCzQF"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":6151,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)71161_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)71161_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)71161_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)71161_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":71160,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)70846_storage"}]},"t_struct(Set)70846_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":70841,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":70845,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6354,"exportedSymbols":{"AccessControlledUpgradeable":[2202],"EnumerableSet":[71448],"IPolicy":[1190],"IPolicyAuditorVerifiable":[1236],"IRightsPolicyAuthorizer":[1398],"Initializable":[51686],"RightsPolicyAuthorizer":[6353],"UUPSUpgradeable":[51868]},"nodeType":"SourceUnit","src":"124:6602:54","nodes":[{"id":6115,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":6117,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":51687,"symbolAliases":[{"foreign":{"id":6116,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51686,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6119,"nodeType":"ImportDirective","src":"248:88:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":71449,"symbolAliases":[{"foreign":{"id":6118,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":71448,"src":"257:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6121,"nodeType":"ImportDirective","src":"337:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":51869,"symbolAliases":[{"foreign":{"id":6120,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51868,"src":"346:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6123,"nodeType":"ImportDirective","src":"440:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":2203,"symbolAliases":[{"foreign":{"id":6122,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2202,"src":"449:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6125,"nodeType":"ImportDirective","src":"557:72:54","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1191,"symbolAliases":[{"foreign":{"id":6124,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"566:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6127,"nodeType":"ImportDirective","src":"630:102:54","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1399,"symbolAliases":[{"foreign":{"id":6126,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1398,"src":"639:23:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6129,"nodeType":"ImportDirective","src":"733:106:54","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6354,"sourceUnit":1237,"symbolAliases":[{"foreign":{"id":6128,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"742:24:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6353,"nodeType":"ContractDefinition","src":"841:5884:54","nodes":[{"id":6141,"nodeType":"UsingForDirective","src":"983:49:54","nodes":[],"global":false,"libraryName":{"id":6138,"name":"EnumerableSet","nameLocations":["989:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":71448,"src":"989:13:54"},"typeName":{"id":6140,"nodeType":"UserDefinedTypeName","pathNode":{"id":6139,"name":"EnumerableSet.AddressSet","nameLocations":["1007:13:54","1021:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":71161,"src":"1007:24:54"},"referencedDeclaration":71161,"src":"1007:24:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":6145,"nodeType":"VariableDeclaration","src":"1427:54:54","nodes":[],"constant":false,"documentation":{"id":6142,"nodeType":"StructuredDocumentation","src":"1361:61:54","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1469:12:54","scope":6353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":6144,"nodeType":"UserDefinedTypeName","pathNode":{"id":6143,"name":"IPolicyAuditorVerifiable","nameLocations":["1427:24:54"],"nodeType":"IdentifierPath","referencedDeclaration":1236,"src":"1427:24:54"},"referencedDeclaration":1236,"src":"1427:24:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":6151,"nodeType":"VariableDeclaration","src":"1574:72:54","nodes":[],"constant":false,"documentation":{"id":6146,"nodeType":"StructuredDocumentation","src":"1488:81:54","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1627:19:54","scope":6353,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":6150,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":6147,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1574:44:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":6149,"nodeType":"UserDefinedTypeName","pathNode":{"id":6148,"name":"EnumerableSet.AddressSet","nameLocations":["1593:13:54","1607:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":71161,"src":"1593:24:54"},"referencedDeclaration":71161,"src":"1593:24:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":6158,"nodeType":"EventDefinition","src":"1853:68:54","nodes":[],"anonymous":false,"documentation":{"id":6152,"nodeType":"StructuredDocumentation","src":"1652:196:54","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1859:13:54","parameters":{"id":6157,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6154,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1889:6:54","nodeType":"VariableDeclaration","scope":6158,"src":"1873:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6153,"name":"address","nodeType":"ElementaryTypeName","src":"1873:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6156,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1913:6:54","nodeType":"VariableDeclaration","scope":6158,"src":"1897:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6155,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1872:48:54"}},{"id":6165,"nodeType":"EventDefinition","src":"2145:68:54","nodes":[],"anonymous":false,"documentation":{"id":6159,"nodeType":"StructuredDocumentation","src":"1926:214:54","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2151:13:54","parameters":{"id":6164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6161,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2181:6:54","nodeType":"VariableDeclaration","scope":6165,"src":"2165:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6160,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6163,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2205:6:54","nodeType":"VariableDeclaration","scope":6165,"src":"2189:22:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6162,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2164:48:54"}},{"id":6170,"nodeType":"ErrorDefinition","src":"2366:46:54","nodes":[],"documentation":{"id":6166,"nodeType":"StructuredDocumentation","src":"2219:142:54","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2372:23:54","parameters":{"id":6169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6168,"mutability":"mutable","name":"policy","nameLocation":"2404:6:54","nodeType":"VariableDeclaration","scope":6170,"src":"2396:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6167,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2395:16:54"}},{"id":6175,"nodeType":"ErrorDefinition","src":"2572:49:54","nodes":[],"documentation":{"id":6171,"nodeType":"StructuredDocumentation","src":"2417:150:54","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2578:27:54","parameters":{"id":6174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6173,"mutability":"mutable","name":"reason","nameLocation":"2613:6:54","nodeType":"VariableDeclaration","scope":6175,"src":"2606:13:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":6172,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:54","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:54"}},{"id":6191,"nodeType":"FunctionDefinition","src":"2680:385:54","nodes":[],"body":{"id":6190,"nodeType":"Block","src":"2713:352:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6181,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51654,"src":"2913:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6183,"nodeType":"ExpressionStatement","src":"2913:22:54"},{"expression":{"id":6188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6184,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"3006:12:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":6186,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6178,"src":"3046:11:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6185,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1236,"src":"3021:24:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1236_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":6187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3006:52:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"id":6189,"nodeType":"ExpressionStatement","src":"3006:52:54"}]},"documentation":{"id":6176,"nodeType":"StructuredDocumentation","src":"2627:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":6179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6178,"mutability":"mutable","name":"policyAudit","nameLocation":"2700:11:54","nodeType":"VariableDeclaration","scope":6191,"src":"2692:19:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6177,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2691:21:54"},"returnParameters":{"id":6180,"nodeType":"ParameterList","parameters":[],"src":"2713:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6207,"nodeType":"FunctionDefinition","src":"3116:151:54","nodes":[],"body":{"id":6206,"nodeType":"Block","src":"3178:89:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":6199,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51740,"src":"3188:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":6200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3188:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6201,"nodeType":"ExpressionStatement","src":"3188:24:54"},{"expression":{"arguments":[{"id":6203,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6194,"src":"3246:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6202,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2137,"src":"3222:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":6204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6205,"nodeType":"ExpressionStatement","src":"3222:38:54"}]},"documentation":{"id":6192,"nodeType":"StructuredDocumentation","src":"3071:40:54","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":6197,"kind":"modifierInvocation","modifierName":{"id":6196,"name":"initializer","nameLocations":["3166:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":51540,"src":"3166:11:54"},"nodeType":"ModifierInvocation","src":"3166:11:54"}],"name":"initialize","nameLocation":"3125:10:54","parameters":{"id":6195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6194,"mutability":"mutable","name":"accessManager","nameLocation":"3144:13:54","nodeType":"VariableDeclaration","scope":6207,"src":"3136:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6193,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:23:54"},"returnParameters":{"id":6198,"nodeType":"ParameterList","parameters":[],"src":"3178:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6261,"nodeType":"FunctionDefinition","src":"3508:697:54","nodes":[],"body":{"id":6260,"nodeType":"Block","src":"3579:626:54","nodes":[],"statements":[{"condition":{"id":6218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3680:23:54","subExpression":{"arguments":[{"id":6216,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3696:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6215,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6352,"src":"3681:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6223,"nodeType":"IfStatement","src":"3676:67:54","trueBody":{"errorCall":{"arguments":[{"id":6220,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3736:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6219,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6170,"src":"3712:23:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6221,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:31:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6222,"nodeType":"RevertStatement","src":"3705:38:54"}},{"assignments":[6225,null],"declarations":[{"constant":false,"id":6225,"mutability":"mutable","name":"success","nameLocation":"3864:7:54","nodeType":"VariableDeclaration","scope":6260,"src":"3859:12:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6224,"name":"bool","nodeType":"ElementaryTypeName","src":"3859:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6238,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6230,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3904:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1190_$","typeString":"type(contract IPolicy)"}},"id":6231,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3912:10:54","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1123,"src":"3904:18:54","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6232,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3925:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:6:54","memberName":"sender","nodeType":"MemberAccess","src":"3925:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6234,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6212,"src":"3937:4:54","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6235,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3924:18:54","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6228,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3889:3:54","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6229,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3893:10:54","memberName":"encodeCall","nodeType":"MemberAccess","src":"3889:14:54","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:54:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6226,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"3877:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3884:4:54","memberName":"call","nodeType":"MemberAccess","src":"3877:11:54","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:67:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3858:86:54"},{"condition":{"id":6240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3958:8:54","subExpression":{"id":6239,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6225,"src":"3959:7:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6245,"nodeType":"IfStatement","src":"3954:91:54","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4003:41:54","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6241,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6175,"src":"3975:27:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:70:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6244,"nodeType":"RevertStatement","src":"3968:77:54"}},{"expression":{"arguments":[{"id":6251,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"4091:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6246,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4055:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6249,"indexExpression":{"expression":{"id":6247,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4075:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4075:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4055:31:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:3:54","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":71188,"src":"4055:35:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6253,"nodeType":"ExpressionStatement","src":"4055:43:54"},{"eventCall":{"arguments":[{"id":6255,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6210,"src":"4179:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6256,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4187:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4187:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6254,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6158,"src":"4165:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6259,"nodeType":"EmitStatement","src":"4160:38:54"}]},"baseFunctions":[1391],"documentation":{"id":6208,"nodeType":"StructuredDocumentation","src":"3273:230:54","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3517:15:54","parameters":{"id":6213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6210,"mutability":"mutable","name":"policy","nameLocation":"3541:6:54","nodeType":"VariableDeclaration","scope":6261,"src":"3533:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6209,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6212,"mutability":"mutable","name":"data","nameLocation":"3564:4:54","nodeType":"VariableDeclaration","scope":6261,"src":"3549:19:54","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6211,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:54","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:37:54"},"returnParameters":{"id":6214,"nodeType":"ParameterList","parameters":[],"src":"3579:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6282,"nodeType":"FunctionDefinition","src":"4381:158:54","nodes":[],"body":{"id":6281,"nodeType":"Block","src":"4428:111:54","nodes":[],"statements":[{"expression":{"arguments":[{"id":6272,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"4477:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6267,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4438:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6270,"indexExpression":{"expression":{"id":6268,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4458:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4462:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4458:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:31:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6271,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:6:54","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":71215,"src":"4438:38:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6274,"nodeType":"ExpressionStatement","src":"4438:46:54"},{"eventCall":{"arguments":[{"id":6276,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6264,"src":"4513:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6277,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4521:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4525:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4521:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6275,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6165,"src":"4499:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6280,"nodeType":"EmitStatement","src":"4494:38:54"}]},"baseFunctions":[1397],"documentation":{"id":6262,"nodeType":"StructuredDocumentation","src":"4211:165:54","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4390:12:54","parameters":{"id":6265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6264,"mutability":"mutable","name":"policy","nameLocation":"4411:6:54","nodeType":"VariableDeclaration","scope":6282,"src":"4403:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6263,"name":"address","nodeType":"ElementaryTypeName","src":"4403:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4402:16:54"},"returnParameters":{"id":6266,"nodeType":"ParameterList","parameters":[],"src":"4428:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6304,"nodeType":"FunctionDefinition","src":"4800:181:54","nodes":[],"body":{"id":6303,"nodeType":"Block","src":"4887:94:54","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6296,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6285,"src":"4941:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6292,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"4904:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6294,"indexExpression":{"id":6293,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6287,"src":"4924:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4904:27:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4932:8:54","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":71242,"src":"4904:36:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$71161_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4904:44:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6299,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6285,"src":"4967:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6298,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6352,"src":"4952:14:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4952:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4904:70:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6291,"id":6302,"nodeType":"Return","src":"4897:77:54"}]},"baseFunctions":[1383],"documentation":{"id":6283,"nodeType":"StructuredDocumentation","src":"4545:250:54","text":"@dev Verify if the specified policy contract has been delegated the rights by the assetolder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4809:18:54","parameters":{"id":6288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6285,"mutability":"mutable","name":"policy","nameLocation":"4836:6:54","nodeType":"VariableDeclaration","scope":6304,"src":"4828:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6284,"name":"address","nodeType":"ElementaryTypeName","src":"4828:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6287,"mutability":"mutable","name":"holder","nameLocation":"4852:6:54","nodeType":"VariableDeclaration","scope":6304,"src":"4844:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6286,"name":"address","nodeType":"ElementaryTypeName","src":"4844:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4827:32:54"},"returnParameters":{"id":6291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6304,"src":"4881:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6289,"name":"bool","nodeType":"ElementaryTypeName","src":"4881:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4880:6:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6320,"nodeType":"FunctionDefinition","src":"5282:746:54","nodes":[],"body":{"id":6319,"nodeType":"Block","src":"5368:660:54","nodes":[],"statements":[{"documentation":"consumes too much gas to fit in a block.","expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6313,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6151,"src":"5985:19:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$71161_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6315,"indexExpression":{"id":6314,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6307,"src":"6005:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5985:27:54","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$71161_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6013:6:54","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":71314,"src":"5985:34:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$71161_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$71161_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5985:36:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6312,"id":6318,"nodeType":"Return","src":"5978:43:54"}]},"baseFunctions":[1373],"documentation":{"id":6305,"nodeType":"StructuredDocumentation","src":"4987:290:54","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5291:21:54","parameters":{"id":6308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6307,"mutability":"mutable","name":"holder","nameLocation":"5321:6:54","nodeType":"VariableDeclaration","scope":6320,"src":"5313:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6306,"name":"address","nodeType":"ElementaryTypeName","src":"5313:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5312:16:54"},"returnParameters":{"id":6312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6311,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6320,"src":"5350:16:54","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6309,"name":"address","nodeType":"ElementaryTypeName","src":"5350:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6310,"nodeType":"ArrayTypeName","src":"5350:9:54","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5349:18:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6330,"nodeType":"FunctionDefinition","src":"6226:84:54","nodes":[],"body":{"id":6329,"nodeType":"Block","src":"6308:2:54","nodes":[],"statements":[]},"baseFunctions":[51822],"documentation":{"id":6321,"nodeType":"StructuredDocumentation","src":"6034:187:54","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6327,"kind":"modifierInvocation","modifierName":{"id":6326,"name":"onlyAdmin","nameLocations":["6298:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2120,"src":"6298:9:54"},"nodeType":"ModifierInvocation","src":"6298:9:54"}],"name":"_authorizeUpgrade","nameLocation":"6235:17:54","overrides":{"id":6325,"nodeType":"OverrideSpecifier","overrides":[],"src":"6289:8:54"},"parameters":{"id":6324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6323,"mutability":"mutable","name":"newImplementation","nameLocation":"6261:17:54","nodeType":"VariableDeclaration","scope":6330,"src":"6253:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6322,"name":"address","nodeType":"ElementaryTypeName","src":"6253:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6252:27:54"},"returnParameters":{"id":6328,"nodeType":"ParameterList","parameters":[],"src":"6308:0:54"},"scope":6353,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6352,"nodeType":"FunctionDefinition","src":"6575:148:54","nodes":[],"body":{"id":6351,"nodeType":"Block","src":"6643:80:54","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6338,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"6661:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6679:1:54","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6671:7:54","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6339,"name":"address","nodeType":"ElementaryTypeName","src":"6671:7:54","typeDescriptions":{}}},"id":6342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6671:10:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6661:20:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6346,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6333,"src":"6708:6:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6344,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6145,"src":"6685:12:54","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1236","typeString":"contract IPolicyAuditorVerifiable"}},"id":6345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6698:9:54","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1235,"src":"6685:22:54","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6347,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6685:30:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6661:54:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6349,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6660:56:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6337,"id":6350,"nodeType":"Return","src":"6653:63:54"}]},"documentation":{"id":6331,"nodeType":"StructuredDocumentation","src":"6316:254:54","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"6584:14:54","parameters":{"id":6334,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6333,"mutability":"mutable","name":"policy","nameLocation":"6607:6:54","nodeType":"VariableDeclaration","scope":6352,"src":"6599:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6332,"name":"address","nodeType":"ElementaryTypeName","src":"6599:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6598:16:54"},"returnParameters":{"id":6337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6352,"src":"6637:4:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6335,"name":"bool","nodeType":"ElementaryTypeName","src":"6637:4:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6636:6:54"},"scope":6353,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":6130,"name":"Initializable","nameLocations":["880:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":51686,"src":"880:13:54"},"id":6131,"nodeType":"InheritanceSpecifier","src":"880:13:54"},{"baseName":{"id":6132,"name":"UUPSUpgradeable","nameLocations":["899:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":51868,"src":"899:15:54"},"id":6133,"nodeType":"InheritanceSpecifier","src":"899:15:54"},{"baseName":{"id":6134,"name":"AccessControlledUpgradeable","nameLocations":["920:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2202,"src":"920:27:54"},"id":6135,"nodeType":"InheritanceSpecifier","src":"920:27:54"},{"baseName":{"id":6136,"name":"IRightsPolicyAuthorizer","nameLocations":["953:23:54"],"nodeType":"IdentifierPath","referencedDeclaration":1398,"src":"953:23:54"},"id":6137,"nodeType":"InheritanceSpecifier","src":"953:23:54"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6353,1398,2202,49313,54810,53478,51868,60438,51686],"name":"RightsPolicyAuthorizer","nameLocation":"850:22:54","scope":6354,"usedErrors":[2102,6170,6175,51449,51452,51713,51718,54781,54787,54791,60633,60646,62929,63221],"usedEvents":[6158,6165,51457,54777,60360]}],"license":"MIT"},"id":54} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61166a38819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a05260405161150b908161015f82396080518181816107d901526108da015260a0518181816105e1015261107b0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea264697066735822122013bf8b5e08f4fce8c72b2651316c68f40d0d55c92628f80e6bd2faeabb4530a764736f6c634300081a0033","sourceMap":"841:5886:59:-:0;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;-1:-1:-1;;;;;841:5886:59;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;841:5886:59;;;;;;;;1171:4:93;1163:13;;8837:64:92;841:5886:59;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;841:5886:59;;7985:34:92;7981:146;;-1:-1:-1;3006:52:59;;;841:5886;;;;;;;;1163:13:93;841:5886:59;;;;;;;;;;3006:52;841:5886;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;841:5886:59;-1:-1:-1;;;;;841:5886:59;;;8837:64:92;841:5886:59;;;;;;8087:29:92;;841:5886:59;;8087:29:92;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;841:5886:59;-1:-1:-1;841:5886:59;;;;;;-1:-1:-1;841:5886:59;;;;;-1:-1:-1;841:5886:59","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea264697066735822122013bf8b5e08f4fce8c72b2651316c68f40d0d55c92628f80e6bd2faeabb4530a764736f6c634300081a0033","sourceMap":"841:5886:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:174;;841:5886:59;;;;;;4360:26:174;;4906:70:59;;;;841:5886;;;;;;;;;;4906:70;4954:22;;;;:::i;:::-;4906:70;;;841:5886;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;8837:64:92;841:5886:59;;;;;;4301:16:92;841:5886:59;;;;4726:16:92;;:34;;;;841:5886:59;4805:1:92;4790:16;:50;;;;841:5886:59;4855:13:92;:30;;;;841:5886:59;4851:91:92;;;841:5886:59;;4805:1:92;841:5886:59;;;;;8837:64:92;841:5886:59;4979:67:92;;841:5886:59;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;841:5886:59;;3295:62:44;841:5886:59;;;3295:62:44;841:5886:59;5066:101:92;;841:5886:59;5066:101:92;841:5886:59;8837:64:92;841:5886:59;;8837:64:92;841:5886:59;5142:14:92;841:5886:59;;;4805:1:92;841:5886:59;;5142:14:92;841:5886:59;4979:67:92;841:5886:59;;;;8837:64:92;841:5886:59;4979:67:92;;;4851:91;4908:23;841:5886:59;4908:23:92;841:5886:59;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;1782:71:90;841:5886:59;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;4458:10;841:5886;;;;;8703:53:174;841:5886:59;;;;;;8703:53:174;;;:::i;:::-;;4458:10:59;4499:33;;841:5886;4499:33;;841:5886;;;;;;-1:-1:-1;;841:5886:59;;;;;1782:71:90;841:5886:59;;;;;4698:71:90;;;841:5886:59;;4698:71:90;841:5886:59;;;;;;;;4698:71:90;841:5886:59;;4698:71:90;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;;;1427:54;841:5886;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;1782:71:90;841:5886:59;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;841:5886:59;4355:110:90;841:5886:59;4411:43:90;;841:5886:59;4411:43:90;841:5886:59;;;;;4411:43:90;4254:92;4302:33;841:5886:59;4302:33:90;966:10:96;841:5886:59;;;;4302:33:90;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;841:5886:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;5115:6:93;841:5886:59;5106:4:93;5098:23;5094:145;;841:5886:59;;;811:66:130;841:5886:59;;;5094:145:93;5199:29;841:5886:59;5199:29:93;841:5886:59;;5199:29:93;841:5886:59;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;841:5886:59;4683:4:93;;4675:23;:120;;;;;841:5886:59;4658:251:93;;;3058:30:44;841:5886:59;;3295:62:44;841:5886:59;;;;3058:30:44;;;;841:5886:59;3058:30:44;;841:5886:59;;3058:30:44;;841:5886:59;1893:10:44;841:5886:59;;;;3058:30:44;;;;;;;841:5886:59;3058:30:44;;;841:5886:59;1869:35:44;;1865:140;;841:5886:59;;;;;;;6156:52:93;;841:5886:59;6156:52:93;841:5886:59;6156:52:93;;;;841:5886:59;;6156:52:93;;;841:5886:59;-1:-1:-1;6152:437:93;;6518:60;;841:5886:59;6518:60:93;841:5886:59;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;841:5886:59;;811:66:130;841:5886:59;;;811:66:130;841:5886:59;2407:36:130;841:5886:59;2407:36:130;;841:5886:59;;2458:15:130;:11;;841:5886:59;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;841:5886:59;6159:70:130;6199:19;841:5886:59;6199:19:130;841:5886:59;;6199:19:130;1744:119;1805:47;841:5886:59;1805:47:130;841:5886:59;;;;1805:47:130;6246:120:93;6317:34;841:5886:59;6317:34:93;841:5886:59;;;;6317:34:93;6156:52;;;;841:5886:59;6156:52:93;;841:5886:59;6156:52:93;;;;;;841:5886:59;6156:52:93;;;:::i;:::-;;;841:5886:59;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;841:5886:59;;1927:67:44;;;841:5886:59;;1927:67:44;;520:1:42;841:5886:59;;520:1:42;;841:5886:59;520:1:42;3058:30:44;841:5886:59;;520:1:42;;;;;;1927:67:44;3058:30;;;841:5886:59;3058:30:44;;841:5886:59;3058:30:44;;;;;;841:5886:59;3058:30:44;;;:::i;:::-;;;841:5886:59;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:44;;;;;;-1:-1:-1;3058:30:44;;;841:5886:59;;;;;;;;;4675:120:93;841:5886:59;;;811:66:130;841:5886:59;;4753:42:93;;4675:120;;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3681:22;;;:::i;:::-;3680:23;3676:67;;841:5886;;;3889:54;841:5886;;;;;;3889:54;;;;841:5886;;3889:54;;;;;;3925:10;3889:54;;;841:5886;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:54;;841:5886;3889:54;;;;;;:::i;:::-;3877:67;;;;;;;;:::i;:::-;;3958:8;3954:91;;3925:10;841:5886;;;;;8382:50:174;841:5886:59;;;;;;8382:50:174;;;:::i;:::-;;3925:10:59;4165:33;;841:5886;4165:33;;841:5886;3954:91;841:5886;;;3975:70;;;841:5886;;3975:70;;841:5886;;;;;;;;;;;;;;;;3975:70;3676:67;841:5886;3712:31;;841:5886;3712:31;841:5886;;;;;3712:31;841:5886;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;841:5886:59;;;;;-1:-1:-1;841:5886:59;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;841:5886:59;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;6577:148::-;841:5886;;6663:20;;;:54;;;;6655:63;6577:148;:::o;6663:54::-;841:5886;;;;6687:30;841:5886;6687:30;;;;;841:5886;;6687:12;:30;:12;841:5886;6687:12;841:5886;6687:30;;;;;;;6681:1;6687:30;;;6663:54;6577:148;:::o;6687:30::-;;;841:5886;6687:30;;841:5886;6687:30;;;;;;841:5886;6687:30;;;:::i;:::-;;;841:5886;;;;;;;:::i;:::-;6577:148;:::o;6687:30::-;;;-1:-1:-1;6687:30:59;;4964:220:90;841:5886:59;;5147:30:90;4964:220;841:5886:59;;;1782:71:90;841:5886:59;;;1782:71:90;841:5886:59;;;;;;5147:30:90;4964:220::o;841:5886:59:-;;;;;;;;-1:-1:-1;841:5886:59;;-1:-1:-1;841:5886:59;;;-1:-1:-1;841:5886:59;:::o;:::-;;;;;;;;;;2241:406:174;-1:-1:-1;841:5886:59;;;4360:14:174;;;841:5886:59;;;;;;2325:21:174;;841:5886:59;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:174;841:5886:59;;;;;;;2576:11:174;:::o;2320:321::-;2618:12;;841:5886:59;2618:12:174;:::o;2815:1368::-;;3010:14;;;841:5886:59;;;;;;;;;;;3046:13:174;;;3042:1135;3046:13;;;841:5886:59;;;;;;;;;;;;;;;;;;;3521:23:174;;;3517:378;;3042:1135;841:5886:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:174;4112:11;:::o;841:5886:59:-;;;;;;;;;;3517:378:174;841:5886:59;3584:22:174;3705:23;3584:22;;;:::i;:::-;841:5886:59;;;;;;3705:23:174;;;;;:::i;841:5886:59:-;;;;;;;;;;;;3517:378:174;;;;;841:5886:59;;;;;;;;;;3042:1135:174;4154:12;;;;841:5886:59;4154:12:174;:::o;7084:141:92:-;841:5886:59;8837:64:92;841:5886:59;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;4421:582:151;;4593:8;;-1:-1:-1;841:5886:59;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;841:5886:59;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;841:5886:59;4917:24:151;;4862:1;4917:24;841:5886:59;4917:24:151;841:5886:59;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"50429":[{"start":2009,"length":32},{"start":2266,"length":32}],"5934":[{"start":1505,"length":32},{"start":4219,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x04907b488b228c3017674faa8bcffcee3e6e7555eda67cb52ed6699336949dcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8abbab371c6cf333f5a6de0e365724216599c897550e26e656dd05b60b8ec2c8\",\"dweb:/ipfs/QmayAshmPbwsbzHXSqxnn9KQYzsg4nmafYsNLTAiSc6HJ9\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the asset holder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0x04907b488b228c3017674faa8bcffcee3e6e7555eda67cb52ed6699336949dcf","urls":["bzz-raw://8abbab371c6cf333f5a6de0e365724216599c897550e26e656dd05b60b8ec2c8","dweb:/ipfs/QmayAshmPbwsbzHXSqxnn9KQYzsg4nmafYsNLTAiSc6HJ9"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5940,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)69884_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)69884_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)69884_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)69884_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":69883,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)69569_storage"}]},"t_struct(Set)69569_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":69564,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":69568,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6143,"exportedSymbols":{"AccessControlledUpgradeable":[2672],"EnumerableSet":[70171],"IPolicy":[1349],"IPolicyAuditorVerifiable":[1395],"IRightsPolicyAuthorizer":[1478],"Initializable":[50409],"RightsPolicyAuthorizer":[6142],"UUPSUpgradeable":[50591]},"nodeType":"SourceUnit","src":"124:6604:59","nodes":[{"id":5904,"nodeType":"PragmaDirective","src":"124:23:59","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5906,"nodeType":"ImportDirective","src":"149:98:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":50410,"symbolAliases":[{"foreign":{"id":5905,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"158:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5908,"nodeType":"ImportDirective","src":"248:88:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":70172,"symbolAliases":[{"foreign":{"id":5907,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70171,"src":"257:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5910,"nodeType":"ImportDirective","src":"337:102:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":50592,"symbolAliases":[{"foreign":{"id":5909,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50591,"src":"346:15:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5912,"nodeType":"ImportDirective","src":"440:115:59","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":2673,"symbolAliases":[{"foreign":{"id":5911,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"449:27:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5914,"nodeType":"ImportDirective","src":"557:72:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1350,"symbolAliases":[{"foreign":{"id":5913,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"566:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5916,"nodeType":"ImportDirective","src":"630:102:59","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1479,"symbolAliases":[{"foreign":{"id":5915,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"639:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5918,"nodeType":"ImportDirective","src":"733:106:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1396,"symbolAliases":[{"foreign":{"id":5917,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1395,"src":"742:24:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6142,"nodeType":"ContractDefinition","src":"841:5886:59","nodes":[{"id":5930,"nodeType":"UsingForDirective","src":"983:49:59","nodes":[],"global":false,"libraryName":{"id":5927,"name":"EnumerableSet","nameLocations":["989:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":70171,"src":"989:13:59"},"typeName":{"id":5929,"nodeType":"UserDefinedTypeName","pathNode":{"id":5928,"name":"EnumerableSet.AddressSet","nameLocations":["1007:13:59","1021:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69884,"src":"1007:24:59"},"referencedDeclaration":69884,"src":"1007:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":5934,"nodeType":"VariableDeclaration","src":"1427:54:59","nodes":[],"constant":false,"documentation":{"id":5931,"nodeType":"StructuredDocumentation","src":"1361:61:59","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1469:12:59","scope":6142,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":5933,"nodeType":"UserDefinedTypeName","pathNode":{"id":5932,"name":"IPolicyAuditorVerifiable","nameLocations":["1427:24:59"],"nodeType":"IdentifierPath","referencedDeclaration":1395,"src":"1427:24:59"},"referencedDeclaration":1395,"src":"1427:24:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":5940,"nodeType":"VariableDeclaration","src":"1574:72:59","nodes":[],"constant":false,"documentation":{"id":5935,"nodeType":"StructuredDocumentation","src":"1488:81:59","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1627:19:59","scope":6142,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":5939,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5936,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1574:44:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5938,"nodeType":"UserDefinedTypeName","pathNode":{"id":5937,"name":"EnumerableSet.AddressSet","nameLocations":["1593:13:59","1607:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69884,"src":"1593:24:59"},"referencedDeclaration":69884,"src":"1593:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":5947,"nodeType":"EventDefinition","src":"1853:68:59","nodes":[],"anonymous":false,"documentation":{"id":5941,"nodeType":"StructuredDocumentation","src":"1652:196:59","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1859:13:59","parameters":{"id":5946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5943,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1889:6:59","nodeType":"VariableDeclaration","scope":5947,"src":"1873:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5942,"name":"address","nodeType":"ElementaryTypeName","src":"1873:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5945,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1913:6:59","nodeType":"VariableDeclaration","scope":5947,"src":"1897:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5944,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1872:48:59"}},{"id":5954,"nodeType":"EventDefinition","src":"2145:68:59","nodes":[],"anonymous":false,"documentation":{"id":5948,"nodeType":"StructuredDocumentation","src":"1926:214:59","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2151:13:59","parameters":{"id":5953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5950,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2181:6:59","nodeType":"VariableDeclaration","scope":5954,"src":"2165:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5949,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5952,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2205:6:59","nodeType":"VariableDeclaration","scope":5954,"src":"2189:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5951,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2164:48:59"}},{"id":5959,"nodeType":"ErrorDefinition","src":"2366:46:59","nodes":[],"documentation":{"id":5955,"nodeType":"StructuredDocumentation","src":"2219:142:59","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2372:23:59","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5957,"mutability":"mutable","name":"policy","nameLocation":"2404:6:59","nodeType":"VariableDeclaration","scope":5959,"src":"2396:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5956,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2395:16:59"}},{"id":5964,"nodeType":"ErrorDefinition","src":"2572:49:59","nodes":[],"documentation":{"id":5960,"nodeType":"StructuredDocumentation","src":"2417:150:59","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2578:27:59","parameters":{"id":5963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5962,"mutability":"mutable","name":"reason","nameLocation":"2613:6:59","nodeType":"VariableDeclaration","scope":5964,"src":"2606:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5961,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:59"}},{"id":5980,"nodeType":"FunctionDefinition","src":"2680:385:59","nodes":[],"body":{"id":5979,"nodeType":"Block","src":"2713:352:59","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5970,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50377,"src":"2913:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5972,"nodeType":"ExpressionStatement","src":"2913:22:59"},{"expression":{"id":5977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5973,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"3006:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5975,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5967,"src":"3046:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5974,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1395,"src":"3021:24:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1395_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":5976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3006:52:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"id":5978,"nodeType":"ExpressionStatement","src":"3006:52:59"}]},"documentation":{"id":5965,"nodeType":"StructuredDocumentation","src":"2627:48:59","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5967,"mutability":"mutable","name":"policyAudit","nameLocation":"2700:11:59","nodeType":"VariableDeclaration","scope":5980,"src":"2692:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5966,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2691:21:59"},"returnParameters":{"id":5969,"nodeType":"ParameterList","parameters":[],"src":"2713:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5996,"nodeType":"FunctionDefinition","src":"3116:151:59","nodes":[],"body":{"id":5995,"nodeType":"Block","src":"3178:89:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5988,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50463,"src":"3188:22:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3188:24:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5990,"nodeType":"ExpressionStatement","src":"3188:24:59"},{"expression":{"arguments":[{"id":5992,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"3246:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5991,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"3222:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:38:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5994,"nodeType":"ExpressionStatement","src":"3222:38:59"}]},"documentation":{"id":5981,"nodeType":"StructuredDocumentation","src":"3071:40:59","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5986,"kind":"modifierInvocation","modifierName":{"id":5985,"name":"initializer","nameLocations":["3166:11:59"],"nodeType":"IdentifierPath","referencedDeclaration":50263,"src":"3166:11:59"},"nodeType":"ModifierInvocation","src":"3166:11:59"}],"name":"initialize","nameLocation":"3125:10:59","parameters":{"id":5984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5983,"mutability":"mutable","name":"accessManager","nameLocation":"3144:13:59","nodeType":"VariableDeclaration","scope":5996,"src":"3136:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5982,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:23:59"},"returnParameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"3178:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6050,"nodeType":"FunctionDefinition","src":"3508:697:59","nodes":[],"body":{"id":6049,"nodeType":"Block","src":"3579:626:59","nodes":[],"statements":[{"condition":{"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3680:23:59","subExpression":{"arguments":[{"id":6005,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3696:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6004,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"3681:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6012,"nodeType":"IfStatement","src":"3676:67:59","trueBody":{"errorCall":{"arguments":[{"id":6009,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3736:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6008,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"3712:23:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6011,"nodeType":"RevertStatement","src":"3705:38:59"}},{"assignments":[6014,null],"declarations":[{"constant":false,"id":6014,"mutability":"mutable","name":"success","nameLocation":"3864:7:59","nodeType":"VariableDeclaration","scope":6049,"src":"3859:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6013,"name":"bool","nodeType":"ElementaryTypeName","src":"3859:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6027,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6019,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"3904:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1349_$","typeString":"type(contract IPolicy)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3912:10:59","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1301,"src":"3904:18:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6021,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3925:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:6:59","memberName":"sender","nodeType":"MemberAccess","src":"3925:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6023,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"3937:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3924:18:59","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3889:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3893:10:59","memberName":"encodeCall","nodeType":"MemberAccess","src":"3889:14:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:54:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6015,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3877:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3884:4:59","memberName":"call","nodeType":"MemberAccess","src":"3877:11:59","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:67:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3858:86:59"},{"condition":{"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3958:8:59","subExpression":{"id":6028,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6014,"src":"3959:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6034,"nodeType":"IfStatement","src":"3954:91:59","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4003:41:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6030,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"3975:27:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:70:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6033,"nodeType":"RevertStatement","src":"3968:77:59"}},{"expression":{"arguments":[{"id":6040,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"4091:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6035,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4055:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6038,"indexExpression":{"expression":{"id":6036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4075:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4075:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4055:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:3:59","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":69911,"src":"4055:35:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:43:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6042,"nodeType":"ExpressionStatement","src":"4055:43:59"},{"eventCall":{"arguments":[{"id":6044,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"4179:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4187:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4187:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6043,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"4165:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6048,"nodeType":"EmitStatement","src":"4160:38:59"}]},"baseFunctions":[1471],"documentation":{"id":5997,"nodeType":"StructuredDocumentation","src":"3273:230:59","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3517:15:59","parameters":{"id":6002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5999,"mutability":"mutable","name":"policy","nameLocation":"3541:6:59","nodeType":"VariableDeclaration","scope":6050,"src":"3533:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5998,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6001,"mutability":"mutable","name":"data","nameLocation":"3564:4:59","nodeType":"VariableDeclaration","scope":6050,"src":"3549:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6000,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:37:59"},"returnParameters":{"id":6003,"nodeType":"ParameterList","parameters":[],"src":"3579:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6071,"nodeType":"FunctionDefinition","src":"4381:158:59","nodes":[],"body":{"id":6070,"nodeType":"Block","src":"4428:111:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":6061,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"4477:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6056,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4438:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6059,"indexExpression":{"expression":{"id":6057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4458:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4462:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4458:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:6:59","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":69938,"src":"4438:38:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:46:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6063,"nodeType":"ExpressionStatement","src":"4438:46:59"},{"eventCall":{"arguments":[{"id":6065,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"4513:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4521:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4525:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4521:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6064,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5954,"src":"4499:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6069,"nodeType":"EmitStatement","src":"4494:38:59"}]},"baseFunctions":[1477],"documentation":{"id":6051,"nodeType":"StructuredDocumentation","src":"4211:165:59","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4390:12:59","parameters":{"id":6054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6053,"mutability":"mutable","name":"policy","nameLocation":"4411:6:59","nodeType":"VariableDeclaration","scope":6071,"src":"4403:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6052,"name":"address","nodeType":"ElementaryTypeName","src":"4403:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4402:16:59"},"returnParameters":{"id":6055,"nodeType":"ParameterList","parameters":[],"src":"4428:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6093,"nodeType":"FunctionDefinition","src":"4802:181:59","nodes":[],"body":{"id":6092,"nodeType":"Block","src":"4889:94:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"4943:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6081,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4906:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6083,"indexExpression":{"id":6082,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4926:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4906:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4934:8:59","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":69965,"src":"4906:36:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6088,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"4969:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6087,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"4954:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4954:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4906:70:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6080,"id":6091,"nodeType":"Return","src":"4899:77:59"}]},"baseFunctions":[1463],"documentation":{"id":6072,"nodeType":"StructuredDocumentation","src":"4545:252:59","text":"@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4811:18:59","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6074,"mutability":"mutable","name":"policy","nameLocation":"4838:6:59","nodeType":"VariableDeclaration","scope":6093,"src":"4830:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6073,"name":"address","nodeType":"ElementaryTypeName","src":"4830:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"holder","nameLocation":"4854:6:59","nodeType":"VariableDeclaration","scope":6093,"src":"4846:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6075,"name":"address","nodeType":"ElementaryTypeName","src":"4846:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4829:32:59"},"returnParameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6093,"src":"4883:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6078,"name":"bool","nodeType":"ElementaryTypeName","src":"4883:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4882:6:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6109,"nodeType":"FunctionDefinition","src":"5284:746:59","nodes":[],"body":{"id":6108,"nodeType":"Block","src":"5370:660:59","nodes":[],"statements":[{"documentation":"consumes too much gas to fit in a block.","expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6102,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"5987:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6104,"indexExpression":{"id":6103,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"6007:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5987:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6015:6:59","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":70037,"src":"5987:34:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69884_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5987:36:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6101,"id":6107,"nodeType":"Return","src":"5980:43:59"}]},"baseFunctions":[1453],"documentation":{"id":6094,"nodeType":"StructuredDocumentation","src":"4989:290:59","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5293:21:59","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6096,"mutability":"mutable","name":"holder","nameLocation":"5323:6:59","nodeType":"VariableDeclaration","scope":6109,"src":"5315:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6095,"name":"address","nodeType":"ElementaryTypeName","src":"5315:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5314:16:59"},"returnParameters":{"id":6101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6109,"src":"5352:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6098,"name":"address","nodeType":"ElementaryTypeName","src":"5352:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6099,"nodeType":"ArrayTypeName","src":"5352:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5351:18:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6119,"nodeType":"FunctionDefinition","src":"6228:84:59","nodes":[],"body":{"id":6118,"nodeType":"Block","src":"6310:2:59","nodes":[],"statements":[]},"baseFunctions":[50545],"documentation":{"id":6110,"nodeType":"StructuredDocumentation","src":"6036:187:59","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6116,"kind":"modifierInvocation","modifierName":{"id":6115,"name":"onlyAdmin","nameLocations":["6300:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"6300:9:59"},"nodeType":"ModifierInvocation","src":"6300:9:59"}],"name":"_authorizeUpgrade","nameLocation":"6237:17:59","overrides":{"id":6114,"nodeType":"OverrideSpecifier","overrides":[],"src":"6291:8:59"},"parameters":{"id":6113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6112,"mutability":"mutable","name":"newImplementation","nameLocation":"6263:17:59","nodeType":"VariableDeclaration","scope":6119,"src":"6255:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6111,"name":"address","nodeType":"ElementaryTypeName","src":"6255:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6254:27:59"},"returnParameters":{"id":6117,"nodeType":"ParameterList","parameters":[],"src":"6310:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6141,"nodeType":"FunctionDefinition","src":"6577:148:59","nodes":[],"body":{"id":6140,"nodeType":"Block","src":"6645:80:59","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6127,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"6663:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6681:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6673:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6128,"name":"address","nodeType":"ElementaryTypeName","src":"6673:7:59","typeDescriptions":{}}},"id":6131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6663:20:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6135,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"6710:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6133,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"6687:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6700:9:59","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1394,"src":"6687:22:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6687:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6663:54:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6662:56:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6126,"id":6139,"nodeType":"Return","src":"6655:63:59"}]},"documentation":{"id":6120,"nodeType":"StructuredDocumentation","src":"6318:254:59","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"6586:14:59","parameters":{"id":6123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6122,"mutability":"mutable","name":"policy","nameLocation":"6609:6:59","nodeType":"VariableDeclaration","scope":6141,"src":"6601:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6121,"name":"address","nodeType":"ElementaryTypeName","src":"6601:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6600:16:59"},"returnParameters":{"id":6126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6141,"src":"6639:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6124,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5919,"name":"Initializable","nameLocations":["880:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":50409,"src":"880:13:59"},"id":5920,"nodeType":"InheritanceSpecifier","src":"880:13:59"},{"baseName":{"id":5921,"name":"UUPSUpgradeable","nameLocations":["899:15:59"],"nodeType":"IdentifierPath","referencedDeclaration":50591,"src":"899:15:59"},"id":5922,"nodeType":"InheritanceSpecifier","src":"899:15:59"},{"baseName":{"id":5923,"name":"AccessControlledUpgradeable","nameLocations":["920:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":2672,"src":"920:27:59"},"id":5924,"nodeType":"InheritanceSpecifier","src":"920:27:59"},{"baseName":{"id":5925,"name":"IRightsPolicyAuthorizer","nameLocations":["953:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":1478,"src":"953:23:59"},"id":5926,"nodeType":"InheritanceSpecifier","src":"953:23:59"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6142,1478,2672,48036,53533,52201,50591,59161,50409],"name":"RightsPolicyAuthorizer","nameLocation":"850:22:59","scope":6143,"usedErrors":[2572,5959,5964,50172,50175,50436,50441,53504,53510,53514,59356,59369,61652,61944],"usedEvents":[5947,5954,50180,53500,59083]}],"license":"MIT"},"id":59} diff --git a/src/config/abi/SubscriptionPolicy.json b/src/config/abi/SubscriptionPolicy.json index c829c70dc..ba2d64318 100644 --- a/src/config/abi/SubscriptionPolicy.json +++ b/src/config/abi/SubscriptionPolicy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"attestations","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"active","type":"bool","internalType":"bool"},{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"createdAt","type":"uint256","internalType":"uint256"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"available","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"resolveTerms","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AccessGranted","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c857601f61175d38819003918201601f19168301916001600160401b038311848410176100cc578084926060946040528339810103126100c857610047816100e0565b61005f6040610058602085016100e0565b93016100e0565b60015f556001600160a01b0390811660805290811660a0521660c05260405161166890816100f58239608051818181610a3b01528181610d43015261149f015260a0518181816101620152818161031001526105cb015260c05181818161010e01526115590152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c85756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461113157508063028dd4251461018657806306fdde03146110d257806319ad44fc14610d17578063392e53cd146110b05780633c6a5ee314610f5f5780637284e41614610da057806396ba154d14610230578063ac3e8fb014610d67578063b1b87ffb14610d17578063c43e04c014610574578063d1f5789414610277578063dccc792f14610235578063dd4fcc3f14610230578063e8a96b46146101f4578063e8d55ccf14610186578063f1bdc452146101365763f520d4eb146100e2575f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101325760406003193601126101325761019f6111cf565b73ffffffffffffffffffffffffffffffffffffffff6101bc6111f2565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b34610132576020600319360112610132576020610212600435611510565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b611279565b346101325760206003193601126101325761024e611318565b507f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610132576040600319360112610132576102906111cf565b60243567ffffffffffffffff8111610132573660238201121561013257806004013567ffffffffffffffff8111610132578101366024820111610132576040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105695773ffffffffffffffffffffffffffffffffffffffff915f9161053a575b501633036104b657600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040908290031261013257604460248201359101359173ffffffffffffffffffffffffffffffffffffffff83168093036101325781156104585773ffffffffffffffffffffffffffffffffffffffff9182600192604051926103e68461129f565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b61055c915060203d602011610562575b61055481836112d7565b8101906113da565b85610355565b503d61054a565b6040513d5f823e3d90fd5b346101325760406003193601126101325761058d6111cf565b6024359067ffffffffffffffff821161013257816004019061014060031984360301126101325773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610c935760ff6001541615610c6b5773ffffffffffffffffffffffffffffffffffffffff1691825f52600360205260405f2073ffffffffffffffffffffffffffffffffffffffff6001604051926106438461129f565b80548452015416602082015260a48201359261010483019161069b610689610681610679610671878761133c565b905089611390565b845190611390565b9251836113c7565b610693858561133c565b9190506113c7565b8510610be75762015180810290808204620151801490151715610bba57420191824211610bba5760405191610140830183811067ffffffffffffffff821117610b75576040523580151581036101325782526106f960248501611215565b906020830191825261070d60448601611215565b906040840191825261072160648701611215565b966060850197885260808501906084880135825260a0860190815260c086019160c4890135835260e087019360e48a013585523567ffffffffffffffff8111610132578901983660238b0112156101325760048a01359967ffffffffffffffff8b11610b75578a60051b60206004816040519e8f906107a2838701836112d7565b81520192840101019136831161013257602401905b828210610ba2575050506101008801998a526101248101359067ffffffffffffffff82116101325701993660238c0112156101325760048b01359567ffffffffffffffff8711610b755760405196610837601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001896112d7565b8088523660248e83010111610132578060248f9e9f9b9a999897969594939f01602089013786016020015f90526101208801958652805173ffffffffffffffffffffffffffffffffffffffff169c8b516040519e8f9b60208d015260408c01523060608c015260808b0160a0905260c08b016108b2916115a8565b978a89037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a08c015261014089019951151589525173ffffffffffffffffffffffffffffffffffffffff1660208901525173ffffffffffffffffffffffffffffffffffffffff1660408801525173ffffffffffffffffffffffffffffffffffffffff1660608701525160808601525160a08501525160c08401525160e0830152855192610100830161014090528351809152610160830193602001905f5b818110610b46575050509261099c602095936109c893610a0a965190610120818403910152611236565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018852876112d7565b610a2184519160405197889485947f8ca86cad0000000000000000000000000000000000000000000000000000000086526060600487015260648601906115a8565b916024850152600319848303016044850152611236565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1928315610569575f93610b12575b5051908151915f5b838110610a8557602085604051908152f35b8073ffffffffffffffffffffffffffffffffffffffff610aa7600193856115f1565b51165f52600260205260405f20845f526020528560405f205573ffffffffffffffffffffffffffffffffffffffff610adf82856115f1565b5116847f65d0cc1e52d49938ca4ad9f423c79c1b84d914b9a683fbc5d3f93ac3cc5635f560206040518a8152a301610a73565b9092506020813d602011610b3e575b81610b2e602093836112d7565b8101031261013257519183610a6b565b3d9150610b21565b825173ffffffffffffffffffffffffffffffffffffffff1686528a965060209586019590920191600101610972565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610baf84611215565b8152019101906107b7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610132576040600319360112610132576020610d96610d856111cf565b610d90602435611510565b90611406565b6040519015158152f35b34610132575f60031936011261013257610f5b610160610dc360405191826112d7565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e00000000000000000000000000000000000000000000000000610140820152604051918291602083526020830190611236565b0390f35b346101325760206003193601126101325773ffffffffffffffffffffffffffffffffffffffff610f8d6111cf565b610f95611318565b50165f52600360205260405f206020604051610fb08161129f565b73ffffffffffffffffffffffffffffffffffffffff6001845494858452015416918291015260405191610fe2836112bb565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff604051926110176040856112d7565b600784527f697066733a2f2f00000000000000000000000000000000000000000000000000602085015260608501938452604051946020865251602086015251166040840152516004811015611083578291610f5b9160608401525160808084015260a0830190611236565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b34610132575f60031936011261013257602060ff600154166040519015158152f35b34610132575f60031936011261013257610f5b6040516110f36040826112d7565b601281527f537562736372697074696f6e506f6c69637900000000000000000000000000006020820152604051918291602083526020830190611236565b3461013257602060031936011261013257600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013257817f7447cd0900000000000000000000000000000000000000000000000000000000602093149081156111a5575b5015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361119e565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b34610132576040600319360112610132576020610d966112976111cf565b610d906111f2565b6040810190811067ffffffffffffffff821117610b7557604052565b6080810190811067ffffffffffffffff821117610b7557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b7557604052565b60405190611325826112bb565b606080835f81525f60208201525f60408201520152565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610132570180359067ffffffffffffffff821161013257602001918160051b3603831361013257565b811561139a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b81810292918115918404141715610bba57565b90816020910312610132575173ffffffffffffffffffffffffffffffffffffffff811681036101325790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561150a57604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f916114d2575090565b90506020813d602011611502575b816114ed602093836112d7565b81010312610132575180151581036101325790565b3d91506114e0565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f9161158c575090565b6115a5915060203d6020116105625761055481836112d7565b90565b90602080835192838152019201905f5b8181106115c55750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016115b8565b80518210156116055760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212208f1c6a887ed50750b5a562b3d64e9a43ecfced0370832a710c49c53efac2bd6164736f6c634300081a0033","sourceMap":"270:4054:36:-:0;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;-1:-1:-1;;;;;270:4054:36;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:83;-1:-1:-1;1857:1:83;-1:-1:-1;;;;;270:4054:36;;;4717:60:34;;270:4054:36;;;;4787:65:34;270:4054:36;4862:49:34;;270:4054:36;;;;;;;;4717:60:34;270:4054:36;;;;;;;;;;;;;;;4787:65:34;270:4054:36;;;;;;;;;;;;;;;4862:49:34;270:4054:36;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;-1:-1:-1;270:4054:36;;;;;-1:-1:-1;270:4054:36;;;;-1:-1:-1;;;;;270:4054:36;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461113157508063028dd4251461018657806306fdde03146110d257806319ad44fc14610d17578063392e53cd146110b05780633c6a5ee314610f5f5780637284e41614610da057806396ba154d14610230578063ac3e8fb014610d67578063b1b87ffb14610d17578063c43e04c014610574578063d1f5789414610277578063dccc792f14610235578063dd4fcc3f14610230578063e8a96b46146101f4578063e8d55ccf14610186578063f1bdc452146101365763f520d4eb146100e2575f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101325760406003193601126101325761019f6111cf565b73ffffffffffffffffffffffffffffffffffffffff6101bc6111f2565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b34610132576020600319360112610132576020610212600435611510565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b611279565b346101325760206003193601126101325761024e611318565b507f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610132576040600319360112610132576102906111cf565b60243567ffffffffffffffff8111610132573660238201121561013257806004013567ffffffffffffffff8111610132578101366024820111610132576040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105695773ffffffffffffffffffffffffffffffffffffffff915f9161053a575b501633036104b657600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690556040908290031261013257604460248201359101359173ffffffffffffffffffffffffffffffffffffffff83168093036101325781156104585773ffffffffffffffffffffffffffffffffffffffff9182600192604051926103e68461129f565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b61055c915060203d602011610562575b61055481836112d7565b8101906113da565b85610355565b503d61054a565b6040513d5f823e3d90fd5b346101325760406003193601126101325761058d6111cf565b6024359067ffffffffffffffff821161013257816004019061014060031984360301126101325773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163303610c935760ff6001541615610c6b5773ffffffffffffffffffffffffffffffffffffffff1691825f52600360205260405f2073ffffffffffffffffffffffffffffffffffffffff6001604051926106438461129f565b80548452015416602082015260a48201359261010483019161069b610689610681610679610671878761133c565b905089611390565b845190611390565b9251836113c7565b610693858561133c565b9190506113c7565b8510610be75762015180810290808204620151801490151715610bba57420191824211610bba5760405191610140830183811067ffffffffffffffff821117610b75576040523580151581036101325782526106f960248501611215565b906020830191825261070d60448601611215565b906040840191825261072160648701611215565b966060850197885260808501906084880135825260a0860190815260c086019160c4890135835260e087019360e48a013585523567ffffffffffffffff8111610132578901983660238b0112156101325760048a01359967ffffffffffffffff8b11610b75578a60051b60206004816040519e8f906107a2838701836112d7565b81520192840101019136831161013257602401905b828210610ba2575050506101008801998a526101248101359067ffffffffffffffff82116101325701993660238c0112156101325760048b01359567ffffffffffffffff8711610b755760405196610837601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016602001896112d7565b8088523660248e83010111610132578060248f9e9f9b9a999897969594939f01602089013786016020015f90526101208801958652805173ffffffffffffffffffffffffffffffffffffffff169c8b516040519e8f9b60208d015260408c01523060608c015260808b0160a0905260c08b016108b2916115a8565b978a89037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a08c015261014089019951151589525173ffffffffffffffffffffffffffffffffffffffff1660208901525173ffffffffffffffffffffffffffffffffffffffff1660408801525173ffffffffffffffffffffffffffffffffffffffff1660608701525160808601525160a08501525160c08401525160e0830152855192610100830161014090528351809152610160830193602001905f5b818110610b46575050509261099c602095936109c893610a0a965190610120818403910152611236565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018852876112d7565b610a2184519160405197889485947f8ca86cad0000000000000000000000000000000000000000000000000000000086526060600487015260648601906115a8565b916024850152600319848303016044850152611236565b03815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1928315610569575f93610b12575b5051908151915f5b838110610a8557602085604051908152f35b8073ffffffffffffffffffffffffffffffffffffffff610aa7600193856115f1565b51165f52600260205260405f20845f526020528560405f205573ffffffffffffffffffffffffffffffffffffffff610adf82856115f1565b5116847f65d0cc1e52d49938ca4ad9f423c79c1b84d914b9a683fbc5d3f93ac3cc5635f560206040518a8152a301610a73565b9092506020813d602011610b3e575b81610b2e602093836112d7565b8101031261013257519183610a6b565b3d9150610b21565b825173ffffffffffffffffffffffffffffffffffffffff1686528a965060209586019590920191600101610972565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610baf84611215565b8152019101906107b7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610132575f60031936011261013257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b34610132576040600319360112610132576020610d96610d856111cf565b610d90602435611510565b90611406565b6040519015158152f35b34610132575f60031936011261013257610f5b610160610dc360405191826112d7565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e00000000000000000000000000000000000000000000000000610140820152604051918291602083526020830190611236565b0390f35b346101325760206003193601126101325773ffffffffffffffffffffffffffffffffffffffff610f8d6111cf565b610f95611318565b50165f52600360205260405f206020604051610fb08161129f565b73ffffffffffffffffffffffffffffffffffffffff6001845494858452015416918291015260405191610fe2836112bb565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff604051926110176040856112d7565b600784527f697066733a2f2f00000000000000000000000000000000000000000000000000602085015260608501938452604051946020865251602086015251166040840152516004811015611083578291610f5b9160608401525160808084015260a0830190611236565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b34610132575f60031936011261013257602060ff600154166040519015158152f35b34610132575f60031936011261013257610f5b6040516110f36040826112d7565b601281527f537562736372697074696f6e506f6c69637900000000000000000000000000006020820152604051918291602083526020830190611236565b3461013257602060031936011261013257600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013257817f7447cd0900000000000000000000000000000000000000000000000000000000602093149081156111a5575b5015158152f35b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361119e565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b359073ffffffffffffffffffffffffffffffffffffffff8216820361013257565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b34610132576040600319360112610132576020610d966112976111cf565b610d906111f2565b6040810190811067ffffffffffffffff821117610b7557604052565b6080810190811067ffffffffffffffff821117610b7557604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610b7557604052565b60405190611325826112bb565b606080835f81525f60208201525f60408201520152565b9035907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe181360301821215610132570180359067ffffffffffffffff821161013257602001918160051b3603831361013257565b811561139a570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b81810292918115918404141715610bba57565b90816020910312610132575173ffffffffffffffffffffffffffffffffffffffff811681036101325790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561150a57604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f916114d2575090565b90506020813d602011611502575b816114ed602093836112d7565b81010312610132575180151581036101325790565b3d91506114e0565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610569575f9161158c575090565b6115a5915060203d6020116105625761055481836112d7565b90565b90602080835192838152019201905f5b8181106115c55750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016115b8565b80518210156116055760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea26469706673582212208f1c6a887ed50750b5a562b3d64e9a43ecfced0370832a710c49c53efac2bd6164736f6c634300081a0033","sourceMap":"270:4054:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;1117:48:34;270:4054:36;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;1052:59:34;270:4054:36;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5472:12:34;270:4054:36;;;;;;5472:31:34;270:4054:36;-1:-1:-1;270:4054:36;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;6274:30:34;270:4054:36;6274:30:34;270:4054:36;;6274:30:34;270:4054:36;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3464:43:34;;270:4054:36;3464:21:34;270:4054:36;3464:21:34;270:4054:36;3464:21:34;270:4054:36;3464:43:34;;;;;;270:4054:36;3464:43:34;270:4054:36;3464:43:34;;;270:4054:36;;;3442:10:34;:66;3438:169;;3995:20;270:4054:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1731:10;;1727:75;;270:4054;;;3995:20:34;270:4054:36;;;;;;;:::i;:::-;;;;1913:24;;270:4054;;;;;;1893:9;270:4054;;;;;;;;;;;;;;;;;;;;3995:20:34;270:4054:36;;;;;3995:20:34;270:4054:36;;;;1727:75;1750:52;270:4054;;1750:52;;;270:4054;;1750:52;;270:4054;;;;;;;;;;;1750:52;3438:169:34;3531:65;270:4054:36;;3531:65:34;;;270:4054:36;;3531:65:34;;270:4054:36;;;;;;;;;;;;;;;;3531:65:34;3464:43;;;;270:4054:36;3464:43:34;270:4054:36;3464:43:34;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;270:4054:36;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;3175:21:34;270:4054:36;3153:10:34;:44;3149:144;;270:4054:36;4519:12:34;270:4054:36;;4518:13:34;4514:80;;270:4054:36;;;;;;2355:9;270:4054;;;;;;4519:12:34;270:4054:36;;;;;;:::i;:::-;;;;;;;;;;;;2485:16;;;270:4054;2504:17;;;;;2788:67;2789:38;2617:35;2485:43;2504:17;;;;:::i;:::-;2485:43;;;;:::i;:::-;270:4054;;2617:35;;:::i;:::-;270:4054;;2789:38;;:::i;:::-;2831:17;;;;:::i;:::-;2788:67;;;;:::i;:::-;2869:24;;2865:94;;3102:6;270:4054;;;;;;3102:6;270:4054;;;;;;;3060:15;270:4054;3060:15;;;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;2504:17;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9179:17:34;;;270:4054:36;;9124:84:34;;;270:4054:36;9124:84:34;;270:4054:36;;;;;9172:4:34;270:4054:36;;;;;;;2485:16;270:4054;;;;;;;;:::i;:::-;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2485:16;270:4054;;;;;;;;;;;;;;;;2504:17;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9124:84:34;270:4054:36;;;;;;;;;;;;;:::i;:::-;9124:84:34;270:4054:36;9124:84:34;;;;;;:::i;:::-;270:4054:36;9270:17:34;;270:4054:36;;;9242:62:34;;;;;270:4054:36;9242:62:34;;270:4054:36;;9242:62:34;;270:4054:36;;;;;;:::i;:::-;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;:::i;:::-;9242:62:34;:20;270:4054:36;;9242:20:34;270:4054:36;9242:62:34;;;;;;;270:4054:36;9242:62:34;;;270:4054:36;9361:17:34;;270:4054:36;;;9779:13:34;270:4054:36;9794:14:34;;;;;;270:4054:36;;;;;;;;9810:20:34;9859:10;270:4054:36;9859:10:34;4519:12;9859:10;;;:::i;:::-;270:4054:36;;;;9846:12:34;270:4054:36;;;;;;;;;;;;;;;;9935:10:34;;;;:::i;:::-;270:4054:36;;;9913:48:34;270:4054:36;;;;;;9913:48:34;270:4054:36;9779:13:34;;9242:62;;;;270:4054:36;9242:62:34;;270:4054:36;9242:62:34;;;;;;270:4054:36;9242:62:34;;;:::i;:::-;;;270:4054:36;;;;;9242:62:34;;;;;;;-1:-1:-1;9242:62:34;;270:4054:36;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;4519:12:34;270:4054:36;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2865:94;2902:57;270:4054;;2902:57;;;270:4054;;2902:57;;270:4054;;;;;;;;;;;;;;;;2902:57;4514:80:34;4554:29;270:4054:36;4554:29:34;270:4054:36;;4554:29:34;3149:144;3220:62;270:4054:36;;3220:62:34;;;270:4054:36;;3220:62:34;;270:4054:36;;;;;;;;;;;;;;;;3220:62:34;270:4054:36;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;7685:20:34;270:4054:36;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;3639:28;270:4054;;:::i;:::-;3604:18;270:4054;;3604:18;:::i;:::-;3639:28;;:::i;:::-;270:4054;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;4177:9;270:4054;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4247:68;;270:4054;;;;4247:68;;4286:17;270:4054;;;;;;;;;;:::i;:::-;;;;;;;;;4247:68;;;270:4054;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4247:68;270:4054;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;5056:12:34;270:4054:36;;;;;;;;;;;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;;;;;;;;;;;7364:40:34;7379:25;270:4054:36;7364:40:34;;:80;;;;;270:4054:36;;;;;;;7364:80:34;877:25:88;862:40;;;7364:80:34;;;270:4054:36;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;;:::o;:::-;;;;;-1:-1:-1;;270:4054:36;;;;;;3941:28;270:4054;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;-1:-1:-1;270:4054:36;;-1:-1:-1;270:4054:36;;;;-1:-1:-1;270:4054:36;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;7975:363:34:-;270:4054:36;;;;;;8090:12:34;270:4054:36;;;;;;8090:29:34;270:4054:36;-1:-1:-1;270:4054:36;;;;-1:-1:-1;270:4054:36;;8204:18:34;;;8200:36;;270:4054:36;;8280:51:34;270:4054:36;8280:51:34;;;;;270:4054:36;;;;;;8280:20:34;:51;:20;270:4054:36;8280:20:34;270:4054:36;8280:51:34;;;;;;;270:4054:36;8280:51:34;;;8273:58;7975:363;:::o;8280:51::-;;;270:4054:36;8280:51:34;;270:4054:36;8280:51:34;;;;;;270:4054:36;8280:51:34;;;:::i;:::-;;;270:4054:36;;;;;;;;;;;;7975:363:34;:::o;8280:51::-;;;-1:-1:-1;8280:51:34;;8200:36;8224:12;;270:4054:36;8224:12:34;:::o;8483:155::-;270:4054:36;;8566:32:34;270:4054:36;8566:32:34;;;;;270:4054:36;;8566:15:34;:32;:15;270:4054:36;8566:15:34;270:4054:36;8566:32:34;;;;;;;-1:-1:-1;8566:32:34;;;8559:39;8483:155;:::o;8566:32::-;;;;270:4054:36;8566:32:34;270:4054:36;8566:32:34;;;;;;;:::i;:::-;8483:155;:::o;270:4054:36:-;;;;;;;;;;;;;;-1:-1:-1;270:4054:36;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"2623":[{"start":2619,"length":32},{"start":3395,"length":32},{"start":5279,"length":32}],"2626":[{"start":354,"length":32},{"start":784,"length":32},{"start":1483,"length":32}],"2629":[{"start":270,"length":32},{"start":5465,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","attestations(address,address)":"028dd425","description()":"7284e416","enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":"c43e04c0","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,address)":"96ba154d","isAccessAllowed(address,uint256)":"ac3e8fb0","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(address)":"3c6a5ee3","resolveTerms(uint256)":"dccc792f","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AccessGranted\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"attestations\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"},{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"createdAt\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"available\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AccessGranted(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestation that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"resolveTerms(uint256)\":{\"details\":\"This function allows for querying policy terms based on the unique content identifier.\",\"returns\":{\"_0\":\"A struct containing the terms applicable to the specified content ID.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AccessGranted(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,address)\":{\"notice\":\"Verifies if a specific account has general access holder's rights .\"},\"isAccessAllowed(address,uint256)\":{\"notice\":\"Verifies if a specific account has access to a particular asset based on `assetId`.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the contract has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(address)\":{\"notice\":\"Retrieves the terms associated with a specific rights holder.\"},\"resolveTerms(uint256)\":{\"notice\":\"Retrieves the terms associated with a specific content ID.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/access/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/interfaces/IAttestationProvider.sol\":{\"keccak256\":\"0x2908d5a54050880ecfd2dcce8b20eb0b225cde0086747e797bca0da47cf28e86\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://65f357d4083985d98fae8b192beebad9e832171ac89ded7b6cb5bd8941c248ad\",\"dweb:/ipfs/QmWLQftaZEFJ8oD3rtayvgkLi2Knz8R7LNvbYv7y7rJZVR\"]},\"contracts/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"contracts/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0x239a09ae8e3353f7191c2d8f0104c7a6c02f51934ca8745274530ba8dcf79fa8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://173d1922c5f4acc3f4fc302070ab3f301bc7f1226f2d6bef746d4aed004a628f\",\"dweb:/ipfs/QmULcr1d8RLJJQha8EM3CtqtVuvzykLKWwHMmedd5RKTEz\"]},\"contracts/interfaces/rightsmanager/IRightsPolicyManager.sol\":{\"keccak256\":\"0x3e832796a0aacce871818e5f16841b7ad8815bb673bf2de9feaf225181c647a8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08f765559679b934f64d776412f2d634e1a685cd8508c080ada737f181d7dd67\",\"dweb:/ipfs/QmTHKZmUhwGWPbBBYZ48dKMjtcdevQvvTh9vFJk32nFAsU\"]},\"contracts/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003\",\"dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S\"]},\"contracts/policies/BasePolicy.sol\":{\"keccak256\":\"0xf82b5d0c3127d4e1e9cbe5ca5128a11eb31d1f66305cbc46216272f025e6569a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4f68b8fa055d7b9b6a3095e06c0f5b13802a20fd44267914580f15783d3117f6\",\"dweb:/ipfs/QmaGDjYo4Dm4yDzA9oNfQemBeLEG8YYJfKEZNZEac5XhUC\"]},\"contracts/policies/access/SubscriptionPolicy.sol\":{\"keccak256\":\"0x11cca1395f21a64efc0ed0cce8bd63af6b51ea960046d1032274bf40be451223\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b12418494edb191733d02b30e7686dd5718367492aca9cda2c8bee812a2b1b9e\",\"dweb:/ipfs/QmVoWfADKjQG92w6Ebo2gewX5yNjdVJpA9GBm34sMWA1ji\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AccessGranted","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"attestations","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"bool","name":"active","type":"bool"},{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"createdAt","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"uint256","name":"available","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"resolveTerms(uint256)":{"details":"This function allows for querying policy terms based on the unique content identifier.","returns":{"_0":"A struct containing the terms applicable to the specified content ID."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(bool,address,address,address,uint256,uint256,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,address)":{"notice":"Verifies if a specific account has general access holder's rights ."},"isAccessAllowed(address,uint256)":{"notice":"Verifies if a specific account has access to a particular asset based on `assetId`."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the contract has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(address)":{"notice":"Retrieves the terms associated with a specific rights holder."},"resolveTerms(uint256)":{"notice":"Retrieves the terms associated with a specific content ID."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/access/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/interfaces/IAttestationProvider.sol":{"keccak256":"0x2908d5a54050880ecfd2dcce8b20eb0b225cde0086747e797bca0da47cf28e86","urls":["bzz-raw://65f357d4083985d98fae8b192beebad9e832171ac89ded7b6cb5bd8941c248ad","dweb:/ipfs/QmWLQftaZEFJ8oD3rtayvgkLi2Knz8R7LNvbYv7y7rJZVR"],"license":"MIT"},"contracts/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"contracts/interfaces/policies/IPolicy.sol":{"keccak256":"0x239a09ae8e3353f7191c2d8f0104c7a6c02f51934ca8745274530ba8dcf79fa8","urls":["bzz-raw://173d1922c5f4acc3f4fc302070ab3f301bc7f1226f2d6bef746d4aed004a628f","dweb:/ipfs/QmULcr1d8RLJJQha8EM3CtqtVuvzykLKWwHMmedd5RKTEz"],"license":"MIT"},"contracts/interfaces/rightsmanager/IRightsPolicyManager.sol":{"keccak256":"0x3e832796a0aacce871818e5f16841b7ad8815bb673bf2de9feaf225181c647a8","urls":["bzz-raw://08f765559679b934f64d776412f2d634e1a685cd8508c080ada737f181d7dd67","dweb:/ipfs/QmTHKZmUhwGWPbBBYZ48dKMjtcdevQvvTh9vFJk32nFAsU"],"license":"MIT"},"contracts/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/libraries/Types.sol":{"keccak256":"0x15d6829e0b988ba6c933d1adff8926b91c5e5f8f0fdabd00d87b8c8c541a3eb8","urls":["bzz-raw://3c4c1edb78e52731d57d6e0d583d398287e01960f966231839ddc1ff12c48003","dweb:/ipfs/QmYw5hKqdD5FX4cA4Cce6JrT164zNMGipUekUihMc3vP1S"],"license":"MIT"},"contracts/policies/BasePolicy.sol":{"keccak256":"0xf82b5d0c3127d4e1e9cbe5ca5128a11eb31d1f66305cbc46216272f025e6569a","urls":["bzz-raw://4f68b8fa055d7b9b6a3095e06c0f5b13802a20fd44267914580f15783d3117f6","dweb:/ipfs/QmaGDjYo4Dm4yDzA9oNfQemBeLEG8YYJfKEZNZEac5XhUC"],"license":"MIT"},"contracts/policies/access/SubscriptionPolicy.sol":{"keccak256":"0x11cca1395f21a64efc0ed0cce8bd63af6b51ea960046d1032274bf40be451223","urls":["bzz-raw://b12418494edb191733d02b30e7686dd5718367492aca9cda2c8bee812a2b1b9e","dweb:/ipfs/QmVoWfADKjQG92w6Ebo2gewX5yNjdVJpA9GBm34sMWA1ji"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":43338,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":2631,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":2638,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":3254,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)3249_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)3249_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)3249_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)3249_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":3246,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":3248,"contract":"contracts/policies/access/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/access/SubscriptionPolicy.sol","id":3477,"exportedSymbols":{"BasePolicy":[3023],"SubscriptionPolicy":[3476],"T":[2592]},"nodeType":"SourceUnit","src":"32:4293:36","nodes":[{"id":3236,"nodeType":"PragmaDirective","src":"32:23:36","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3238,"nodeType":"ImportDirective","src":"57:63:36","nodes":[],"absolutePath":"contracts/policies/BasePolicy.sol","file":"contracts/policies/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":3477,"sourceUnit":3024,"symbolAliases":[{"foreign":{"id":3237,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3023,"src":"66:10:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3240,"nodeType":"ImportDirective","src":"121:50:36","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"contracts/libraries/Types.sol","nameLocation":"-1:-1:-1","scope":3477,"sourceUnit":2593,"symbolAliases":[{"foreign":{"id":3239,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"130:1:36","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":3476,"nodeType":"ContractDefinition","src":"270:4054:36","nodes":[{"id":3249,"nodeType":"StructDefinition","src":"375:115:36","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":3244,"nodeType":"StructuredDocumentation","src":"318:52:36","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":3246,"mutability":"mutable","name":"pricePerDay","nameLocation":"408:11:36","nodeType":"VariableDeclaration","scope":3249,"src":"400:19:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3245,"name":"uint256","nodeType":"ElementaryTypeName","src":"400:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3248,"mutability":"mutable","name":"currency","nameLocation":"475:8:36","nodeType":"VariableDeclaration","scope":3249,"src":"467:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3247,"name":"address","nodeType":"ElementaryTypeName","src":"467:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"382:7:36","scope":3476,"visibility":"public"},{"id":3254,"nodeType":"VariableDeclaration","src":"580:45:36","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"616:9:36","scope":3476,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":3253,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":3250,"name":"address","nodeType":"ElementaryTypeName","src":"588:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"580:27:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":3252,"nodeType":"UserDefinedTypeName","pathNode":{"id":3251,"name":"Package","nameLocations":["599:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"599:7:36"},"referencedDeclaration":3249,"src":"599:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":3269,"nodeType":"FunctionDefinition","src":"632:203:36","nodes":[],"body":{"id":3268,"nodeType":"Block","src":"833:2:36","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":3263,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3256,"src":"771:25:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3264,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3258,"src":"798:16:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3265,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3260,"src":"816:15:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":3266,"kind":"baseConstructorSpecifier","modifierName":{"id":3262,"name":"BasePolicy","nameLocations":["760:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":3023,"src":"760:10:36"},"nodeType":"ModifierInvocation","src":"760:72:36"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":3261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3256,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"661:25:36","nodeType":"VariableDeclaration","scope":3269,"src":"653:33:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3255,"name":"address","nodeType":"ElementaryTypeName","src":"653:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3258,"mutability":"mutable","name":"ownershipAddress","nameLocation":"704:16:36","nodeType":"VariableDeclaration","scope":3269,"src":"696:24:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3257,"name":"address","nodeType":"ElementaryTypeName","src":"696:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3260,"mutability":"mutable","name":"providerAddress","nameLocation":"738:15:36","nodeType":"VariableDeclaration","scope":3269,"src":"730:23:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3259,"name":"address","nodeType":"ElementaryTypeName","src":"730:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"643:116:36"},"returnParameters":{"id":3267,"nodeType":"ParameterList","parameters":[],"src":"833:0:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":3278,"nodeType":"FunctionDefinition","src":"889:98:36","nodes":[],"body":{"id":3277,"nodeType":"Block","src":"943:44:36","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":3275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"960:20:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":3274,"id":3276,"nodeType":"Return","src":"953:27:36"}]},"baseFunctions":[1831],"documentation":{"id":3270,"nodeType":"StructuredDocumentation","src":"841:43:36","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"898:4:36","parameters":{"id":3271,"nodeType":"ParameterList","parameters":[],"src":"902:2:36"},"returnParameters":{"id":3274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3278,"src":"928:13:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3272,"name":"string","nodeType":"ElementaryTypeName","src":"928:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"927:15:36"},"scope":3476,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":3287,"nodeType":"FunctionDefinition","src":"1072:458:36","nodes":[],"body":{"id":3286,"nodeType":"Block","src":"1133:397:36","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":3284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1162:361:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":3283,"id":3285,"nodeType":"Return","src":"1143:380:36"}]},"baseFunctions":[1837],"documentation":{"id":3279,"nodeType":"StructuredDocumentation","src":"993:74:36","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1081:11:36","parameters":{"id":3280,"nodeType":"ParameterList","parameters":[],"src":"1092:2:36"},"returnParameters":{"id":3283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3287,"src":"1118:13:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":3281,"name":"string","nodeType":"ElementaryTypeName","src":"1118:6:36","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1117:15:36"},"scope":3476,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":3330,"nodeType":"FunctionDefinition","src":"1536:408:36","nodes":[],"body":{"id":3329,"nodeType":"Block","src":"1635:309:36","nodes":[],"statements":[{"assignments":[3299,3301],"declarations":[{"constant":false,"id":3299,"mutability":"mutable","name":"price","nameLocation":"1654:5:36","nodeType":"VariableDeclaration","scope":3329,"src":"1646:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3298,"name":"uint256","nodeType":"ElementaryTypeName","src":"1646:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":3301,"mutability":"mutable","name":"currency","nameLocation":"1669:8:36","nodeType":"VariableDeclaration","scope":3329,"src":"1661:16:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3300,"name":"address","nodeType":"ElementaryTypeName","src":"1661:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3311,"initialValue":{"arguments":[{"id":3304,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3291,"src":"1692:4:36","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":3306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1699:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":3305,"name":"uint256","nodeType":"ElementaryTypeName","src":"1699:7:36","typeDescriptions":{}}},{"id":3308,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1708:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":3307,"name":"address","nodeType":"ElementaryTypeName","src":"1708:7:36","typeDescriptions":{}}}],"id":3309,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"1698:18:36","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":3302,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1681:3:36","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":3303,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1685:6:36","memberName":"decode","nodeType":"MemberAccess","src":"1681:10:36","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":3310,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1681:36:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"1645:72:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3312,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"1731:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":3313,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1740:1:36","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1731:10:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3319,"nodeType":"IfStatement","src":"1727:75:36","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":3316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1772:29:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":3315,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2673,"src":"1750:21:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:52:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3318,"nodeType":"RevertStatement","src":"1743:59:36"}},{"expression":{"id":3327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":3320,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"1893:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3322,"indexExpression":{"id":3321,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3289,"src":"1903:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1893:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":3324,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3299,"src":"1921:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":3325,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3301,"src":"1928:8:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3323,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3249,"src":"1913:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$3249_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":3326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1913:24:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"1893:44:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":3328,"nodeType":"ExpressionStatement","src":"1893:44:36"}]},"baseFunctions":[1845],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":3294,"kind":"modifierInvocation","modifierName":{"id":3293,"name":"onlyPolicyAuthorizer","nameLocations":["1602:20:36"],"nodeType":"IdentifierPath","referencedDeclaration":2711,"src":"1602:20:36"},"nodeType":"ModifierInvocation","src":"1602:20:36"},{"id":3296,"kind":"modifierInvocation","modifierName":{"id":3295,"name":"initializer","nameLocations":["1623:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":2724,"src":"1623:11:36"},"nodeType":"ModifierInvocation","src":"1623:11:36"}],"name":"initialize","nameLocation":"1545:10:36","parameters":{"id":3292,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3289,"mutability":"mutable","name":"holder","nameLocation":"1564:6:36","nodeType":"VariableDeclaration","scope":3330,"src":"1556:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3288,"name":"address","nodeType":"ElementaryTypeName","src":"1556:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3291,"mutability":"mutable","name":"init","nameLocation":"1587:4:36","nodeType":"VariableDeclaration","scope":3330,"src":"1572:19:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":3290,"name":"bytes","nodeType":"ElementaryTypeName","src":"1572:5:36","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1555:37:36"},"returnParameters":{"id":3297,"nodeType":"ParameterList","parameters":[],"src":"1635:0:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3405,"nodeType":"FunctionDefinition","src":"2180:1129:36","nodes":[],"body":{"id":3404,"nodeType":"Block","src":"2324:985:36","nodes":[],"statements":[{"assignments":[3346],"declarations":[{"constant":false,"id":3346,"mutability":"mutable","name":"pkg","nameLocation":"2349:3:36","nodeType":"VariableDeclaration","scope":3404,"src":"2334:18:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":3345,"nodeType":"UserDefinedTypeName","pathNode":{"id":3344,"name":"Package","nameLocations":["2334:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"2334:7:36"},"referencedDeclaration":3249,"src":"2334:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":3350,"initialValue":{"baseExpression":{"id":3347,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"2355:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3349,"indexExpression":{"id":3348,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"2365:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2355:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2334:38:36"},{"assignments":[3352],"declarations":[{"constant":false,"id":3352,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"2465:17:36","nodeType":"VariableDeclaration","scope":3404,"src":"2457:25:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3351,"name":"uint256","nodeType":"ElementaryTypeName","src":"2457:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3359,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3353,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2485:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2495:6:36","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2548,"src":"2485:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"expression":{"id":3355,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2504:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2514:7:36","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"2504:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2522:6:36","memberName":"length","nodeType":"MemberAccess","src":"2504:24:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2485:43:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2457:71:36"},{"assignments":[3361],"declarations":[{"constant":false,"id":3361,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"2594:20:36","nodeType":"VariableDeclaration","scope":3404,"src":"2586:28:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3360,"name":"uint256","nodeType":"ElementaryTypeName","src":"2586:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3366,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3362,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3352,"src":"2617:17:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"expression":{"id":3363,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"2637:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2641:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"2637:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2617:35:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2586:66:36"},{"assignments":[3368],"declarations":[{"constant":false,"id":3368,"mutability":"mutable","name":"total","nameLocation":"2780:5:36","nodeType":"VariableDeclaration","scope":3404,"src":"2772:13:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3367,"name":"uint256","nodeType":"ElementaryTypeName","src":"2772:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3378,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3372,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3369,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"2789:20:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"id":3370,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3346,"src":"2812:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3371,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2816:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"2812:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2789:38:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3373,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2788:40:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"expression":{"expression":{"id":3374,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2831:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2841:7:36","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":2555,"src":"2831:17:36","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":3376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2849:6:36","memberName":"length","nodeType":"MemberAccess","src":"2831:24:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2788:67:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2772:83:36"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3379,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"2869:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":3380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2879:6:36","memberName":"amount","nodeType":"MemberAccess","referencedDeclaration":2548,"src":"2869:16:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":3381,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3368,"src":"2888:5:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2869:24:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":3387,"nodeType":"IfStatement","src":"2865:94:36","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":3384,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2921:37:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":3383,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2665,"src":"2902:18:36","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":3385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:57:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":3386,"nodeType":"RevertStatement","src":"2895:64:36"}},{"assignments":[3389],"declarations":[{"constant":false,"id":3389,"mutability":"mutable","name":"subExpire","nameLocation":"3048:9:36","nodeType":"VariableDeclaration","scope":3404,"src":"3040:17:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3388,"name":"uint256","nodeType":"ElementaryTypeName","src":"3040:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":3397,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":3390,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3060:5:36","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":3391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3066:9:36","memberName":"timestamp","nodeType":"MemberAccess","src":"3060:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":3394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":3392,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3361,"src":"3079:20:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":3393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3102:6:36","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3079:29:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":3395,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3078:31:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3060:49:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3040:69:36"},{"expression":{"arguments":[{"id":3399,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3332,"src":"3273:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3400,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"3281:9:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":3401,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3389,"src":"3292:9:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3398,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2972,"src":"3265:7:36","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$2558_memory_ptr_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256)"}},"id":3402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3265:37:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":3343,"id":3403,"nodeType":"Return","src":"3258:44:36"}]},"baseFunctions":[1856],"functionSelector":"c43e04c0","implemented":true,"kind":"function","modifiers":[{"id":3338,"kind":"modifierInvocation","modifierName":{"id":3337,"name":"onlyPolicyManager","nameLocations":["2276:17:36"],"nodeType":"IdentifierPath","referencedDeclaration":2691,"src":"2276:17:36"},"nodeType":"ModifierInvocation","src":"2276:17:36"},{"id":3340,"kind":"modifierInvocation","modifierName":{"id":3339,"name":"initialized","nameLocations":["2294:11:36"],"nodeType":"IdentifierPath","referencedDeclaration":2736,"src":"2294:11:36"},"nodeType":"ModifierInvocation","src":"2294:11:36"}],"name":"enforce","nameLocation":"2189:7:36","parameters":{"id":3336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3332,"mutability":"mutable","name":"holder","nameLocation":"2214:6:36","nodeType":"VariableDeclaration","scope":3405,"src":"2206:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3331,"name":"address","nodeType":"ElementaryTypeName","src":"2206:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3335,"mutability":"mutable","name":"agreement","nameLocation":"2251:9:36","nodeType":"VariableDeclaration","scope":3405,"src":"2230:30:36","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":3334,"nodeType":"UserDefinedTypeName","pathNode":{"id":3333,"name":"T.Agreement","nameLocations":["2230:1:36","2232:9:36"],"nodeType":"IdentifierPath","referencedDeclaration":2558,"src":"2230:11:36"},"referencedDeclaration":2558,"src":"2230:11:36","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$2558_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2196:70:36"},"returnParameters":{"id":3343,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3342,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3405,"src":"2315:7:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3341,"name":"uint256","nodeType":"ElementaryTypeName","src":"2315:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2314:9:36"},"scope":3476,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":3428,"nodeType":"FunctionDefinition","src":"3416:258:36","nodes":[],"body":{"id":3427,"nodeType":"Block","src":"3513:161:36","nodes":[],"statements":[{"assignments":[3417],"declarations":[{"constant":false,"id":3417,"mutability":"mutable","name":"holder","nameLocation":"3595:6:36","nodeType":"VariableDeclaration","scope":3427,"src":"3587:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3416,"name":"address","nodeType":"ElementaryTypeName","src":"3587:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":3421,"initialValue":{"arguments":[{"id":3419,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3410,"src":"3614:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":3418,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2923,"src":"3604:9:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":3420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3604:18:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3587:35:36"},{"expression":{"arguments":[{"id":3423,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3408,"src":"3651:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3424,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3417,"src":"3660:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3422,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"3639:11:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3639:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3415,"id":3426,"nodeType":"Return","src":"3632:35:36"}]},"baseFunctions":[2830],"documentation":{"id":3406,"nodeType":"StructuredDocumentation","src":"3316:95:36","text":"@notice Verifies if a specific account has access to a particular asset based on `assetId`."},"functionSelector":"ac3e8fb0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3425:15:36","overrides":{"id":3412,"nodeType":"OverrideSpecifier","overrides":[],"src":"3489:8:36"},"parameters":{"id":3411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3408,"mutability":"mutable","name":"account","nameLocation":"3449:7:36","nodeType":"VariableDeclaration","scope":3428,"src":"3441:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3407,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3410,"mutability":"mutable","name":"assetId","nameLocation":"3466:7:36","nodeType":"VariableDeclaration","scope":3428,"src":"3458:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":3409,"name":"uint256","nodeType":"ElementaryTypeName","src":"3458:7:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3440:34:36"},"returnParameters":{"id":3415,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3414,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3428,"src":"3507:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3413,"name":"bool","nodeType":"ElementaryTypeName","src":"3507:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3506:6:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3445,"nodeType":"FunctionDefinition","src":"3764:212:36","nodes":[],"body":{"id":3444,"nodeType":"Block","src":"3860:116:36","nodes":[],"statements":[{"expression":{"arguments":[{"id":3440,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3431,"src":"3953:7:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":3441,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3433,"src":"3962:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":3439,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2909,"src":"3941:11:36","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":3442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3941:28:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":3438,"id":3443,"nodeType":"Return","src":"3934:35:36"}]},"baseFunctions":[2844],"documentation":{"id":3429,"nodeType":"StructuredDocumentation","src":"3680:79:36","text":"@notice Verifies if a specific account has general access holder's rights ."},"functionSelector":"96ba154d","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3773:15:36","overrides":{"id":3435,"nodeType":"OverrideSpecifier","overrides":[],"src":"3836:8:36"},"parameters":{"id":3434,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3431,"mutability":"mutable","name":"account","nameLocation":"3797:7:36","nodeType":"VariableDeclaration","scope":3445,"src":"3789:15:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3430,"name":"address","nodeType":"ElementaryTypeName","src":"3789:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":3433,"mutability":"mutable","name":"holder","nameLocation":"3814:6:36","nodeType":"VariableDeclaration","scope":3445,"src":"3806:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3432,"name":"address","nodeType":"ElementaryTypeName","src":"3806:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3788:33:36"},"returnParameters":{"id":3438,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3437,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3445,"src":"3854:4:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":3436,"name":"bool","nodeType":"ElementaryTypeName","src":"3854:4:36","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3853:6:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":3475,"nodeType":"FunctionDefinition","src":"4060:262:36","nodes":[],"body":{"id":3474,"nodeType":"Block","src":"4146:176:36","nodes":[],"statements":[{"assignments":[3457],"declarations":[{"constant":false,"id":3457,"mutability":"mutable","name":"pkg","nameLocation":"4171:3:36","nodeType":"VariableDeclaration","scope":3474,"src":"4156:18:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":3456,"nodeType":"UserDefinedTypeName","pathNode":{"id":3455,"name":"Package","nameLocations":["4156:7:36"],"nodeType":"IdentifierPath","referencedDeclaration":3249,"src":"4156:7:36"},"referencedDeclaration":3249,"src":"4156:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":3461,"initialValue":{"baseExpression":{"id":3458,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3254,"src":"4177:9:36","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$3249_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":3460,"indexExpression":{"id":3459,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3448,"src":"4187:6:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4177:17:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4156:38:36"},{"expression":{"arguments":[{"expression":{"id":3464,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"4255:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3465,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4259:11:36","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":3246,"src":"4255:15:36","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":3466,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3457,"src":"4272:3:36","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$3249_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":3467,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4276:8:36","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":3248,"src":"4272:12:36","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":3468,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"4286:1:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$2592_$","typeString":"type(library T)"}},"id":3469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:9:36","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":2570,"src":"4286:11:36","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$2570_$","typeString":"type(enum T.RateBasis)"}},"id":3470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4298:5:36","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":2568,"src":"4286:17:36","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$2570","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":3471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4305:9:36","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$2570","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":3462,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2592,"src":"4247:1:36","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$2592_$","typeString":"type(library T)"}},"id":3463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4249:5:36","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":2581,"src":"4247:7:36","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$2581_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":3472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4247:68:36","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":3454,"id":3473,"nodeType":"Return","src":"4240:75:36"}]},"baseFunctions":[2803],"documentation":{"id":3446,"nodeType":"StructuredDocumentation","src":"3982:73:36","text":"@notice Retrieves the terms associated with a specific rights holder."},"functionSelector":"3c6a5ee3","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4069:12:36","overrides":{"id":3450,"nodeType":"OverrideSpecifier","overrides":[],"src":"4112:8:36"},"parameters":{"id":3449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3448,"mutability":"mutable","name":"holder","nameLocation":"4090:6:36","nodeType":"VariableDeclaration","scope":3475,"src":"4082:14:36","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":3447,"name":"address","nodeType":"ElementaryTypeName","src":"4082:7:36","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4081:16:36"},"returnParameters":{"id":3454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":3453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":3475,"src":"4130:14:36","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":3452,"nodeType":"UserDefinedTypeName","pathNode":{"id":3451,"name":"T.Terms","nameLocations":["4130:1:36","4132:5:36"],"nodeType":"IdentifierPath","referencedDeclaration":2581,"src":"4130:7:36"},"referencedDeclaration":2581,"src":"4130:7:36","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$2581_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4129:16:36"},"scope":3476,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":3242,"name":"BasePolicy","nameLocations":["301:10:36"],"nodeType":"IdentifierPath","referencedDeclaration":3023,"src":"301:10:36"},"id":3243,"nodeType":"InheritanceSpecifier","src":"301:10:36"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":3241,"nodeType":"StructuredDocumentation","src":"173:97:36","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[3476,3023,44137,44344,1901,43396],"name":"SubscriptionPolicy","nameLocation":"279:18:36","scope":3477,"usedErrors":[2650,2652,2657,2660,2665,2668,2673,43341],"usedEvents":[2647]}],"license":"MIT"},"id":36} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"total","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AttestedAgreement","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c757601f61192f38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c757610047816100df565b61005f6040610058602085016100df565b93016100df565b60015f556001600160a01b0390811660805290811660a0521660c05260405161183b90816100f4823960805181818161053c01528181610dc401526115cb015260a05181818161014101528181610296015261093e015260c05181818160ed01526116850152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f08738957dec52d6b68103ced4084c78b9861d69257f4019a4d16836ffcdbe7e64736f6c634300081a0033","sourceMap":"281:6160:0:-:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;-1:-1:-1;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:3;-1:-1:-1;1857:1:3;-1:-1:-1;;;;;281:6160:0;;;4819:60:11;;281:6160:0;;;;4889:65:11;281:6160:0;4964:49:11;;281:6160:0;;;;;;;;4819:60:11;281:6160:0;;;;;;;;;;;;;;;4889:65:11;281:6160:0;;;;;;;;;;;;;;;4964:49:11;281:6160:0;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;-1:-1:-1;281:6160:0;;;;;-1:-1:-1;281:6160:0;;;;-1:-1:-1;;;;;281:6160:0;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f08738957dec52d6b68103ced4084c78b9861d69257f4019a4d16836ffcdbe7e64736f6c634300081a0033","sourceMap":"281:6160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;1140:48:11;281:6160:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;1075:59:11;281:6160:0;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5575:13:11;281:6160:0;;;;;;5575:32:11;281:6160:0;-1:-1:-1;281:6160:0;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3566:43:11;;;:21;281:6160:0;3566:21:11;281:6160:0;3566:21:11;281:6160:0;3566:43:11;;;;;;281:6160:0;3566:43:11;281:6160:0;3566:43:11;;;281:6160:0;;;3544:10:11;:66;3540:169;;281:6160:0;;;;4097:20:11;281:6160:0;;4097:20:11;281:6160:0;2041:36;;281:6160;;;;;;3566:43:11;281:6160:0;;;;;:::i;:::-;;2091:10;;;2087:75;;281:6160;;;4097:20:11;281:6160:0;;;;;;;:::i;:::-;;;3566:43:11;2242:24:0;;281:6160;;;;;;2222:9;3566:43:11;281:6160:0;;;;;;;;;;;;;;;;;;;4097:20:11;281:6160:0;;;;;4097:20:11;281:6160:0;;;;2087:75;2110:52;281:6160;;2110:52;;;3566:43:11;281:6160:0;2110:52;;281:6160;;;;;;;;;;;2110:52;3540:169:11;3633:65;281:6160:0;;3633:65:11;;;3566:43;281:6160:0;3633:65:11;;281:6160:0;;;;;;;;;;;;;;;;3633:65:11;3566:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;6313:20:11;281:6160:0;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4347:26;;;;:::i;:::-;4346:27;4342:95;;4464:31;281:6160;4464:31;;;281:6160;;;;;;;;:::i;:::-;;;;4526:9;281:6160;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4596:68;;281:6160;;;;4596:68;;4635:17;281:6160;;;;;;;;;;:::i;:::-;;;;;;;;;;4596:68;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4342:95;4396:30;281:6160;4396:30;281:6160;;4396:30;281:6160;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;3277:21:11;281:6160:0;3255:10:11;:44;3251:144;;281:6160:0;4621:12:11;281:6160:0;;4620:13:11;4616:80;;281:6160:0;;;;;;2612:9;281:6160;;;;;;;;;;;;:::i;:::-;;4621:12:11;281:6160:0;;;;;;;;;;;;;2643:20;2639:213;;2883:15;;;281:6160;2929:17;281:6160;2929:17;;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5159:49;4939:19;5160:34;5047:31;4939:19;;;;;:::i;:::-;5047:31;:::i;:::-;5160:34;;;:::i;:::-;5159:49;:::i;:::-;5222:14;;5218:84;;3293:6;281:6160;;;;;;3293:6;281:6160;;;;;;;3263:15;281:6160;3263:15;;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2929:17;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:21:11;;;281:6160:0;7804:21:11;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;2929:17;281:6160;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7804:21:11;281:6160:0;7804:21:11;;;;;;;;:::i;:::-;281:6160:0;;;7910:17:11;;281:6160:0;;;7855:91:11;;;;281:6160:0;7855:91:11;;281:6160:0;;;;;7903:4:11;281:6160:0;;;;;;;2929:17;281:6160;;;;;;;;:::i;:::-;;;;;;2929:17;281:6160;;;;;;:::i;:::-;7855:91:11;281:6160:0;7855:91:11;;;;;;;;:::i;:::-;8018:17;;281:6160:0;;;7990:62:11;;;281:6160:0;7990:62:11;;281:6160:0;7990:62:11;;281:6160:0;;;2883:15;281:6160;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;:::i;:::-;7990:62:11;:20;;281:6160:0;;7990:62:11;;;281:6160:0;7990:62:11;;;;;;;;;281:6160:0;7990:62:11;;;281:6160:0;8110:17:11;;281:6160:0;;;8571:13:11;281:6160:0;8586:14:11;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;4621:12:11;281:6160:0;;;8602:20:11;8674:17;;4621:12;8674:17;;;:::i;:::-;281:6160:0;;8652:10:11;;;;:::i;:::-;281:6160:0;;;;8638:13:11;281:6160:0;;;;;;;;;;;;;;;8736:10:11;;;;:::i;:::-;281:6160:0;;8748:17:11;8710:56;281:6160:0;8748:17:11;;;;:::i;:::-;281:6160:0;;;;;;8710:56:11;281:6160:0;8571:13:11;;7990:62;;;;;;281:6160:0;7990:62:11;;;;;;:::i;:::-;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:62:11;;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5218:84;5245:57;281:6160;;5245:57;;;281:6160;;5245:57;;281:6160;;;;;;;;;;;;2883:15;281:6160;;;5245:57;2639:213;2778:63;281:6160;;2778:63;;;281:6160;;2778:63;;281:6160;;;;;;;;;;;;;;;;2778:63;4616:80:11;4656:29;281:6160:0;4656:29:11;281:6160:0;;4656:29:11;3251:144;3322:62;281:6160:0;;3322:62:11;;;281:6160:0;;3322:62:11;;281:6160:0;;;;;;;;;;;;;;;;3322:62:11;281:6160:0;;;;;-1:-1:-1;;281:6160:0;;;;;;;5156:12:11;281:6160:0;;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;5992:40:11;6007:25;281:6160:0;5992:40:11;;:80;;;;;281:6160:0;;;;;;;5992:80:11;877:25:4;862:40;;;5992:80:11;;;281:6160:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;3450:527::-;;;;281:6160;3450:527;3624:26;;;;:::i;:::-;3620:186;;3882:31;;281:6160;;;;3951:18;3930:40;281:6160;;3951:18;:::i;3930:40::-;3450:527;:::o;3620:186::-;3715:31;;281:6160;;;;;;3767:28;281:6160;;:::i;:::-;;3767:28;;:::i;281:6160::-;;;;;;;;;;;;;;;;;;:::o;6603:364:11:-;281:6160:0;;;;;;6718:13:11;281:6160:0;;;;;;6718:30:11;281:6160:0;-1:-1:-1;281:6160:0;;;;-1:-1:-1;281:6160:0;;6833:18:11;;;6829:36;;281:6160:0;;6909:51:11;281:6160:0;6909:51:11;;;;;281:6160:0;;;;;;6909:20:11;:51;:20;281:6160:0;6909:20:11;281:6160:0;6909:51:11;;;;;;;281:6160:0;6909:51:11;;;6902:58;6603:364;:::o;6909:51::-;;;281:6160:0;6909:51:11;;281:6160:0;6909:51:11;;;;;;281:6160:0;6909:51:11;;;:::i;:::-;;;281:6160:0;;;;;;;;;;;;6603:364:11;:::o;6909:51::-;;;-1:-1:-1;6909:51:11;;6829:36;6853:12;;281:6160:0;6853:12:11;:::o;7112:155::-;281:6160:0;;7195:32:11;281:6160:0;7195:32:11;;;;;281:6160:0;;7195:15:11;:32;:15;281:6160:0;7195:15:11;281:6160:0;7195:32:11;;;;;;;-1:-1:-1;7195:32:11;;;7188:39;7112:155;:::o;7195:32::-;;;;281:6160:0;7195:32:11;281:6160:0;7195:32:11;;;;;;;:::i;281:6160:0:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;5352:1087;6213:2;6194:21;;6190:64;;281:6160;6213:2;281:6160;;;;6300:2;281:6160;;;;6283:38;;281:6160;6300:2;281:6160;;;6405:27;;;6398:34;5352:1087;:::o;6405:27::-;281:6160;;;;;6351:37;5352:1087;:::o;281:6160::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"846":[{"start":1340,"length":32},{"start":3524,"length":32},{"start":5579,"length":32}],"849":[{"start":321,"length":32},{"start":662,"length":32},{"start":2366,"length":32}],"852":[{"start":237,"length":32},{"start":5765,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","description()":"7284e416","enforce(address,(address,address,address,uint256,uint256,address[],bytes))":"464c0aeb","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,bytes)":"cfdce1a7","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(bytes)":"a3937111","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation id associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0xbfcc3f66602963c0415c6d294684e36c4207bbe340cd0fa8d63da74314a0e189\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a731f3b1cfa931141761a4783d18ad7462741aed14d7f949aa1b36ebd9a7a70\",\"dweb:/ipfs/QmVPPFN6jKjRepjtasysDuoDrUHtqqzfGx17az5eSGV3Ws\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf\",\"dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AttestedAgreement","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation id associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,bytes)":{"notice":"Verifies if an account has access to holder's content or asset id."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the policy has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(bytes)":{"notice":"Retrieves the terms associated with a specific criteria and policy."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/policies/SubscriptionPolicy.sol":{"keccak256":"0xbfcc3f66602963c0415c6d294684e36c4207bbe340cd0fa8d63da74314a0e189","urls":["bzz-raw://3a731f3b1cfa931141761a4783d18ad7462741aed14d7f949aa1b36ebd9a7a70","dweb:/ipfs/QmVPPFN6jKjRepjtasysDuoDrUHtqqzfGx17az5eSGV3Ws"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol":{"keccak256":"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8","urls":["bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f","dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol":{"keccak256":"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753","urls":["bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf","dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":514,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":854,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":861,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":19,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)14_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)14_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)14_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)14_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":11,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":13,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/SubscriptionPolicy.sol","id":359,"exportedSymbols":{"BasePolicy":[1209],"SubscriptionPolicy":[358],"T":[1274]},"nodeType":"SourceUnit","src":"32:6410:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3,"nodeType":"ImportDirective","src":"57:69:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol","file":"@synaps3/core/primitives/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":359,"sourceUnit":1210,"symbolAliases":[{"foreign":{"id":2,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"66:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"127:55:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":359,"sourceUnit":1275,"symbolAliases":[{"foreign":{"id":4,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"136:1:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":358,"nodeType":"ContractDefinition","src":"281:6160:0","nodes":[{"id":14,"nodeType":"StructDefinition","src":"386:77:0","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"329:52:0","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":11,"mutability":"mutable","name":"pricePerDay","nameLocation":"419:11:0","nodeType":"VariableDeclaration","scope":14,"src":"411:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13,"mutability":"mutable","name":"currency","nameLocation":"448:8:0","nodeType":"VariableDeclaration","scope":14,"src":"440:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"393:7:0","scope":358,"visibility":"public"},{"id":19,"nodeType":"VariableDeclaration","src":"553:45:0","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"589:9:0","scope":358,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":18,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"553:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17,"nodeType":"UserDefinedTypeName","pathNode":{"id":16,"name":"Package","nameLocations":["572:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"572:7:0"},"referencedDeclaration":14,"src":"572:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":34,"nodeType":"FunctionDefinition","src":"605:203:0","nodes":[],"body":{"id":33,"nodeType":"Block","src":"806:2:0","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"744:25:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23,"src":"771:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"789:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":31,"kind":"baseConstructorSpecifier","modifierName":{"id":27,"name":"BasePolicy","nameLocations":["733:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"733:10:0"},"nodeType":"ModifierInvocation","src":"733:72:0"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"634:25:0","nodeType":"VariableDeclaration","scope":34,"src":"626:33:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"ownershipAddress","nameLocation":"677:16:0","nodeType":"VariableDeclaration","scope":34,"src":"669:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"providerAddress","nameLocation":"711:15:0","nodeType":"VariableDeclaration","scope":34,"src":"703:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"616:116:0"},"returnParameters":{"id":32,"nodeType":"ParameterList","parameters":[],"src":"806:0:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43,"nodeType":"FunctionDefinition","src":"862:98:0","nodes":[],"body":{"id":42,"nodeType":"Block","src":"916:44:0","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"933:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":39,"id":41,"nodeType":"Return","src":"926:27:0"}]},"baseFunctions":[677],"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"814:43:0","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"871:4:0","parameters":{"id":36,"nodeType":"ParameterList","parameters":[],"src":"875:2:0"},"returnParameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43,"src":"901:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37,"name":"string","nodeType":"ElementaryTypeName","src":"901:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"900:15:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":52,"nodeType":"FunctionDefinition","src":"1045:458:0","nodes":[],"body":{"id":51,"nodeType":"Block","src":"1106:397:0","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":49,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:361:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":48,"id":50,"nodeType":"Return","src":"1116:380:0"}]},"baseFunctions":[683],"documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"966:74:0","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1054:11:0","parameters":{"id":45,"nodeType":"ParameterList","parameters":[],"src":"1065:2:0"},"returnParameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52,"src":"1091:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46,"name":"string","nodeType":"ElementaryTypeName","src":"1091:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1090:15:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":95,"nodeType":"FunctionDefinition","src":"1896:377:0","nodes":[],"body":{"id":94,"nodeType":"Block","src":"1995:278:0","nodes":[],"statements":[{"assignments":[64,66],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"price","nameLocation":"2014:5:0","nodeType":"VariableDeclaration","scope":94,"src":"2006:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":66,"mutability":"mutable","name":"currency","nameLocation":"2029:8:0","nodeType":"VariableDeclaration","scope":94,"src":"2021:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76,"initialValue":{"arguments":[{"id":69,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"2052:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":71,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2059:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"2059:7:0","typeDescriptions":{}}},{"id":73,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2068:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72,"name":"address","nodeType":"ElementaryTypeName","src":"2068:7:0","typeDescriptions":{}}}],"id":74,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2058:18:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":67,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2041:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2045:6:0","memberName":"decode","nodeType":"MemberAccess","src":"2041:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2041:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"2005:72:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2091:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2091:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84,"nodeType":"IfStatement","src":"2087:75:0","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":81,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2132:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":80,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"2110:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":83,"nodeType":"RevertStatement","src":"2103:59:0"}},{"expression":{"id":92,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":85,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"2222:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":87,"indexExpression":{"id":86,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"2232:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2222:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":89,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2250:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"2257:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":88,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"2242:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$14_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":91,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2242:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"2222:44:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":93,"nodeType":"ExpressionStatement","src":"2222:44:0"}]},"baseFunctions":[691],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":59,"kind":"modifierInvocation","modifierName":{"id":58,"name":"onlyPolicyAuthorizer","nameLocations":["1962:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":935,"src":"1962:20:0"},"nodeType":"ModifierInvocation","src":"1962:20:0"},{"id":61,"kind":"modifierInvocation","modifierName":{"id":60,"name":"initializer","nameLocations":["1983:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1983:11:0"},"nodeType":"ModifierInvocation","src":"1983:11:0"}],"name":"initialize","nameLocation":"1905:10:0","parameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54,"mutability":"mutable","name":"holder","nameLocation":"1924:6:0","nodeType":"VariableDeclaration","scope":95,"src":"1916:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53,"name":"address","nodeType":"ElementaryTypeName","src":"1916:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"init","nameLocation":"1947:4:0","nodeType":"VariableDeclaration","scope":95,"src":"1932:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55,"name":"bytes","nodeType":"ElementaryTypeName","src":"1932:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:37:0"},"returnParameters":{"id":62,"nodeType":"ParameterList","parameters":[],"src":"1995:0:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":168,"nodeType":"FunctionDefinition","src":"2428:933:0","nodes":[],"body":{"id":167,"nodeType":"Block","src":"2581:780:0","nodes":[],"statements":[{"assignments":[112],"declarations":[{"constant":false,"id":112,"mutability":"mutable","name":"pkg","nameLocation":"2606:3:0","nodeType":"VariableDeclaration","scope":167,"src":"2591:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":111,"nodeType":"UserDefinedTypeName","pathNode":{"id":110,"name":"Package","nameLocations":["2591:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"2591:7:0"},"referencedDeclaration":14,"src":"2591:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":116,"initialValue":{"baseExpression":{"id":113,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"2612:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":115,"indexExpression":{"id":114,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"2622:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2612:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2591:38:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":117,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2643:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2647:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"2643:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2662:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2643:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":126,"nodeType":"IfStatement","src":"2639:213:0","trueBody":{"id":125,"nodeType":"Block","src":"2665:187:0","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73","id":122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2797:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""},"value":"Invalid not initialized holder conditions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""}],"id":121,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"2778:18:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":124,"nodeType":"RevertStatement","src":"2771:70:0"}]}},{"assignments":[128],"declarations":[{"constant":false,"id":128,"mutability":"mutable","name":"paidAmount","nameLocation":"2870:10:0","nodeType":"VariableDeclaration","scope":167,"src":"2862:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":127,"name":"uint256","nodeType":"ElementaryTypeName","src":"2862:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":131,"initialValue":{"expression":{"id":129,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"2883:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2893:5:0","memberName":"total","nodeType":"MemberAccess","referencedDeclaration":1232,"src":"2883:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2862:36:0"},{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"partiesLen","nameLocation":"2916:10:0","nodeType":"VariableDeclaration","scope":167,"src":"2908:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint256","nodeType":"ElementaryTypeName","src":"2908:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":137,"initialValue":{"expression":{"expression":{"id":134,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"2929:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2939:7:0","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"2929:17:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:6:0","memberName":"length","nodeType":"MemberAccess","src":"2929:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2908:45:0"},{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"pricePerDay","nameLocation":"2971:11:0","nodeType":"VariableDeclaration","scope":167,"src":"2963:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":138,"name":"uint256","nodeType":"ElementaryTypeName","src":"2963:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":142,"initialValue":{"expression":{"id":140,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2985:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2989:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"2985:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2963:37:0"},{"assignments":[144],"declarations":[{"constant":false,"id":144,"mutability":"mutable","name":"duration","nameLocation":"3098:8:0","nodeType":"VariableDeclaration","scope":167,"src":"3090:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":143,"name":"uint256","nodeType":"ElementaryTypeName","src":"3090:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":150,"initialValue":{"arguments":[{"id":146,"name":"paidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"3131:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":147,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3143:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":148,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3156:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":145,"name":"_verifyDaysFromAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"3109:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3090:77:0"},{"assignments":[152],"declarations":[{"constant":false,"id":152,"mutability":"mutable","name":"subExpire","nameLocation":"3251:9:0","nodeType":"VariableDeclaration","scope":167,"src":"3243:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3243:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":160,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":153,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3263:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"3263:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":155,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"3282:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3293:6:0","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3282:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3281:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3263:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3243:57:0"},{"expression":{"arguments":[{"id":162,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3325:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":163,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"3333:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":164,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"3344:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":161,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"3317:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$1240_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":109,"id":166,"nodeType":"Return","src":"3310:44:0"}]},"baseFunctions":[703],"functionSelector":"464c0aeb","implemented":true,"kind":"function","modifiers":[{"id":103,"kind":"modifierInvocation","modifierName":{"id":102,"name":"onlyPolicyManager","nameLocations":["2524:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":915,"src":"2524:17:0"},"nodeType":"ModifierInvocation","src":"2524:17:0"},{"id":105,"kind":"modifierInvocation","modifierName":{"id":104,"name":"initialized","nameLocations":["2542:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":960,"src":"2542:11:0"},"nodeType":"ModifierInvocation","src":"2542:11:0"}],"name":"enforce","nameLocation":"2437:7:0","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"holder","nameLocation":"2462:6:0","nodeType":"VariableDeclaration","scope":168,"src":"2454:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100,"mutability":"mutable","name":"agreement","nameLocation":"2499:9:0","nodeType":"VariableDeclaration","scope":168,"src":"2478:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":99,"nodeType":"UserDefinedTypeName","pathNode":{"id":98,"name":"T.Agreement","nameLocations":["2478:1:0","2480:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":1240,"src":"2478:11:0"},"referencedDeclaration":1240,"src":"2478:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2444:70:0"},"returnParameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":168,"src":"2563:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":106,"name":"uint256","nodeType":"ElementaryTypeName","src":"2563:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":107,"nodeType":"ArrayTypeName","src":"2563:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2562:18:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":216,"nodeType":"FunctionDefinition","src":"3450:527:0","nodes":[],"body":{"id":215,"nodeType":"Block","src":"3546:431:0","nodes":[],"statements":[{"condition":{"arguments":[{"id":179,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3641:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":178,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"3624:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3624:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":197,"nodeType":"IfStatement","src":"3620:186:0","trueBody":{"id":196,"nodeType":"Block","src":"3652:154:0","statements":[{"assignments":[182],"declarations":[{"constant":false,"id":182,"mutability":"mutable","name":"holder","nameLocation":"3706:6:0","nodeType":"VariableDeclaration","scope":196,"src":"3698:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":181,"name":"address","nodeType":"ElementaryTypeName","src":"3698:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":190,"initialValue":{"arguments":[{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3726:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":186,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:0","typeDescriptions":{}}}],"id":188,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3715:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3719:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3715:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3698:48:0"},{"expression":{"arguments":[{"id":192,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3779:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":193,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"3788:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":191,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"3767:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3767:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":177,"id":195,"nodeType":"Return","src":"3760:35:0"}]}},{"assignments":[199],"declarations":[{"constant":false,"id":199,"mutability":"mutable","name":"assetId","nameLocation":"3872:7:0","nodeType":"VariableDeclaration","scope":215,"src":"3864:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":207,"initialValue":{"arguments":[{"id":202,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3893:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3904:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":203,"name":"uint256","nodeType":"ElementaryTypeName","src":"3904:7:0","typeDescriptions":{}}}],"id":205,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3903:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3882:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3886:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3882:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3882:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3864:49:0"},{"expression":{"arguments":[{"id":209,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3942:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":211,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"3961:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":210,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"3951:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":208,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"3930:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":177,"id":214,"nodeType":"Return","src":"3923:47:0"}]},"baseFunctions":[713],"documentation":{"id":169,"nodeType":"StructuredDocumentation","src":"3367:78:0","text":"@notice Verifies if an account has access to holder's content or asset id."},"functionSelector":"cfdce1a7","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3459:15:0","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"account","nameLocation":"3483:7:0","nodeType":"VariableDeclaration","scope":216,"src":"3475:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"3475:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173,"mutability":"mutable","name":"criteria","nameLocation":"3507:8:0","nodeType":"VariableDeclaration","scope":216,"src":"3492:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":172,"name":"bytes","nodeType":"ElementaryTypeName","src":"3492:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3474:42:0"},"returnParameters":{"id":177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":216,"src":"3540:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":175,"name":"bool","nodeType":"ElementaryTypeName","src":"3540:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3539:6:0"},"scope":358,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":264,"nodeType":"FunctionDefinition","src":"4067:604:0","nodes":[],"body":{"id":263,"nodeType":"Block","src":"4153:518:0","nodes":[],"statements":[{"condition":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4346:27:0","subExpression":{"arguments":[{"id":226,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"4364:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":225,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"4347:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4347:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":233,"nodeType":"IfStatement","src":"4342:95:0","trueBody":{"id":232,"nodeType":"Block","src":"4375:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":229,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"4396:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":231,"nodeType":"RevertStatement","src":"4389:37:0"}]}},{"assignments":[235],"declarations":[{"constant":false,"id":235,"mutability":"mutable","name":"holder","nameLocation":"4455:6:0","nodeType":"VariableDeclaration","scope":263,"src":"4447:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"4447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":243,"initialValue":{"arguments":[{"id":238,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"4475:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4486:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":239,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:0","typeDescriptions":{}}}],"id":241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4485:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4464:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4468:6:0","memberName":"decode","nodeType":"MemberAccess","src":"4464:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4464:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4447:48:0"},{"assignments":[246],"declarations":[{"constant":false,"id":246,"mutability":"mutable","name":"pkg","nameLocation":"4520:3:0","nodeType":"VariableDeclaration","scope":263,"src":"4505:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":245,"nodeType":"UserDefinedTypeName","pathNode":{"id":244,"name":"Package","nameLocations":["4505:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"4505:7:0"},"referencedDeclaration":14,"src":"4505:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":250,"initialValue":{"baseExpression":{"id":247,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"4526:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":249,"indexExpression":{"id":248,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"4536:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4526:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4505:38:0"},{"expression":{"arguments":[{"expression":{"id":253,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4604:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4608:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"4604:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":255,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4621:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4625:8:0","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":13,"src":"4621:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":257,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"4635:1:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$1274_$","typeString":"type(library T)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4637:9:0","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":1252,"src":"4635:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$1252_$","typeString":"type(enum T.RateBasis)"}},"id":259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4647:5:0","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":1250,"src":"4635:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$1252","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$1252","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":251,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"4596:1:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$1274_$","typeString":"type(library T)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4598:5:0","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":1263,"src":"4596:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$1263_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":224,"id":262,"nodeType":"Return","src":"4589:75:0"}]},"baseFunctions":[722],"documentation":{"id":217,"nodeType":"StructuredDocumentation","src":"3983:79:0","text":"@notice Retrieves the terms associated with a specific criteria and policy."},"functionSelector":"a3937111","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4076:12:0","parameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"criteria","nameLocation":"4104:8:0","nodeType":"VariableDeclaration","scope":264,"src":"4089:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":218,"name":"bytes","nodeType":"ElementaryTypeName","src":"4089:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4088:25:0"},"returnParameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":264,"src":"4137:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":222,"nodeType":"UserDefinedTypeName","pathNode":{"id":221,"name":"T.Terms","nameLocations":["4137:1:0","4139:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":1263,"src":"4137:7:0"},"referencedDeclaration":1263,"src":"4137:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4136:16:0"},"scope":358,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":307,"nodeType":"FunctionDefinition","src":"4677:669:0","nodes":[],"body":{"id":306,"nodeType":"Block","src":"4826:520:0","nodes":[],"statements":[{"assignments":[276],"declarations":[{"constant":false,"id":276,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"4919:17:0","nodeType":"VariableDeclaration","scope":306,"src":"4911:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4911:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":280,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":277,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":266,"src":"4939:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":278,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"4948:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4939:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4911:47:0"},{"assignments":[282],"declarations":[{"constant":false,"id":282,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"5024:20:0","nodeType":"VariableDeclaration","scope":306,"src":"5016:28:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":281,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":286,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":283,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"5047:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":284,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"5067:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5047:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5016:62:0"},{"assignments":[288],"declarations":[{"constant":false,"id":288,"mutability":"mutable","name":"total","nameLocation":"5151:5:0","nodeType":"VariableDeclaration","scope":306,"src":"5143:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":287,"name":"uint256","nodeType":"ElementaryTypeName","src":"5143:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":295,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":289,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":282,"src":"5160:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":290,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"5183:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5160:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5159:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":293,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"5198:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5159:49:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5143:65:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":266,"src":"5222:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":297,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"5231:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5222:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":303,"nodeType":"IfStatement","src":"5218:84:0","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5264:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":299,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"5245:18:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":302,"nodeType":"RevertStatement","src":"5238:64:0"}},{"expression":{"id":304,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":282,"src":"5319:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":274,"id":305,"nodeType":"Return","src":"5312:27:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyDaysFromAmount","nameLocation":"4686:21:0","parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"amount","nameLocation":"4725:6:0","nodeType":"VariableDeclaration","scope":307,"src":"4717:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":265,"name":"uint256","nodeType":"ElementaryTypeName","src":"4717:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":268,"mutability":"mutable","name":"pricePerDay","nameLocation":"4749:11:0","nodeType":"VariableDeclaration","scope":307,"src":"4741:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4741:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":270,"mutability":"mutable","name":"partiesLen","nameLocation":"4778:10:0","nodeType":"VariableDeclaration","scope":307,"src":"4770:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":269,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4707:87:0"},"returnParameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":307,"src":"4817:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":272,"name":"uint256","nodeType":"ElementaryTypeName","src":"4817:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4816:9:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":357,"nodeType":"FunctionDefinition","src":"5352:1087:0","nodes":[],"body":{"id":356,"nodeType":"Block","src":"5431:1008:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":314,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6194:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6203:6:0","memberName":"length","nodeType":"MemberAccess","src":"6194:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6213:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6194:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":321,"nodeType":"IfStatement","src":"6190:64:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":318,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"6224:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6224:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":320,"nodeType":"RevertStatement","src":"6217:37:0"}},{"assignments":[323],"declarations":[{"constant":false,"id":323,"mutability":"mutable","name":"last20Valid","nameLocation":"6269:11:0","nodeType":"VariableDeclaration","scope":356,"src":"6264:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":322,"name":"bool","nodeType":"ElementaryTypeName","src":"6264:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":336,"initialValue":{"commonType":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"id":335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":326,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6291:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6303:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6291:15:0","startExpression":{"hexValue":"3132","id":327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6300:2:0","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6283:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":324,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6283:7:0","typeDescriptions":{}}},"id":330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6319:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6311:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":331,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6311:7:0","typeDescriptions":{}}},"id":334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6311:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"src":"6283:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6264:57:0"},{"assignments":[338],"declarations":[{"constant":false,"id":338,"mutability":"mutable","name":"first12Valid","nameLocation":"6336:12:0","nodeType":"VariableDeclaration","scope":356,"src":"6331:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":337,"name":"bool","nodeType":"ElementaryTypeName","src":"6331:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":351,"initialValue":{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":341,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6359:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3132","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6370:2:0","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6359:14:0","startExpression":{"hexValue":"30","id":342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6368:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6351:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":339,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6351:7:0","typeDescriptions":{}}},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6386:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6378:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":346,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6378:7:0","typeDescriptions":{}}},"id":349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"6351:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6331:57:0"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":352,"name":"last20Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"6405:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":353,"name":"first12Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6420:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6405:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":313,"id":355,"nodeType":"Return","src":"6398:34:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isHolderAddress","nameLocation":"5361:16:0","parameters":{"id":310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":309,"mutability":"mutable","name":"criteria","nameLocation":"5393:8:0","nodeType":"VariableDeclaration","scope":357,"src":"5378:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":308,"name":"bytes","nodeType":"ElementaryTypeName","src":"5378:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5377:25:0"},"returnParameters":{"id":313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":357,"src":"5425:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":311,"name":"bool","nodeType":"ElementaryTypeName","src":"5425:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5424:6:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":7,"name":"BasePolicy","nameLocations":["312:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"312:10:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"312:10:0"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"184:97:0","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[358,1209,596,608,739,572],"name":"SubscriptionPolicy","nameLocation":"290:18:0","scope":359,"usedErrors":[517,873,876,881,884,889,892,897],"usedEvents":[870]}],"license":"MIT"},"id":0} diff --git a/src/config/abi/TipActionModule.json b/src/config/abi/TipActionModule.json deleted file mode 100644 index d120b0f9d..000000000 --- a/src/config/abi/TipActionModule.json +++ /dev/null @@ -1 +0,0 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"hub","type":"address","internalType":"address"},{"name":"moduleRegistry","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"HUB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"MODULE_REGISTRY","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IModuleRegistry"}],"stateMutability":"view"},{"type":"function","name":"getModuleMetadataURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getTipReceiver","inputs":[{"name":"profileId","type":"uint256","internalType":"uint256"},{"name":"pubId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initializePublicationAction","inputs":[{"name":"profileId","type":"uint256","internalType":"uint256"},{"name":"pubId","type":"uint256","internalType":"uint256"},{"name":"","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"isRegistered","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"metadataURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"processPublicationAction","inputs":[{"name":"params","type":"tuple","internalType":"struct Types.ProcessActionParams","components":[{"name":"publicationActedProfileId","type":"uint256","internalType":"uint256"},{"name":"publicationActedId","type":"uint256","internalType":"uint256"},{"name":"actorProfileId","type":"uint256","internalType":"uint256"},{"name":"actorProfileOwner","type":"address","internalType":"address"},{"name":"transactionExecutor","type":"address","internalType":"address"},{"name":"referrerProfileIds","type":"uint256[]","internalType":"uint256[]"},{"name":"referrerPubIds","type":"uint256[]","internalType":"uint256[]"},{"name":"referrerPubTypes","type":"uint8[]","internalType":"enum Types.PublicationType[]"},{"name":"actionModuleData","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"registerModule","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setModuleMetadataURI","inputs":[{"name":"_metadataURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceID","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"pure"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"ModuleRegistered","inputs":[],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TipCreated","inputs":[{"name":"transactionExecutor","type":"address","indexed":true,"internalType":"address"},{"name":"tipReceiver","type":"address","indexed":true,"internalType":"address"},{"name":"currency","type":"address","indexed":true,"internalType":"address"},{"name":"tipAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"TipReceiverRegistered","inputs":[{"name":"profileId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"pubId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"tipReceiver","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"CurrencyNotWhitelisted","inputs":[]},{"type":"error","name":"NotHub","inputs":[]},{"type":"error","name":"TipAmountCannotBeZero","inputs":[]},{"type":"error","name":"TipReceiverNotProvided","inputs":[]}],"bytecode":{"object":"0x60c0346100ea57601f61140538819003918201601f19168301916001600160401b038311848410176100ee5780849260409485528339810103126100ea57610052602061004b83610102565b9201610102565b5f8054336001600160a01b0319821681178355604051949290916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09080a36080526001600160a01b031660a0526112ee908161011782396080518181816102be015281816103780152610b8e015260a05181818161026e0152818161046f0152818161101901526110e60152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100ea5756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610c7b5750806303ee438c1461020f5780630b96022014610b135780632236684414610af9578063681591c1146108aa578063715018a61461082e5780638da5cb5b146107fc57806390ce6e081461032e5780639df31650146102e2578063a4c52b8614610292578063b95ddb5214610242578063ce90d52e1461020f578063e0f0da85146101e35763f2fde38b146100b6575f80fd5b346101df5760206003193601126101df5760043573ffffffffffffffffffffffffffffffffffffffff81168091036101df576100f061116a565b801561015b5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b5f80fd5b346101df575f6003193601126101df576101fb61116a565b6020610205611089565b6040519015158152f35b346101df575f6003193601126101df5761023e61022a610dec565b604051918291602083526020830190610ec1565b0390f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df5760406003193601126101df576004355f52600260205260405f206024355f52602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df578036036101206003198201126101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd61010483013591018112156101df57810190600482013567ffffffffffffffff81116101df57602483019080360382136101df576040908401849003126101df57604461042073ffffffffffffffffffffffffffffffffffffffff92610f97565b9301359216906040517ff21b24d700000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161079a575b501561077257821561074a5780600401355f52600260205260405f2060248201355f52602052610537608473ffffffffffffffffffffffffffffffffffffffff60405f2054169201838373ffffffffffffffffffffffffffffffffffffffff61050784611068565b167fa97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d9460206040518a8152a4611068565b9261063d6040516105cd816105a18587602084019a7f23b872dd000000000000000000000000000000000000000000000000000000008c526024850173ffffffffffffffffffffffffffffffffffffffff6040929594938160608401971683521660208201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610dab565b5f806040978851936105df8a86610dab565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15610742573d9061062082610f27565b9161062d89519384610dab565b82523d5f602084013e5b866111e8565b8051908115918215610728575b5050156106a557835173ffffffffffffffffffffffffffffffffffffffff9283166020820152929091166040830152606080830191909152815261023e91610693608083610dab565b51918291602083526020830190610ec1565b608484517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b61073b9250602080918301019101610fb8565b858061064a565b606090610637565b7f7378d044000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f5f6063cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107bc915060203d6020116107c2575b6107b48183610dab565b810190610fb8565b8461049f565b503d6107aa565b6040513d5f823e3d90fd5b7f9de97418000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df575f6003193601126101df57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101df575f6003193601126101df5761084661116a565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df57366023820112156101df576108ec903690602481600401359101610f61565b6108f461116a565b805167ffffffffffffffff8111610acc57610910600154610d5a565b601f8111610a2b575b50602091601f8211600114610973579181925f92610968575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555f80f35b015190508280610932565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b858110610a13575083600195106109dc575b505050811b01600155005b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806109d1565b919260206001819286850151815501940192016109bf565b60015f52601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610aa4575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610a995750610919565b5f8155600101610a8c565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610a62565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346101df575f6003193601126101df576020610205610fd0565b346101df5760806003193601126101df57602435600435610b32610f04565b5060643567ffffffffffffffff81116101df57366023820112156101df57806004013567ffffffffffffffff81116101df576024820191818101903660248301116101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d45760209103126101df5773ffffffffffffffffffffffffffffffffffffffff610bdb83610f97565b168015610c535761023e948461022a955f52600260205260405f20825f5260205260405f20837fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fd8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a560516825f80a43691610f61565b7f2d89e952000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df5760206003193601126101df57600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101df57817f9b586c280000000000000000000000000000000000000000000000000000000060209314918215610cf4575b50506040519015158152f35b7fffffffff00000000000000000000000000000000000000000000000000000000919250838101907f4c454e535f4d4f44554c450000000000000000000000000000000000000000008252600b8152610d4e602b82610dab565b51902016148280610ce8565b90600182811c92168015610da1575b6020831014610d7457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610d69565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610acc57604052565b604051905f8260015491610dff83610d5a565b8083529260018116908115610e845750600114610e25575b610e2392500383610dab565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310610e68575050906020610e2392820101610e17565b6020919350806001915483858901015201910190918492610e50565b60209250610e239491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101610e17565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b67ffffffffffffffff8111610acc57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192610f6d82610f27565b91610f7b6040519384610dab565b8294818452818301116101df578281602093845f960137010152565b359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b908160209103126101df575180151581036101df5790565b6040517f1c5ebe2f00000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161104c575090565b611065915060203d6020116107c2576107b48183610dab565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036101df5790565b611091610fd0565b611165576040517f41ab44ee000000000000000000000000000000000000000000000000000000008152306004820152600160248201526020816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156107c9575f91611146575b508061111f5790565b7fb24617d9cac8b35b25b3bcaf3eb7e8e8e1cbed6ee116121e4e1c08a9774310625f80a190565b61115f915060203d6020116107c2576107b48183610dab565b5f611116565b600190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361118a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9192901561126357508151156111fc575090565b3b156112055790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156112765750805190602001fd5b6112b4906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ec1565b0390fdfea2646970667358221220a603317607cf6c4d6692310fd4fe8e10e6d1ae6625ec2bcfa004ddd37faf1f8064736f6c634300081a0033","sourceMap":"760:3342:0:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;-1:-1:-1;;;;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;-1:-1:-1;760:3342:0;;734:10:36;-1:-1:-1;;;;;;760:3342:0;;;;;;;;;;734:10:36;;-1:-1:-1;;;;;760:3342:0;;2566:40:30;;-1:-1:-1;2566:40:30;598:9:1;;-1:-1:-1;;;;;760:3342:0;;780:49:4;760:3342:0;;;;;;598:9:1;760:3342:0;;;;;;;;;;;;;;;780:49:4;760:3342:0;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;-1:-1:-1;760:3342:0;;;;;-1:-1:-1;760:3342:0;;;;-1:-1:-1;;;;;760:3342:0;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a714610c7b5750806303ee438c1461020f5780630b96022014610b135780632236684414610af9578063681591c1146108aa578063715018a61461082e5780638da5cb5b146107fc57806390ce6e081461032e5780639df31650146102e2578063a4c52b8614610292578063b95ddb5214610242578063ce90d52e1461020f578063e0f0da85146101e35763f2fde38b146100b6575f80fd5b346101df5760206003193601126101df5760043573ffffffffffffffffffffffffffffffffffffffff81168091036101df576100f061116a565b801561015b5773ffffffffffffffffffffffffffffffffffffffff5f54827fffffffffffffffffffffffff00000000000000000000000000000000000000008216175f55167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3005b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152fd5b5f80fd5b346101df575f6003193601126101df576101fb61116a565b6020610205611089565b6040519015158152f35b346101df575f6003193601126101df5761023e61022a610dec565b604051918291602083526020830190610ec1565b0390f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df575f6003193601126101df57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101df5760406003193601126101df576004355f52600260205260405f206024355f52602052602073ffffffffffffffffffffffffffffffffffffffff60405f205416604051908152f35b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df578036036101206003198201126101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d4577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd61010483013591018112156101df57810190600482013567ffffffffffffffff81116101df57602483019080360382136101df576040908401849003126101df57604461042073ffffffffffffffffffffffffffffffffffffffff92610f97565b9301359216906040517ff21b24d700000000000000000000000000000000000000000000000000000000815282600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161079a575b501561077257821561074a5780600401355f52600260205260405f2060248201355f52602052610537608473ffffffffffffffffffffffffffffffffffffffff60405f2054169201838373ffffffffffffffffffffffffffffffffffffffff61050784611068565b167fa97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d9460206040518a8152a4611068565b9261063d6040516105cd816105a18587602084019a7f23b872dd000000000000000000000000000000000000000000000000000000008c526024850173ffffffffffffffffffffffffffffffffffffffff6040929594938160608401971683521660208201520152565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610dab565b5f806040978851936105df8a86610dab565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020860152519082895af13d15610742573d9061062082610f27565b9161062d89519384610dab565b82523d5f602084013e5b866111e8565b8051908115918215610728575b5050156106a557835173ffffffffffffffffffffffffffffffffffffffff9283166020820152929091166040830152606080830191909152815261023e91610693608083610dab565b51918291602083526020830190610ec1565b608484517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152fd5b61073b9250602080918301019101610fb8565b858061064a565b606090610637565b7f7378d044000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f5f6063cc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6107bc915060203d6020116107c2575b6107b48183610dab565b810190610fb8565b8461049f565b503d6107aa565b6040513d5f823e3d90fd5b7f9de97418000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df575f6003193601126101df57602073ffffffffffffffffffffffffffffffffffffffff5f5416604051908152f35b346101df575f6003193601126101df5761084661116a565b5f73ffffffffffffffffffffffffffffffffffffffff81547fffffffffffffffffffffffff000000000000000000000000000000000000000081168355167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b346101df5760206003193601126101df5760043567ffffffffffffffff81116101df57366023820112156101df576108ec903690602481600401359101610f61565b6108f461116a565b805167ffffffffffffffff8111610acc57610910600154610d5a565b601f8111610a2b575b50602091601f8211600114610973579181925f92610968575b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260011b9260031b1c1916176001555f80f35b015190508280610932565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082169260015f527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6915f5b858110610a13575083600195106109dc575b505050811b01600155005b01517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60f88460031b161c191690558280806109d1565b919260206001819286850151815501940192016109bf565b60015f52601f820160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6019060208310610aa4575b601f0160051c7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf601905b818110610a995750610919565b5f8155600101610a8c565b7fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69150610a62565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b346101df575f6003193601126101df576020610205610fd0565b346101df5760806003193601126101df57602435600435610b32610f04565b5060643567ffffffffffffffff81116101df57366023820112156101df57806004013567ffffffffffffffff81116101df576024820191818101903660248301116101df5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633036107d45760209103126101df5773ffffffffffffffffffffffffffffffffffffffff610bdb83610f97565b168015610c535761023e948461022a955f52600260205260405f20825f5260205260405f20837fffffffffffffffffffffffff00000000000000000000000000000000000000008254161790557fd8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a560516825f80a43691610f61565b7f2d89e952000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101df5760206003193601126101df57600435907fffffffff0000000000000000000000000000000000000000000000000000000082168092036101df57817f9b586c280000000000000000000000000000000000000000000000000000000060209314918215610cf4575b50506040519015158152f35b7fffffffff00000000000000000000000000000000000000000000000000000000919250838101907f4c454e535f4d4f44554c450000000000000000000000000000000000000000008252600b8152610d4e602b82610dab565b51902016148280610ce8565b90600182811c92168015610da1575b6020831014610d7457565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b91607f1691610d69565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610acc57604052565b604051905f8260015491610dff83610d5a565b8083529260018116908115610e845750600114610e25575b610e2392500383610dab565b565b5060015f90815290917fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b818310610e68575050906020610e2392820101610e17565b6020919350806001915483858901015201910190918492610e50565b60209250610e239491507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001682840152151560051b820101610e17565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6044359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b67ffffffffffffffff8111610acc57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b929192610f6d82610f27565b91610f7b6040519384610dab565b8294818452818301116101df578281602093845f960137010152565b359073ffffffffffffffffffffffffffffffffffffffff821682036101df57565b908160209103126101df575180151581036101df5790565b6040517f1c5ebe2f00000000000000000000000000000000000000000000000000000000815230600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156107c9575f9161104c575090565b611065915060203d6020116107c2576107b48183610dab565b90565b3573ffffffffffffffffffffffffffffffffffffffff811681036101df5790565b611091610fd0565b611165576040517f41ab44ee000000000000000000000000000000000000000000000000000000008152306004820152600160248201526020816044815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af19081156107c9575f91611146575b508061111f5790565b7fb24617d9cac8b35b25b3bcaf3eb7e8e8e1cbed6ee116121e4e1c08a9774310625f80a190565b61115f915060203d6020116107c2576107b48183610dab565b5f611116565b600190565b73ffffffffffffffffffffffffffffffffffffffff5f5416330361118a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b9192901561126357508151156111fc575090565b3b156112055790565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152fd5b8251909150156112765750805190602001fd5b6112b4906040519182917f08c379a0000000000000000000000000000000000000000000000000000000008352602060048401526024830190610ec1565b0390fdfea2646970667358221220a603317607cf6c4d6692310fd4fe8e10e6d1ae6625ec2bcfa004ddd37faf1f8064736f6c634300081a0033","sourceMap":"760:3342:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;1063:62:30;;:::i;:::-;2162:22;;760:3342:0;;;;;;;;;;;;;2566:40:30;760:3342:0;2566:40:30;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;1063:62:30;;:::i;:::-;760:3342:0;1065:404:4;;:::i;:::-;760:3342:0;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;679:48:4;760:3342:0;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;406:28:1;760:3342:0;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;2266:13;760:3342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;488:3:1;760:3342:0;474:10:1;:17;470:70;;760:3342:0;3309:23;;;760:3342;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3285:89;;;760:3342;;;;;;;;;;;:::i;:::-;;;;;;;;;;3390:51;;;760:3342;3390:51;;760:3342;;3390:15;:51;:15;760:3342;3390:15;760:3342;3390:51;;;;;;;760:3342;3390:51;;;760:3342;3389:52;;3385:114;;3513:14;;3509:75;;760:3342;;;;;;3616:13;760:3342;;;;;3390:51;3677:25;;760:3342;;;;;3947:26;3794;760:3342;;;;;;3794:26;;;;760:3342;3794:26;;;:::i;:::-;760:3342;3770:130;760:3342;;;;;;3770:130;3947:26;:::i;:::-;760:3342;5535:69:35;760:3342:0;;1482:68:34;;;;;760:3342:0;1482:68:34;;;760:3342:0;1482:68:34;;3390:51:0;1482:68:34;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;1482:68:34;;760:3342:0;1482:68:34;;;;;;:::i;:::-;760:3342:0;;;;;;;;;;;:::i;:::-;;;;;;;;;5487:31:35;;;;;;760:3342:0;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;5535:69:35;;:::i;:::-;760:3342:0;;5728:22:34;;;:56;;;;;760:3342:0;;;;;;;;;;;;;4049:44;;760:3342;;;;;;;;;;;;;;;;;4049:44;;760:3342;;4049:44;760:3342;;4049:44;:::i;:::-;760:3342;;;;;;;;;;;;:::i;:::-;3794:26;760:3342;;;;;;;;;;;3390:51;760:3342;;;;;;;;;;;;;;5728:56:34;5754:30;;;760:3342:0;5754:30:34;;;;;;;;:::i;:::-;5728:56;;;;760:3342:0;;;;;3509:75;3550:23;760:3342;3550:23;760:3342;;3550:23;3385:114;3464:24;760:3342;3464:24;760:3342;;3464:24;3390:51;;;;760:3342;3390:51;760:3342;3390:51;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;760:3342;;;;;;;;;470:70:1;514:15;760:3342:0;514:15:1;760:3342:0;;514:15:1;760:3342:0;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;1063:62:30;;:::i;:::-;760:3342:0;;;;;;;;;;2566:40:30;;;;760:3342:0;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1063:62:30;;:::i;:::-;760:3342:0;;;;;;;;371:26:3;760:3342:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;371:26:3;760:3342:0;;;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;-1:-1:-1;;;760:3342:0;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;371:26:3;760:3342:0;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3342:0;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;488:3:1;760:3342:0;474:10:1;:17;470:70;;760:3342:0;;;;;;;;;;:::i;:::-;;2854:25;;2850:87;;760:3342;;;;;;;2947:13;760:3342;;;;;;;;;;;;;;;;;;;;;3008:52;760:3342;3008:52;;760:3342;;;:::i;2850:87::-;2902:24;760:3342;2902:24;760:3342;;2902:24;760:3342;;;;;-1:-1:-1;;760:3342:0;;;;;;;;;;;;;;;;2444:57;2459:42;760:3342;2444:57;;:109;;;;;760:3342;;;;;;;;;;;2444:109;760:3342;366:31:2;;;;;;760:3342:0;;;;366:31:2;;;;;;;:::i;:::-;760:3342:0;356:42:2;;760:3342:0;334:65:2;2444:109:0;;;;760:3342;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;-1:-1:-1;760:3342:0;238:25:3;760:3342:0;;;;;:::i;:::-;;;;;238:25:3;760:3342:0;;;238:25:3;;;;760:3342:0;;;;;;;;;;;;:::i;:::-;:::o;:::-;-1:-1:-1;238:25:3;-1:-1:-1;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;238:25:3;760:3342:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;760:3342:0;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;884:133:4:-;760:3342:0;;;961:49:4;;1004:4;961:49;;;760:3342:0;;961:15:4;:49;:15;760:3342:0;961:15:4;760:3342:0;961:49:4;;;;;;;-1:-1:-1;961:49:4;;;954:56;884:133;:::o;961:49::-;;;;760:3342:0;961:49:4;760:3342:0;961:49:4;;;;;;;:::i;:::-;884:133;:::o;760:3342:0:-;;;;;;;;;;:::o;1065:404:4:-;1148:14;;:::i;:::-;1144:56;;760:3342:0;;;1228:132:4;;1280:4;760:3342:0;1228:132:4;;760:3342:0;1307:42:4;760:3342:0;;;;;1228:15:4;:132;:15;-1:-1:-1;760:3342:0;1228:15:4;760:3342:0;1228:132:4;;;;;;;-1:-1:-1;1228:132:4;;;1065:404;1371:64;;;;1065:404;:::o;1371:64::-;1406:18;-1:-1:-1;1406:18:4;;1065:404;:::o;1228:132::-;;;;760:3342:0;1228:132:4;760:3342:0;1228:132:4;;;;;;;:::i;:::-;;;;1144:56;1185:4;1178:11;:::o;1359:130:30:-;760:3342:0;1273:6:30;760:3342:0;;734:10:36;1422:23:30;760:3342:0;;1359:130:30:o;760:3342:0:-;;;;;;;;;;;;;;;;;;;;;;;7671:628:35;;;;7875:418;;;760:3342:0;;;7906:22:35;7902:286;;8201:17;;:::o;7902:286::-;1702:19;:23;760:3342:0;;8201:17:35;:::o;760:3342:0:-;;;;;;;;;;;;;;;;;;;;;;;7875:418:35;760:3342:0;;;;-1:-1:-1;8980:21:35;:17;;9152:142;;;;;;;8976:379;760:3342:0;;;;9324:20:35;;;;;;760:3342:0;9324:20:35;;;760:3342:0;;;;;;:::i;:::-;9324:20:35;;","linkReferences":{},"immutableReferences":{"270":[{"start":702,"length":32},{"start":888,"length":32},{"start":2958,"length":32}],"378":[{"start":622,"length":32},{"start":1135,"length":32},{"start":4121,"length":32},{"start":4326,"length":32}]}},"methodIdentifiers":{"HUB()":"a4c52b86","MODULE_REGISTRY()":"b95ddb52","getModuleMetadataURI()":"ce90d52e","getTipReceiver(uint256,uint256)":"9df31650","initializePublicationAction(uint256,uint256,address,bytes)":"0b960220","isRegistered()":"22366844","metadataURI()":"03ee438c","owner()":"8da5cb5b","processPublicationAction((uint256,uint256,uint256,address,address,uint256[],uint256[],uint8[],bytes))":"90ce6e08","registerModule()":"e0f0da85","renounceOwnership()":"715018a6","setModuleMetadataURI(string)":"681591c1","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hub\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"moduleRegistry\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CurrencyNotWhitelisted\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotHub\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipAmountCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TipReceiverNotProvided\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"ModuleRegistered\",\"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\":true,\"internalType\":\"address\",\"name\":\"transactionExecutor\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tipReceiver\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tipAmount\",\"type\":\"uint256\"}],\"name\":\"TipCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"tipReceiver\",\"type\":\"address\"}],\"name\":\"TipReceiverRegistered\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"HUB\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MODULE_REGISTRY\",\"outputs\":[{\"internalType\":\"contract IModuleRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getModuleMetadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"}],\"name\":\"getTipReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"profileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pubId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"initializePublicationAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isRegistered\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadataURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"publicationActedProfileId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"publicationActedId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"actorProfileId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"actorProfileOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"transactionExecutor\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"referrerProfileIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"referrerPubIds\",\"type\":\"uint256[]\"},{\"internalType\":\"enum Types.PublicationType[]\",\"name\":\"referrerPubTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"bytes\",\"name\":\"actionModuleData\",\"type\":\"bytes\"}],\"internalType\":\"struct Types.ProcessActionParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"processPublicationAction\",\"outputs\":[{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerModule\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_metadataURI\",\"type\":\"string\"}],\"name\":\"setModuleMetadataURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceID\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Open Action Module for tipping Lens publications.\",\"kind\":\"dev\",\"methods\":{\"constructor\":{\"details\":\"Initializes the TipActionModule contract.\",\"params\":{\"hub\":\"Address of the LensHub contract.\",\"moduleRegistry\":\"Address of the ModuleRegistry contract.\"}},\"getTipReceiver(uint256,uint256)\":{\"details\":\"Returns the tip receiver for a publication.\",\"params\":{\"profileId\":\"ID of the profile.\",\"pubId\":\"ID of the publication.\"},\"returns\":{\"_0\":\"Address of the tip receiver.\"}},\"isRegistered()\":{\"details\":\"Checks if the module is registered in the module registry\",\"returns\":{\"_0\":\"True if the module is registered, false otherwise\"}},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"registerModule()\":{\"details\":\"Registers the open action in the module registry\",\"returns\":{\"_0\":\"True if the module was registered, false otherwise\"}},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"supportsInterface(bytes4)\":{\"details\":\"for now we check for keccak('LENS_MODULE'); Override this and add the type(IModuleInterface).interfaceId for corresponding module type\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"stateVariables\":{\"_tipReceivers\":{\"details\":\"Mapping of tip receivers for publications.\"}},\"title\":\"TipActionModule\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getModuleMetadataURI()\":{\"notice\":\"Human-readable description of the module\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/TipActionModule.sol\":\"TipActionModule\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@openzeppelin/=node_modules/@openzeppelin/\",\":forge-std/=lib/forge-std/src/\"],\"viaIR\":true},\"sources\":{\"contracts/TipActionModule.sol\":{\"keccak256\":\"0xb9c2c75935053e7db55abe6d9733e781f608c77047e266343676047f800bd9e9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f1e52e4a596a987831987d039668a8eab24fc2ab7a2bec08e0654a8c9dc3ea4d\",\"dweb:/ipfs/QmUncawdBvqRwynAwopRAuinYEpBj8s9ER2z1yRzV1o242\"]},\"contracts/base/HubRestricted.sol\":{\"keccak256\":\"0xd8f26a8ae5f4804ba772d5e435049addc5c07941afd800112da10f2d6c1aef53\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e68872641f1cd288c9c0e8cc64d802e107c7708f066b0ea34abdeeea96341e5f\",\"dweb:/ipfs/QmPMErvGfj8tJGZu8EkhaXB1Nssd9hYMLMbDRGSNgPTmzS\"]},\"contracts/base/LensModule.sol\":{\"keccak256\":\"0xd4420e82d2deb5661197ff0b68ecfcd002d10fe1bbc8abcb430c91c085a23541\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://48d43d08a7b357d025991a8689a83a9197c61943500c8275961ef4f52f4388dd\",\"dweb:/ipfs/QmUF1y6AAQgWfGS2RCbxLHxdRcqMBe6uKEuikQNVN3UNkz\"]},\"contracts/base/LensModuleMetadata.sol\":{\"keccak256\":\"0xb58dba2680da23ba36b982026f2c4d02ed31ff909e438abc101dbc96e3183776\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://16fd251d6eb4915814358ad5e0ac3e16031d4e82f271dba34fc2d8a7ed13a18f\",\"dweb:/ipfs/QmdXgGfFvxZFFWPLcgZ6d4NSiAK8uVG89Ba1z8SFBaRecd\"]},\"contracts/base/LensModuleRegistrant.sol\":{\"keccak256\":\"0xeefdf0894cedf29418945370978b8f2326459aa7e948f3f08d063810b01a3ef2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b5a157386822ba06963b544ec8eb595765b4ec3fe2dd9f1036d7563db71ed986\",\"dweb:/ipfs/QmNcXszZBxey6ZHTh4ZRJJVvSehz82XH4rahrNBC1zMM3d\"]},\"contracts/interfaces/ILensModule.sol\":{\"keccak256\":\"0xe79bb91025e837d34316321c18f5d70c70d8cc806cdc5e4be5b3da0eb935ae76\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb797c11555fd425d7b6029d10b1ef1f4c1da49df7bf26eb56d4e0f3e0275bb\",\"dweb:/ipfs/Qmb5qpjEXZbR54tCHaYW7nPbzVXmNHTKtRbr9UkHZAJ7nZ\"]},\"contracts/interfaces/IModuleRegistrant.sol\":{\"keccak256\":\"0x65775e302fe25589350604898faf62a332deae229fedf36fcb3af555ddb27561\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://eef38030c5f1e23495f117e040cfa5fe9a13da2278b9e5b45ebbd7d8ee3ff6f9\",\"dweb:/ipfs/QmQHhGmwg3NJgeTej2f4M6MyJc1M7hititG6AKNZ173wdB\"]},\"contracts/interfaces/IModuleRegistry.sol\":{\"keccak256\":\"0x767d9704c9245c975364320b556eee83cfbd6b98c40d6af5eed850576f8a0768\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://34d1237bd1ca7ed821f37c5a252c30fd4a75f13b24545ae24062a0190ea48955\",\"dweb:/ipfs/QmaEgE1ELrZqd74dyMF4ceCMTiddJoKTiGfAP8s1JnyXT2\"]},\"contracts/interfaces/IPublicationActionModule.sol\":{\"keccak256\":\"0x0d8a60a9aee94002214eebde0ccbcb272461349288396e746cbed32c62d45436\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5f8fc9135442ec71bca6b71c6dbb74fec77940a3b7b8c18e3e6f368053cbd34b\",\"dweb:/ipfs/QmXLKRX86B6T9dnU5s4djmaGJqqrYM1SApLTb3udUtfeSx\"]},\"contracts/libraries/Errors.sol\":{\"keccak256\":\"0x3bce382447150a8b2c7213bea5f4dd2cf210b315d45e1d0984c96bf8d610d175\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4044462a72359fb08ac34e88d3bb2161591d2bfbb6f4c0b33e96325a9f1d42e5\",\"dweb:/ipfs/QmWqubTyokdPCKVJz6sQqEh6F9Mw9GG1BcWvyTNbYMcajt\"]},\"contracts/libraries/Types.sol\":{\"keccak256\":\"0xb6d8f76aa56243519841e17e78c85113c4d957f5c0dd72b00903a0c7f5610ec2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4dd9ba7b31b44513c4fa13f2bdf85cd61d8dcae4832f0b9960ff70704d3dcbaf\",\"dweb:/ipfs/QmXDN4HD4bMUCh9Nf6LD4ubV5AMaLVUJvmVfEpcFcwdqAC\"]},\"node_modules/@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb\",\"dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"hub","type":"address"},{"internalType":"address","name":"moduleRegistry","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"CurrencyNotWhitelisted"},{"inputs":[],"type":"error","name":"NotHub"},{"inputs":[],"type":"error","name":"TipAmountCannotBeZero"},{"inputs":[],"type":"error","name":"TipReceiverNotProvided"},{"inputs":[],"type":"event","name":"ModuleRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"transactionExecutor","type":"address","indexed":true},{"internalType":"address","name":"tipReceiver","type":"address","indexed":true},{"internalType":"address","name":"currency","type":"address","indexed":true},{"internalType":"uint256","name":"tipAmount","type":"uint256","indexed":false}],"type":"event","name":"TipCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256","indexed":true},{"internalType":"uint256","name":"pubId","type":"uint256","indexed":true},{"internalType":"address","name":"tipReceiver","type":"address","indexed":true}],"type":"event","name":"TipReceiverRegistered","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"HUB","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MODULE_REGISTRY","outputs":[{"internalType":"contract IModuleRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getModuleMetadataURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"pubId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTipReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"profileId","type":"uint256"},{"internalType":"uint256","name":"pubId","type":"uint256"},{"internalType":"address","name":"","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initializePublicationAction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadataURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"struct Types.ProcessActionParams","name":"params","type":"tuple","components":[{"internalType":"uint256","name":"publicationActedProfileId","type":"uint256"},{"internalType":"uint256","name":"publicationActedId","type":"uint256"},{"internalType":"uint256","name":"actorProfileId","type":"uint256"},{"internalType":"address","name":"actorProfileOwner","type":"address"},{"internalType":"address","name":"transactionExecutor","type":"address"},{"internalType":"uint256[]","name":"referrerProfileIds","type":"uint256[]"},{"internalType":"uint256[]","name":"referrerPubIds","type":"uint256[]"},{"internalType":"enum Types.PublicationType[]","name":"referrerPubTypes","type":"uint8[]"},{"internalType":"bytes","name":"actionModuleData","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"processPublicationAction","outputs":[{"internalType":"bytes","name":"","type":"bytes"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registerModule","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"string","name":"_metadataURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setModuleMetadataURI"},{"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"stateMutability":"pure","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"constructor":{"details":"Initializes the TipActionModule contract.","params":{"hub":"Address of the LensHub contract.","moduleRegistry":"Address of the ModuleRegistry contract."}},"getTipReceiver(uint256,uint256)":{"details":"Returns the tip receiver for a publication.","params":{"profileId":"ID of the profile.","pubId":"ID of the publication."},"returns":{"_0":"Address of the tip receiver."}},"isRegistered()":{"details":"Checks if the module is registered in the module registry","returns":{"_0":"True if the module is registered, false otherwise"}},"owner()":{"details":"Returns the address of the current owner."},"registerModule()":{"details":"Registers the open action in the module registry","returns":{"_0":"True if the module was registered, false otherwise"}},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"supportsInterface(bytes4)":{"details":"for now we check for keccak('LENS_MODULE'); Override this and add the type(IModuleInterface).interfaceId for corresponding module type"},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{"getModuleMetadataURI()":{"notice":"Human-readable description of the module"}},"version":1}},"settings":{"remappings":["@openzeppelin/=node_modules/@openzeppelin/","forge-std/=lib/forge-std/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/TipActionModule.sol":"TipActionModule"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/TipActionModule.sol":{"keccak256":"0xb9c2c75935053e7db55abe6d9733e781f608c77047e266343676047f800bd9e9","urls":["bzz-raw://f1e52e4a596a987831987d039668a8eab24fc2ab7a2bec08e0654a8c9dc3ea4d","dweb:/ipfs/QmUncawdBvqRwynAwopRAuinYEpBj8s9ER2z1yRzV1o242"],"license":"MIT"},"contracts/base/HubRestricted.sol":{"keccak256":"0xd8f26a8ae5f4804ba772d5e435049addc5c07941afd800112da10f2d6c1aef53","urls":["bzz-raw://e68872641f1cd288c9c0e8cc64d802e107c7708f066b0ea34abdeeea96341e5f","dweb:/ipfs/QmPMErvGfj8tJGZu8EkhaXB1Nssd9hYMLMbDRGSNgPTmzS"],"license":"MIT"},"contracts/base/LensModule.sol":{"keccak256":"0xd4420e82d2deb5661197ff0b68ecfcd002d10fe1bbc8abcb430c91c085a23541","urls":["bzz-raw://48d43d08a7b357d025991a8689a83a9197c61943500c8275961ef4f52f4388dd","dweb:/ipfs/QmUF1y6AAQgWfGS2RCbxLHxdRcqMBe6uKEuikQNVN3UNkz"],"license":"MIT"},"contracts/base/LensModuleMetadata.sol":{"keccak256":"0xb58dba2680da23ba36b982026f2c4d02ed31ff909e438abc101dbc96e3183776","urls":["bzz-raw://16fd251d6eb4915814358ad5e0ac3e16031d4e82f271dba34fc2d8a7ed13a18f","dweb:/ipfs/QmdXgGfFvxZFFWPLcgZ6d4NSiAK8uVG89Ba1z8SFBaRecd"],"license":"MIT"},"contracts/base/LensModuleRegistrant.sol":{"keccak256":"0xeefdf0894cedf29418945370978b8f2326459aa7e948f3f08d063810b01a3ef2","urls":["bzz-raw://b5a157386822ba06963b544ec8eb595765b4ec3fe2dd9f1036d7563db71ed986","dweb:/ipfs/QmNcXszZBxey6ZHTh4ZRJJVvSehz82XH4rahrNBC1zMM3d"],"license":"MIT"},"contracts/interfaces/ILensModule.sol":{"keccak256":"0xe79bb91025e837d34316321c18f5d70c70d8cc806cdc5e4be5b3da0eb935ae76","urls":["bzz-raw://bbb797c11555fd425d7b6029d10b1ef1f4c1da49df7bf26eb56d4e0f3e0275bb","dweb:/ipfs/Qmb5qpjEXZbR54tCHaYW7nPbzVXmNHTKtRbr9UkHZAJ7nZ"],"license":"MIT"},"contracts/interfaces/IModuleRegistrant.sol":{"keccak256":"0x65775e302fe25589350604898faf62a332deae229fedf36fcb3af555ddb27561","urls":["bzz-raw://eef38030c5f1e23495f117e040cfa5fe9a13da2278b9e5b45ebbd7d8ee3ff6f9","dweb:/ipfs/QmQHhGmwg3NJgeTej2f4M6MyJc1M7hititG6AKNZ173wdB"],"license":"MIT"},"contracts/interfaces/IModuleRegistry.sol":{"keccak256":"0x767d9704c9245c975364320b556eee83cfbd6b98c40d6af5eed850576f8a0768","urls":["bzz-raw://34d1237bd1ca7ed821f37c5a252c30fd4a75f13b24545ae24062a0190ea48955","dweb:/ipfs/QmaEgE1ELrZqd74dyMF4ceCMTiddJoKTiGfAP8s1JnyXT2"],"license":"MIT"},"contracts/interfaces/IPublicationActionModule.sol":{"keccak256":"0x0d8a60a9aee94002214eebde0ccbcb272461349288396e746cbed32c62d45436","urls":["bzz-raw://5f8fc9135442ec71bca6b71c6dbb74fec77940a3b7b8c18e3e6f368053cbd34b","dweb:/ipfs/QmXLKRX86B6T9dnU5s4djmaGJqqrYM1SApLTb3udUtfeSx"],"license":"MIT"},"contracts/libraries/Errors.sol":{"keccak256":"0x3bce382447150a8b2c7213bea5f4dd2cf210b315d45e1d0984c96bf8d610d175","urls":["bzz-raw://4044462a72359fb08ac34e88d3bb2161591d2bfbb6f4c0b33e96325a9f1d42e5","dweb:/ipfs/QmWqubTyokdPCKVJz6sQqEh6F9Mw9GG1BcWvyTNbYMcajt"],"license":"MIT"},"contracts/libraries/Types.sol":{"keccak256":"0xb6d8f76aa56243519841e17e78c85113c4d957f5c0dd72b00903a0c7f5610ec2","urls":["bzz-raw://4dd9ba7b31b44513c4fa13f2bdf85cd61d8dcae4832f0b9960ff70704d3dcbaf","dweb:/ipfs/QmXDN4HD4bMUCh9Nf6LD4ubV5AMaLVUJvmVfEpcFcwdqAC"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xd04b0f06e0666f29cf7cccc82894de541e19bb30a765b107b1e40bb7fe5f7d7a","urls":["bzz-raw://7b652499d098e88d8d878374616bb58434301061cae2253298b3f374044e0ddb","dweb:/ipfs/QmbhAzctqo5jrSKU6idHdVyqfmzCcDbNUPvmx4GiXxfA6q"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":37243,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":337,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"metadataURI","offset":0,"slot":"1","type":"t_string_storage"},{"astId":65,"contract":"contracts/TipActionModule.sol:TipActionModule","label":"_tipReceivers","offset":0,"slot":"2","type":"t_mapping(t_uint256,t_mapping(t_uint256,t_address))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_uint256,t_address)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_uint256,t_mapping(t_uint256,t_address))":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => mapping(uint256 => address))","numberOfBytes":"32","value":"t_mapping(t_uint256,t_address)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/TipActionModule.sol","id":264,"exportedSymbols":{"HubRestricted":[296],"IERC20":[37429],"IModuleRegistry":[559],"IPublicationActionModule":[588],"LensModuleMetadata":[358],"LensModuleRegistrant":[447],"Ownable":[37348],"SafeERC20":[37841],"TipActionModule":[263],"Types":[1074]},"nodeType":"SourceUnit","src":"32:4070:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:24:0","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":3,"nodeType":"ImportDirective","src":"58:67:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37349,"symbolAliases":[{"foreign":{"id":2,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37348,"src":"66:7:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"126:70:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37430,"symbolAliases":[{"foreign":{"id":4,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37429,"src":"134:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"197:82:0","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":37842,"symbolAliases":[{"foreign":{"id":6,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37841,"src":"205:9:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"280:44:0","nodes":[],"absolutePath":"contracts/libraries/Types.sol","file":"./libraries/Types.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":1075,"symbolAliases":[{"foreign":{"id":8,"name":"Types","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1074,"src":"288:5:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"325:83:0","nodes":[],"absolutePath":"contracts/interfaces/IPublicationActionModule.sol","file":"./interfaces/IPublicationActionModule.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":589,"symbolAliases":[{"foreign":{"id":10,"name":"IPublicationActionModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":588,"src":"333:24:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":13,"nodeType":"ImportDirective","src":"409:55:0","nodes":[],"absolutePath":"contracts/base/HubRestricted.sol","file":"./base/HubRestricted.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":297,"symbolAliases":[{"foreign":{"id":12,"name":"HubRestricted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":296,"src":"417:13:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":15,"nodeType":"ImportDirective","src":"465:65:0","nodes":[],"absolutePath":"contracts/interfaces/IModuleRegistry.sol","file":"./interfaces/IModuleRegistry.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":560,"symbolAliases":[{"foreign":{"id":14,"name":"IModuleRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":559,"src":"473:15:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":17,"nodeType":"ImportDirective","src":"531:65:0","nodes":[],"absolutePath":"contracts/base/LensModuleMetadata.sol","file":"./base/LensModuleMetadata.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":359,"symbolAliases":[{"foreign":{"id":16,"name":"LensModuleMetadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":358,"src":"539:18:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":19,"nodeType":"ImportDirective","src":"597:69:0","nodes":[],"absolutePath":"contracts/base/LensModuleRegistrant.sol","file":"./base/LensModuleRegistrant.sol","nameLocation":"-1:-1:-1","scope":264,"sourceUnit":448,"symbolAliases":[{"foreign":{"id":18,"name":"LensModuleRegistrant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":447,"src":"605:20:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":263,"nodeType":"ContractDefinition","src":"760:3342:0","nodes":[{"id":34,"nodeType":"UsingForDirective","src":"905:27:0","nodes":[],"global":false,"libraryName":{"id":31,"name":"SafeERC20","nameLocations":["911:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":37841,"src":"911:9:0"},"typeName":{"id":33,"nodeType":"UserDefinedTypeName","pathNode":{"id":32,"name":"IERC20","nameLocations":["925:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":37429,"src":"925:6:0"},"referencedDeclaration":37429,"src":"925:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}}},{"id":36,"nodeType":"ErrorDefinition","src":"938:31:0","nodes":[],"errorSelector":"5f6063cc","name":"CurrencyNotWhitelisted","nameLocation":"944:22:0","parameters":{"id":35,"nodeType":"ParameterList","parameters":[],"src":"966:2:0"}},{"id":38,"nodeType":"ErrorDefinition","src":"974:31:0","nodes":[],"errorSelector":"2d89e952","name":"TipReceiverNotProvided","nameLocation":"980:22:0","parameters":{"id":37,"nodeType":"ParameterList","parameters":[],"src":"1002:2:0"}},{"id":40,"nodeType":"ErrorDefinition","src":"1010:30:0","nodes":[],"errorSelector":"7378d044","name":"TipAmountCannotBeZero","nameLocation":"1016:21:0","parameters":{"id":39,"nodeType":"ParameterList","parameters":[],"src":"1037:2:0"}},{"id":48,"nodeType":"EventDefinition","src":"1046:137:0","nodes":[],"anonymous":false,"eventSelector":"d8766a4dde1c3b5c500372d6448edb28568eedabe9de08a94992f30a56051682","name":"TipReceiverRegistered","nameLocation":"1052:21:0","parameters":{"id":47,"nodeType":"ParameterList","parameters":[{"constant":false,"id":42,"indexed":true,"mutability":"mutable","name":"profileId","nameLocation":"1099:9:0","nodeType":"VariableDeclaration","scope":48,"src":"1083:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":41,"name":"uint256","nodeType":"ElementaryTypeName","src":"1083:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":44,"indexed":true,"mutability":"mutable","name":"pubId","nameLocation":"1134:5:0","nodeType":"VariableDeclaration","scope":48,"src":"1118:21:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":43,"name":"uint256","nodeType":"ElementaryTypeName","src":"1118:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":46,"indexed":true,"mutability":"mutable","name":"tipReceiver","nameLocation":"1165:11:0","nodeType":"VariableDeclaration","scope":48,"src":"1149:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":45,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1073:109:0"}},{"id":58,"nodeType":"EventDefinition","src":"1189:166:0","nodes":[],"anonymous":false,"eventSelector":"a97c26bcff37e30b62e8fde0564a6b12c848ec32b59c38db21c5742ff60a2d94","name":"TipCreated","nameLocation":"1195:10:0","parameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":50,"indexed":true,"mutability":"mutable","name":"transactionExecutor","nameLocation":"1231:19:0","nodeType":"VariableDeclaration","scope":58,"src":"1215:35:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"1215:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52,"indexed":true,"mutability":"mutable","name":"tipReceiver","nameLocation":"1276:11:0","nodeType":"VariableDeclaration","scope":58,"src":"1260:27:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":51,"name":"address","nodeType":"ElementaryTypeName","src":"1260:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":54,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1313:8:0","nodeType":"VariableDeclaration","scope":58,"src":"1297:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53,"name":"address","nodeType":"ElementaryTypeName","src":"1297:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56,"indexed":false,"mutability":"mutable","name":"tipAmount","nameLocation":"1339:9:0","nodeType":"VariableDeclaration","scope":58,"src":"1331:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":55,"name":"uint256","nodeType":"ElementaryTypeName","src":"1331:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1205:149:0"}},{"id":65,"nodeType":"VariableDeclaration","src":"1432:106:0","nodes":[],"constant":false,"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"1361:66:0","text":" @dev Mapping of tip receivers for publications."},"mutability":"mutable","name":"_tipReceivers","nameLocation":"1525:13:0","scope":263,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"},"typeName":{"id":64,"keyName":"profileId","keyNameLocation":"1448:9:0","keyType":{"id":60,"name":"uint256","nodeType":"ElementaryTypeName","src":"1440:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1432:75:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":63,"keyName":"pubId","keyNameLocation":"1477:5:0","keyType":{"id":61,"name":"uint256","nodeType":"ElementaryTypeName","src":"1469:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1461:45:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"tipReceiver","valueNameLocation":"1494:11:0","valueType":{"id":62,"name":"address","nodeType":"ElementaryTypeName","src":"1486:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}}},"visibility":"internal"},{"id":84,"nodeType":"FunctionDefinition","src":"1735:196:0","nodes":[],"body":{"id":83,"nodeType":"Block","src":"1929:2:0","nodes":[],"statements":[]},"documentation":{"id":66,"nodeType":"StructuredDocumentation","src":"1545:185:0","text":" @dev Initializes the TipActionModule contract.\n @param hub Address of the LensHub contract.\n @param moduleRegistry Address of the ModuleRegistry contract."},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":73,"kind":"baseConstructorSpecifier","modifierName":{"id":72,"name":"Ownable","nameLocations":["1814:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":37348,"src":"1814:7:0"},"nodeType":"ModifierInvocation","src":"1814:9:0"},{"arguments":[{"id":75,"name":"hub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"1846:3:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":76,"kind":"baseConstructorSpecifier","modifierName":{"id":74,"name":"HubRestricted","nameLocations":["1832:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":296,"src":"1832:13:0"},"nodeType":"ModifierInvocation","src":"1832:18:0"},{"arguments":[],"id":78,"kind":"baseConstructorSpecifier","modifierName":{"id":77,"name":"LensModuleMetadata","nameLocations":["1859:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":358,"src":"1859:18:0"},"nodeType":"ModifierInvocation","src":"1859:20:0"},{"arguments":[{"id":80,"name":"moduleRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"1909:14:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":81,"kind":"baseConstructorSpecifier","modifierName":{"id":79,"name":"LensModuleRegistrant","nameLocations":["1888:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":447,"src":"1888:20:0"},"nodeType":"ModifierInvocation","src":"1888:36:0"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":71,"nodeType":"ParameterList","parameters":[{"constant":false,"id":68,"mutability":"mutable","name":"hub","nameLocation":"1764:3:0","nodeType":"VariableDeclaration","scope":84,"src":"1756:11:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"moduleRegistry","nameLocation":"1785:14:0","nodeType":"VariableDeclaration","scope":84,"src":"1777:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1746:59:0"},"returnParameters":{"id":82,"nodeType":"ParameterList","parameters":[],"src":"1929:0:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":101,"nodeType":"FunctionDefinition","src":"2139:165:0","nodes":[],"body":{"id":100,"nodeType":"Block","src":"2249:55:0","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":94,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2266:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":96,"indexExpression":{"id":95,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":87,"src":"2280:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2266:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":98,"indexExpression":{"id":97,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89,"src":"2291:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2266:31:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":93,"id":99,"nodeType":"Return","src":"2259:38:0"}]},"documentation":{"id":85,"nodeType":"StructuredDocumentation","src":"1937:197:0","text":" @dev Returns the tip receiver for a publication.\n @param profileId ID of the profile.\n @param pubId ID of the publication.\n @return Address of the tip receiver."},"functionSelector":"9df31650","implemented":true,"kind":"function","modifiers":[],"name":"getTipReceiver","nameLocation":"2148:14:0","parameters":{"id":90,"nodeType":"ParameterList","parameters":[{"constant":false,"id":87,"mutability":"mutable","name":"profileId","nameLocation":"2180:9:0","nodeType":"VariableDeclaration","scope":101,"src":"2172:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":86,"name":"uint256","nodeType":"ElementaryTypeName","src":"2172:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":89,"mutability":"mutable","name":"pubId","nameLocation":"2207:5:0","nodeType":"VariableDeclaration","scope":101,"src":"2199:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":88,"name":"uint256","nodeType":"ElementaryTypeName","src":"2199:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2162:56:0"},"returnParameters":{"id":93,"nodeType":"ParameterList","parameters":[{"constant":false,"id":92,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":101,"src":"2240:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91,"name":"address","nodeType":"ElementaryTypeName","src":"2240:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2239:9:0"},"scope":263,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":122,"nodeType":"FunctionDefinition","src":"2310:250:0","nodes":[],"body":{"id":121,"nodeType":"Block","src":"2415:145:0","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":114,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":109,"name":"interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2444:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":111,"name":"IPublicationActionModule","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":588,"src":"2464:24:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPublicationActionModule_$588_$","typeString":"type(contract IPublicationActionModule)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPublicationActionModule_$588_$","typeString":"type(contract IPublicationActionModule)"}],"id":110,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"2459:4:0","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2459:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPublicationActionModule_$588","typeString":"type(contract IPublicationActionModule)"}},"id":113,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2490:11:0","memberName":"interfaceId","nodeType":"MemberAccess","src":"2459:42:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"2444:57:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":117,"name":"interfaceID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2541:11:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":115,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2517:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TipActionModule_$263_$","typeString":"type(contract super TipActionModule)"}},"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2523:17:0","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":324,"src":"2517:23:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) pure returns (bool)"}},"id":118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2517:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2444:109:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":108,"id":120,"nodeType":"Return","src":"2425:128:0"}]},"baseFunctions":[324],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2319:17:0","overrides":{"id":105,"nodeType":"OverrideSpecifier","overrides":[],"src":"2391:8:0"},"parameters":{"id":104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":103,"mutability":"mutable","name":"interfaceID","nameLocation":"2353:11:0","nodeType":"VariableDeclaration","scope":122,"src":"2346:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":102,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2346:6:0","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2336:34:0"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":107,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":122,"src":"2409:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":106,"name":"bool","nodeType":"ElementaryTypeName","src":"2409:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2408:6:0"},"scope":263,"stateMutability":"pure","virtual":true,"visibility":"public"},{"id":176,"nodeType":"FunctionDefinition","src":"2566:523:0","nodes":[],"body":{"id":175,"nodeType":"Block","src":"2780:309:0","nodes":[],"statements":[{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"tipReceiver","nameLocation":"2798:11:0","nodeType":"VariableDeclaration","scope":175,"src":"2790:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"2790:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":147,"initialValue":{"arguments":[{"id":142,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"2823:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2830:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":143,"name":"address","nodeType":"ElementaryTypeName","src":"2830:7:0","typeDescriptions":{}}}],"id":145,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2829:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":140,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2812:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2816:6:0","memberName":"decode","nodeType":"MemberAccess","src":"2812:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2812:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"2790:49:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":153,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":148,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2854:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2877:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":150,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2869:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":149,"name":"address","nodeType":"ElementaryTypeName","src":"2869:7:0","typeDescriptions":{}}},"id":152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2869:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2854:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":158,"nodeType":"IfStatement","src":"2850:87:0","trueBody":{"id":157,"nodeType":"Block","src":"2881:56:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":154,"name":"TipReceiverNotProvided","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38,"src":"2902:22:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2902:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":156,"nodeType":"RevertStatement","src":"2895:31:0"}]}},{"expression":{"id":165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":159,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"2947:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":162,"indexExpression":{"id":160,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"2961:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2947:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":163,"indexExpression":{"id":161,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"2972:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2947:31:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":164,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"2981:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2947:45:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":166,"nodeType":"ExpressionStatement","src":"2947:45:0"},{"eventCall":{"arguments":[{"id":168,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":124,"src":"3030:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":169,"name":"pubId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"3041:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":170,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3048:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":167,"name":"TipReceiverRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":48,"src":"3008:21:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_address_$returns$__$","typeString":"function (uint256,uint256,address)"}},"id":171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3008:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":172,"nodeType":"EmitStatement","src":"3003:57:0"},{"expression":{"id":173,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"3078:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"functionReturnParameters":137,"id":174,"nodeType":"Return","src":"3071:11:0"}]},"baseFunctions":[578],"functionSelector":"0b960220","implemented":true,"kind":"function","modifiers":[{"id":134,"kind":"modifierInvocation","modifierName":{"id":133,"name":"onlyHub","nameLocations":["2749:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":285,"src":"2749:7:0"},"nodeType":"ModifierInvocation","src":"2749:7:0"}],"name":"initializePublicationAction","nameLocation":"2575:27:0","overrides":{"id":132,"nodeType":"OverrideSpecifier","overrides":[],"src":"2740:8:0"},"parameters":{"id":131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":124,"mutability":"mutable","name":"profileId","nameLocation":"2620:9:0","nodeType":"VariableDeclaration","scope":176,"src":"2612:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":123,"name":"uint256","nodeType":"ElementaryTypeName","src":"2612:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":126,"mutability":"mutable","name":"pubId","nameLocation":"2647:5:0","nodeType":"VariableDeclaration","scope":176,"src":"2639:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":125,"name":"uint256","nodeType":"ElementaryTypeName","src":"2639:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":176,"src":"2662:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"2662:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"data","nameLocation":"2720:4:0","nodeType":"VariableDeclaration","scope":176,"src":"2705:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":129,"name":"bytes","nodeType":"ElementaryTypeName","src":"2705:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2602:128:0"},"returnParameters":{"id":137,"nodeType":"ParameterList","parameters":[{"constant":false,"id":136,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":176,"src":"2766:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":135,"name":"bytes","nodeType":"ElementaryTypeName","src":"2766:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"2765:14:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":262,"nodeType":"FunctionDefinition","src":"3095:1005:0","nodes":[],"body":{"id":261,"nodeType":"Block","src":"3235:865:0","nodes":[],"statements":[{"assignments":[188,190],"declarations":[{"constant":false,"id":188,"mutability":"mutable","name":"currency","nameLocation":"3254:8:0","nodeType":"VariableDeclaration","scope":261,"src":"3246:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":187,"name":"address","nodeType":"ElementaryTypeName","src":"3246:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":190,"mutability":"mutable","name":"tipAmount","nameLocation":"3272:9:0","nodeType":"VariableDeclaration","scope":261,"src":"3264:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":201,"initialValue":{"arguments":[{"expression":{"id":193,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3309:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3316:16:0","memberName":"actionModuleData","nodeType":"MemberAccess","referencedDeclaration":949,"src":"3309:23:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":196,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3347:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":195,"name":"address","nodeType":"ElementaryTypeName","src":"3347:7:0","typeDescriptions":{}}},{"id":198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3356:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":197,"name":"uint256","nodeType":"ElementaryTypeName","src":"3356:7:0","typeDescriptions":{}}}],"id":199,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3346:18:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$","typeString":"tuple(type(address),type(uint256))"}],"expression":{"id":191,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3285:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3289:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3285:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3285:89:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_payable_$_t_uint256_$","typeString":"tuple(address payable,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"3245:129:0"},{"condition":{"id":206,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3389:52:0","subExpression":{"arguments":[{"id":204,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3432:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":202,"name":"MODULE_REGISTRY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":378,"src":"3390:15:0","typeDescriptions":{"typeIdentifier":"t_contract$_IModuleRegistry_$559","typeString":"contract IModuleRegistry"}},"id":203,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3406:25:0","memberName":"isErc20CurrencyRegistered","nodeType":"MemberAccess","referencedDeclaration":558,"src":"3390:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":205,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3390:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":211,"nodeType":"IfStatement","src":"3385:114:0","trueBody":{"id":210,"nodeType":"Block","src":"3443:56:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":207,"name":"CurrencyNotWhitelisted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":36,"src":"3464:22:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3464:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":209,"nodeType":"RevertStatement","src":"3457:31:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":212,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"3513:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":213,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3526:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3513:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":219,"nodeType":"IfStatement","src":"3509:75:0","trueBody":{"id":218,"nodeType":"Block","src":"3529:55:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":215,"name":"TipAmountCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"3550:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3550:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":217,"nodeType":"RevertStatement","src":"3543:30:0"}]}},{"assignments":[221],"declarations":[{"constant":false,"id":221,"mutability":"mutable","name":"tipReceiver","nameLocation":"3602:11:0","nodeType":"VariableDeclaration","scope":261,"src":"3594:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":220,"name":"address","nodeType":"ElementaryTypeName","src":"3594:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":229,"initialValue":{"baseExpression":{"baseExpression":{"id":222,"name":"_tipReceivers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":65,"src":"3616:13:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_mapping$_t_uint256_$_t_address_$_$","typeString":"mapping(uint256 => mapping(uint256 => address))"}},"id":225,"indexExpression":{"expression":{"id":223,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3630:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3637:25:0","memberName":"publicationActedProfileId","nodeType":"MemberAccess","referencedDeclaration":929,"src":"3630:32:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3616:47:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":228,"indexExpression":{"expression":{"id":226,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3677:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3684:18:0","memberName":"publicationActedId","nodeType":"MemberAccess","referencedDeclaration":931,"src":"3677:25:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3616:96:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3594:118:0"},{"assignments":[232],"declarations":[{"constant":false,"id":232,"mutability":"mutable","name":"token","nameLocation":"3730:5:0","nodeType":"VariableDeclaration","scope":261,"src":"3723:12:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"},"typeName":{"id":231,"nodeType":"UserDefinedTypeName","pathNode":{"id":230,"name":"IERC20","nameLocations":["3723:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":37429,"src":"3723:6:0"},"referencedDeclaration":37429,"src":"3723:6:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"visibility":"internal"}],"id":236,"initialValue":{"arguments":[{"id":234,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3745:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":233,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37429,"src":"3738:6:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$37429_$","typeString":"type(contract IERC20)"}},"id":235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3738:16:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"nodeType":"VariableDeclarationStatement","src":"3723:31:0"},{"eventCall":{"arguments":[{"expression":{"id":238,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3794:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":239,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3801:19:0","memberName":"transactionExecutor","nodeType":"MemberAccess","referencedDeclaration":937,"src":"3794:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":240,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"3834:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":241,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"3859:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":242,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"3881:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":237,"name":"TipCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"3770:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,address,uint256)"}},"id":243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3770:130:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":244,"nodeType":"EmitStatement","src":"3765:135:0"},{"expression":{"arguments":[{"expression":{"id":248,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":179,"src":"3947:6:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams calldata"}},"id":249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3954:19:0","memberName":"transactionExecutor","nodeType":"MemberAccess","referencedDeclaration":937,"src":"3947:26:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":250,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"3987:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":251,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4012:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":245,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"3911:5:0","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$37429","typeString":"contract IERC20"}},"id":247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3917:16:0","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":37525,"src":"3911:22:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$37429_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$37429_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3911:120:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":253,"nodeType":"ExpressionStatement","src":"3911:120:0"},{"expression":{"arguments":[{"id":256,"name":"tipReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":221,"src":"4060:11:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":257,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":188,"src":"4073:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":258,"name":"tipAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":190,"src":"4083:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":254,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4049:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":255,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4053:6:0","memberName":"encode","nodeType":"MemberAccess","src":"4049:10:0","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4049:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"functionReturnParameters":186,"id":260,"nodeType":"Return","src":"4042:51:0"}]},"baseFunctions":[587],"functionSelector":"90ce6e08","implemented":true,"kind":"function","modifiers":[{"id":183,"kind":"modifierInvocation","modifierName":{"id":182,"name":"onlyHub","nameLocations":["3204:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":285,"src":"3204:7:0"},"nodeType":"ModifierInvocation","src":"3204:7:0"}],"name":"processPublicationAction","nameLocation":"3104:24:0","overrides":{"id":181,"nodeType":"OverrideSpecifier","overrides":[],"src":"3195:8:0"},"parameters":{"id":180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":179,"mutability":"mutable","name":"params","nameLocation":"3173:6:0","nodeType":"VariableDeclaration","scope":262,"src":"3138:41:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_calldata_ptr","typeString":"struct Types.ProcessActionParams"},"typeName":{"id":178,"nodeType":"UserDefinedTypeName","pathNode":{"id":177,"name":"Types.ProcessActionParams","nameLocations":["3138:5:0","3144:19:0"],"nodeType":"IdentifierPath","referencedDeclaration":950,"src":"3138:25:0"},"referencedDeclaration":950,"src":"3138:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_ProcessActionParams_$950_storage_ptr","typeString":"struct Types.ProcessActionParams"}},"visibility":"internal"}],"src":"3128:57:0"},"returnParameters":{"id":186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":262,"src":"3221:12:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":184,"name":"bytes","nodeType":"ElementaryTypeName","src":"3221:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3220:14:0"},"scope":263,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":21,"name":"IPublicationActionModule","nameLocations":["792:24:0"],"nodeType":"IdentifierPath","referencedDeclaration":588,"src":"792:24:0"},"id":22,"nodeType":"InheritanceSpecifier","src":"792:24:0"},{"baseName":{"id":23,"name":"Ownable","nameLocations":["822:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":37348,"src":"822:7:0"},"id":24,"nodeType":"InheritanceSpecifier","src":"822:7:0"},{"baseName":{"id":25,"name":"HubRestricted","nameLocations":["835:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":296,"src":"835:13:0"},"id":26,"nodeType":"InheritanceSpecifier","src":"835:13:0"},{"baseName":{"id":27,"name":"LensModuleMetadata","nameLocations":["854:18:0"],"nodeType":"IdentifierPath","referencedDeclaration":358,"src":"854:18:0"},"id":28,"nodeType":"InheritanceSpecifier","src":"854:18:0"},{"baseName":{"id":29,"name":"LensModuleRegistrant","nameLocations":["878:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":447,"src":"878:20:0"},"id":30,"nodeType":"InheritanceSpecifier","src":"878:20:0"}],"canonicalName":"TipActionModule","contractDependencies":[],"contractKind":"contract","documentation":{"id":20,"nodeType":"StructuredDocumentation","src":"668:91:0","text":" @title TipActionModule\n @dev Open Action Module for tipping Lens publications."},"fullyImplemented":true,"linearizedBaseContracts":[263,447,358,296,37348,38201,484,325,468,38213,588],"name":"TipActionModule","nameLocation":"769:15:0","scope":264,"usedErrors":[36,38,40,604],"usedEvents":[48,58,375,37249]}],"license":"MIT"},"id":0} \ No newline at end of file diff --git a/src/hooks/use-authorize-policy.ts b/src/hooks/use-authorize-policy.ts index 81ef437a2..640f188dd 100644 --- a/src/hooks/use-authorize-policy.ts +++ b/src/hooks/use-authorize-policy.ts @@ -8,8 +8,6 @@ import { encodeFunctionData } from 'viem'; import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; import RightsPolicyAuthorizerAbi from '@src/config/abi/RightsPolicyAuthorizer.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; // ---------------------------------------------------------------------- @@ -69,7 +67,9 @@ export const useAuthorizePolicy = (): useAuthorizePolicyHook => { try { // Retrieve the account abstraction provider, bundler client, and smart account const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore const smartAccount = accountAbstractionProvider.smartAccount; if (!sessionData?.authenticated) { diff --git a/src/hooks/use-deposit.ts b/src/hooks/use-deposit.ts new file mode 100644 index 000000000..09b8a0a69 --- /dev/null +++ b/src/hooks/use-deposit.ts @@ -0,0 +1,124 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface DepositParams { + recipient: string; // address + amount: number; // plain number +} + +interface UseDepositHook { + data?: any; + deposit: (params: DepositParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useDeposit = (): UseDepositHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const approveMMC = (amount: number): string => { + // Convert to Wei (assuming 18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + // Encode the approve function call data + return encodeFunctionData({ + abi: MMCAbi.abi, + functionName: 'approve', + args: [GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, weiAmount], + }); + }; + + /** + * Encodes the call to LedgerVault’s `deposit` function. + */ + const initializeDeposit = ({ recipient, amount }: DepositParams) => { + // Convert to Wei (assuming 18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'deposit', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + /** + * Main function to perform a deposit. + */ + const deposit = async ({ recipient, amount }: DepositParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to deposit funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const approveData = approveMMC(amount); + const depositData = initializeDeposit({ recipient, amount }); + + // Create the calls array + const calls = [ + { + to: GLOBAL_CONSTANTS.MMC_ADDRESS, + value: 0, + data: approveData, + }, + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: depositData, + }, + ]; + + // Send the user operation + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + // Wait for the operation receipt + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, deposit, loading, error }; +}; diff --git a/src/hooks/use-get-attestation.ts b/src/hooks/use-get-attestation.ts index 3c9eb4ed1..92ea5b997 100644 --- a/src/hooks/use-get-attestation.ts +++ b/src/hooks/use-get-attestation.ts @@ -3,11 +3,6 @@ import { Address } from 'viem'; import { publicClient } from '@src/clients/viem/publicClient'; import { GLOBAL_CONSTANTS } from '@src/config-global'; import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; - -// LENS IMPORTS -import { ProfileSession, useSession } from '@lens-protocol/react-web'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; interface AttestationError { diff --git a/src/hooks/use-get-authorized-holder-policies.ts b/src/hooks/use-get-authorized-holder-policies.ts new file mode 100644 index 000000000..5a01ac7c6 --- /dev/null +++ b/src/hooks/use-get-authorized-holder-policies.ts @@ -0,0 +1,90 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { publicClient } from '@src/clients/viem/publicClient'; +import PoliciesAggAbi from '@src/config/abi/PoliciesAgg.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface HasAccessError { + message: string; + code?: number; + [key: string]: any; +} + +interface PolicyTerms { + amount: string; + currency: string; + rateBasis: number; + uri: string; +} + +interface Policy { + policy: string; + terms: PolicyTerms +} + +interface UseGetAuthorizedHolderPoliciesHook { + authorizedHolderPolicies: Policy[]; + loading: boolean; + error?: HasAccessError | null; + refetch: () => void; +} + +/** + * Custom hook that fetches the authorized policies for a given holder. + * @param holder Address of the holder. + */ +export const useGetAuthorizedHolderPolicies = ( + holder: Address | undefined +): UseGetAuthorizedHolderPoliciesHook => { + const [authorizedHolderPolicies, setAuthorizedHolderPolicies] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + const fetchHolderPolicies = useCallback(async () => { + // Validate that holder exists + if (!holder) { + setAuthorizedHolderPolicies([]); + setLoading(false); + setError({ message: 'Holder address is missing.' }); + return; + } + + setLoading(true); + + try { + // Call the contract method + const policies: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.POLICIES_AGG_ADDRESS, + abi: PoliciesAggAbi.abi, + functionName: 'getHolderWidePolicies', + args: [holder], + }) as Policy[]; + + // Store the response in state + setAuthorizedHolderPolicies(policies); + setError(null); + } catch (err: any) { + console.error('Error fetching holder-wide policies:', err); + setAuthorizedHolderPolicies([]); + setError({ message: err?.message || 'Error occurred while fetching authorized policies.' }); + } finally { + setLoading(false); + } + }, [holder]); + + useEffect(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + // Allows to refetch the data on demand + const refetch = useCallback(() => { + fetchHolderPolicies(); + }, [fetchHolderPolicies]); + + return { + authorizedHolderPolicies, + loading, + error, + refetch, + }; +}; diff --git a/src/hooks/use-get-balance.ts b/src/hooks/use-get-balance.ts index 122eea0f6..dfca59d42 100644 --- a/src/hooks/use-get-balance.ts +++ b/src/hooks/use-get-balance.ts @@ -3,9 +3,11 @@ import { formatUnits, Address } from 'viem'; import MMCAbi from '@src/config/abi/MMC.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useSelector } from 'react-redux'; export function useGetBalance(address?: Address) { const [balance, setBalance] = useState(null); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); const fetchBalance = useCallback(async () => { if (!address) return; @@ -28,7 +30,7 @@ export function useGetBalance(address?: Address) { useEffect(() => { fetchBalance(); - }, [fetchBalance]); + }, [fetchBalance, address, blockchainEvents]); return { balance, refetch: fetchBalance }; } diff --git a/src/hooks/use-get-policy-terms.ts b/src/hooks/use-get-policy-terms.ts new file mode 100644 index 000000000..14479e2fc --- /dev/null +++ b/src/hooks/use-get-policy-terms.ts @@ -0,0 +1,134 @@ +import { useState, useEffect, useCallback } from 'react'; +import { Address } from 'viem'; +import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies'; + +interface HasAccessError { + message: string; + code?: number; + [key: string]: any; +} + +interface Terms { + amount: any; // amount in wei + currency: string; + rateBasis: number; + uri: string; +} + +interface UseGetPolicyTermsHook { + terms?: Terms; + loading: boolean; + fetching: boolean; + error?: HasAccessError | null; + refetch: () => void; +} + +/** + * Custom hook to get the `terms` of a specific policy, using the data from `useGetAuthorizedHolderPolicies`. + * @param policyAddress The address of the policy whose terms you want to retrieve. + * @param holderAddress The holder's address for which the policies are fetched. + */ +export const useGetPolicyTerms = ( + policyAddress?: Address, + holderAddress?: Address +): UseGetPolicyTermsHook => { + const [terms, setTerms] = useState(undefined); + const [fetching, setFetching] = useState(true); + const [error, setError] = useState(null); + + // Reuse the hook to get all authorized policies for the holder + const { + authorizedHolderPolicies, + loading: loadingPolicies, + error: errorPolicies, + refetch: refetchPolicies, + } = useGetAuthorizedHolderPolicies(holderAddress); + + /** + * Attempt to find `policyAddress` in the array of `authorizedHolderPolicies` + * and extract its `terms`. + */ + const fetchTerms = useCallback(() => { + setFetching(true); + + // Validate inputs + if (!policyAddress || !holderAddress) { + setTerms(undefined); + setError({ message: 'Policy address or holder address is missing.' }); + setFetching(false); + return; + } + + // If there's an error from the getAuthorizedHolderPolicies hook, propagate it + if (errorPolicies) { + setTerms(undefined); + setError(errorPolicies); + setFetching(false); + return; + } + + // If we haven't fetched or there are no policies, we can't proceed yet + if (!authorizedHolderPolicies || authorizedHolderPolicies.length === 0) { + setTerms(undefined); + setError(null); + setFetching(false); + return; + } + + try { + // Find the policy object with a matching address + const foundPolicy = authorizedHolderPolicies.find( + (p) => p.policy.toLowerCase() === policyAddress.toLowerCase() + ); + + if (foundPolicy) { + setTerms(foundPolicy.terms); + setError(null); + } else { + // If the policy is not found, we can consider that an "empty" or "not found" state + setTerms(undefined); + setError(null); // or setError({ message: 'Policy not found among authorized ones.' }) + } + } catch (err: any) { + console.error('Error filtering policy terms:', err); + setTerms(undefined); + setError({ message: err?.message || 'An error occurred while filtering policy terms.' }); + } finally { + setFetching(false); + } + }, [ + policyAddress, + holderAddress, + authorizedHolderPolicies, + errorPolicies, + ]); + + // Recompute whenever the authorizedHolderPolicies or errors change + useEffect(() => { + fetchTerms(); + }, [fetchTerms]); + + // We can re-trigger the fetch by refetching the authorized policies + const refetch = useCallback(() => { + refetchPolicies(); + }, [refetchPolicies]); + + // If no addresses are provided, return an immediate error (optional approach) + if (!policyAddress || !holderAddress) { + return { + terms: undefined, + loading: false, + fetching: false, + error: { message: 'Policy address or holder address is missing.' }, + refetch: () => {}, + }; + } + + return { + terms, + loading: loadingPolicies, // Reflect the loading state of fetching authorized policies + fetching, // Reflect the local fetching/checking state + error, + refetch, + }; +}; diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts new file mode 100644 index 000000000..4797ebe41 --- /dev/null +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -0,0 +1,106 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Address } from 'viem'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface SmartWalletTransactionParams { + chainShortName?: string; // Blockchain network abbreviation (e.g., 'eth') + address: Address; // Address to query + protocolType?: string; // Token protocol type (default: 'token_20') + tokenContractAddress?: string; // Optional token contract address + startBlockHeight?: string; // Optional starting block height + endBlockHeight?: string; // Optional ending block height + isFromOrTo?: 'from' | 'to'; // Filter transactions by 'from' or 'to' + page?: number; // Optional page number + limit?: number; // Number of results per request (default: 20, max: 50) +} + +interface UseGetSmartWalletTransactionsReturn { + data: any; + isLoading: boolean; + error: string | null; + refetch: () => Promise; +} + +export function useGetSmartWalletTransactions({ + address, + chainShortName = 'AMOY_TESTNET', + protocolType = 'token_20', + tokenContractAddress = GLOBAL_CONSTANTS.MMC_ADDRESS, + startBlockHeight, + endBlockHeight, + isFromOrTo, + page = 1, + limit = 20, + }: SmartWalletTransactionParams): UseGetSmartWalletTransactionsReturn { + const [data, setData] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + + // Create an axios instance + const axiosInstance = axios.create({ + headers: { + 'Content-Type': 'application/json;charset=utf-8', + Accept: 'application/json', + 'OK-ACCESS-KEY': GLOBAL_CONSTANTS.OKLINK_API_KEY, + }, + timeout: 5000, + validateStatus: (status) => status < 600, + }); + + // Fetch transactions using GET request + const fetchTransactions = async () => { + setIsLoading(true); + setError(null); + + try { + // Build query string + const queryParams = new URLSearchParams({ + chainShortName, + address, + protocolType, + ...(tokenContractAddress && { tokenContractAddress }), + ...(startBlockHeight && { startBlockHeight }), + ...(endBlockHeight && { endBlockHeight }), + ...(isFromOrTo && { isFromOrTo }), + page: page.toString(), + limit: limit.toString(), + }).toString(); + + const url = `https://www.oklink.com/api/v5/explorer/address/token-transaction-list?${queryParams}`; + const response = await axiosInstance.get(url); + + console.log('response', response); + + // Handle response + if (response.data?.code === '0') { + setData(response.data.data?.[0]); + } else { + setError(response.data?.msg || 'Unknown error'); + } + } catch (err: any) { + setError(err?.message || 'Unknown error'); + } finally { + setIsLoading(false); + } + }; + + // Fetch data on parameter change + useEffect(() => { + if (!address || !chainShortName) return; + fetchTransactions(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [chainShortName, address, protocolType, tokenContractAddress, startBlockHeight, endBlockHeight, isFromOrTo, page, limit]); + + // Refetch function + const refetch = async () => { + await fetchTransactions(); + }; + + return { + data, + isLoading, + error, + refetch, + }; +} diff --git a/src/hooks/use-get-vault-balance.ts b/src/hooks/use-get-vault-balance.ts new file mode 100644 index 000000000..ecbcd971d --- /dev/null +++ b/src/hooks/use-get-vault-balance.ts @@ -0,0 +1,36 @@ +import { useState, useEffect, useCallback } from 'react'; +import { formatUnits, Address } from 'viem'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useSelector } from 'react-redux'; + +export function useGetVaultBalance(address: Address) { + const [balance, setBalance] = useState(null); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + + const fetchBalance = useCallback(async () => { + if (!address) return; + + try { + const rawBalance: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'getLedgerBalance', + args: [address, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + + const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); + setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); + } catch (error) { + console.error('Error fetching balance:', error); + setBalance(null); + } + }, [address]); + + useEffect(() => { + fetchBalance(); + }, [fetchBalance, address, blockchainEvents]); + + return { balance, refetch: fetchBalance }; +} diff --git a/src/hooks/use-has-access.ts b/src/hooks/use-has-access.ts index 436f49d28..77ac30f90 100644 --- a/src/hooks/use-has-access.ts +++ b/src/hooks/use-has-access.ts @@ -1,10 +1,8 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; import { publicClient } from '@src/clients/viem/publicClient'; -import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; +import AccessAggAbi from '@src/config/abi/AccessAgg.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; interface HasAccessError { @@ -46,12 +44,14 @@ export const useHasAccess = (ownerAddress?: Address): UseHasAccessHook => { setFetching(true); try { const accessData: unknown = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS, - abi: SubscriptionPolicyAbi.abi, - functionName: 'isAccessAllowed', + address: GLOBAL_CONSTANTS.ACCESS_AGG_ADDRESS, + abi: AccessAggAbi.abi, + functionName: 'isAccessAllowedByHolder', args: [userAddress, ownerAddress], }); + console.log('isAccessAllowedByHolder', accessData); + const access = Boolean(accessData); setHasAccess(access); setError(null); diff --git a/src/hooks/use-is-policy-authorized.ts b/src/hooks/use-is-policy-authorized.ts index b302cc564..c3b7b8248 100644 --- a/src/hooks/use-is-policy-authorized.ts +++ b/src/hooks/use-is-policy-authorized.ts @@ -1,13 +1,7 @@ import { useState, useEffect, useCallback } from 'react'; import { Address } from 'viem'; -import { publicClient } from '@src/clients/viem/publicClient'; -import RightsPolicyAuthorizerAbi from '@src/config/abi/RightsPolicyAuthorizer.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// LENS IMPORTS -import { ProfileSession, useSession } from '@lens-protocol/react-web'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; -import {useSelector} from "react-redux"; +import { useSelector } from 'react-redux'; +import { useGetAuthorizedHolderPolicies } from './use-get-authorized-holder-policies.ts'; interface HasAccessError { message: string; @@ -24,9 +18,9 @@ interface UseIsPolicyAuthorizedHook { } /** - * Custom hook to check if a user has a policy authorized. - * @param policy The address of the policy. - * @param holder The address of the holder. If not provided, it uses the current logged-in profile's address. + * Custom hook to check if a specific policy is authorized for the user (holder). + * @param policy Address of the policy. + * @param holder Address of the holder (optional). If not provided, it will use the user's address from Redux. */ export const useIsPolicyAuthorized = ( policy: Address, @@ -36,53 +30,87 @@ export const useIsPolicyAuthorized = ( const userAddress = sessionData?.profile?.ownedBy?.address as Address | undefined; const [isAuthorized, setIsAuthorized] = useState(undefined); - const [loading, setLoading] = useState(true); - const [fetching, setFetching] = useState(true); + // `fetching` indicates if we are currently checking for authorization + const [fetching, setFetching] = useState(true); const [error, setError] = useState(null); - const fetchAuthorization = useCallback(async () => { + // Use the hook that fetches all authorized policies for the holder + const { + authorizedHolderPolicies, + loading: loadingPolicies, + error: errorPolicies, + refetch: refetchPolicies, + } = useGetAuthorizedHolderPolicies(holder ?? userAddress); + + /** + * Checks if the given policy exists in the holder's authorized policies. + */ + const fetchAuthorization = useCallback(() => { + setFetching(true); + + // Validate that policy and holder exist if (!policy || !(holder ?? userAddress)) { - setLoading(false); - setFetching(false); + setIsAuthorized(false); setError({ message: 'Policy or holder address is missing.' }); + setFetching(false); return; } - setFetching(true); + // If there's an error from the other hook, propagate it + if (errorPolicies) { + setIsAuthorized(false); + setError(errorPolicies); + setFetching(false); + return; + } + + // If no policies have been fetched yet, we cannot check + if (!authorizedHolderPolicies) { + setIsAuthorized(false); + setError(null); + setFetching(false); + return; + } try { - const authorizedData = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.RIGHT_POLICY_AUTHORIZER, - abi: RightsPolicyAuthorizerAbi.abi, - functionName: 'isPolicyAuthorized', - args: [policy, holder ?? userAddress], - }); + // Check if the given policy is in the list + // Assume that each element looks like { policy: string, terms: {...} } + const isPolicyInList = authorizedHolderPolicies.some( + (p: any) => p.policy.toLowerCase() === policy.toLowerCase() + ); - const authorized = Boolean(authorizedData); - setIsAuthorized(authorized); + setIsAuthorized(isPolicyInList); setError(null); } catch (err: any) { console.error('Error checking policy authorization:', err); setIsAuthorized(undefined); - setError({ message: err?.message || 'An error occurred' }); + setError({ message: err?.message || 'An error occurred while checking policy authorization.' }); } finally { - setLoading(false); setFetching(false); } - }, [policy, holder, userAddress]); + }, [ + policy, + holder, + userAddress, + authorizedHolderPolicies, + errorPolicies, + ]); + // Whenever authorizedHolderPolicies or errorPolicies change, verify again useEffect(() => { fetchAuthorization(); }, [fetchAuthorization]); + // Allows re-triggering the fetch const refetch = useCallback(() => { - fetchAuthorization(); - }, [fetchAuthorization]); + // Refetch policies from the contract + refetchPolicies(); + }, [refetchPolicies]); return { isAuthorized, - loading, - fetching, + loading: loadingPolicies, // Indicates if we are still fetching the list of policies + fetching, // Indicates if we are checking authorization in that list error, refetch, }; diff --git a/src/hooks/use-resolve-terms.ts b/src/hooks/use-resolve-terms.ts deleted file mode 100644 index d0414226a..000000000 --- a/src/hooks/use-resolve-terms.ts +++ /dev/null @@ -1,100 +0,0 @@ -import { useState, useEffect, useCallback } from 'react'; -import { Address } from 'viem'; -import { publicClient } from '@src/clients/viem/publicClient'; -import SubscriptionPolicyAbi from '@src/config/abi/SubscriptionPolicy.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; - -interface HasAccessError { - message: string; - code?: number; - [key: string]: any; -} - -interface Terms { - amount: any; // Amount in wei - currency: string; // MMC address - rateBasis: number; - uri: string; -} - -interface UseResolveTermsHook { - terms?: Terms; - loading: boolean; - fetching: boolean; - error?: HasAccessError | null; - refetch: () => void; -} - -type SubscriptionTerms = { - amount: number; - currency: string; - rateBasis: number; - uri: string; -}; - -/** - * Custom hook to resolve terms from a given holder address. - * @param holderAddress The address of the publication owner (holder). - * @returns An object with terms, loading state, error, and a refetch function. - */ -export const useResolveTerms = (holderAddress?: Address): UseResolveTermsHook => { - const [terms, setTerms] = useState(undefined); - const [loading, setLoading] = useState(true); - const [fetching, setFetching] = useState(true); - const [error, setError] = useState(null); - - const fetchTerms = useCallback(async () => { - if (!holderAddress) { - setLoading(false); - setFetching(false); - setError({ message: 'Holder address is missing.' }); - return; - } - - try { - setFetching(true); - const data: SubscriptionTerms = (await publicClient.readContract({ - address: GLOBAL_CONSTANTS.SUBSCRIPTION_POLICY_ADDRESS, - abi: SubscriptionPolicyAbi.abi, - functionName: 'resolveTerms', - args: [holderAddress], - })) as unknown as SubscriptionTerms; - - setTerms(data); - setError(null); - } catch (err: any) { - console.error('Error resolving terms:', err); - setTerms(undefined); - setError({ message: err?.message || 'An error occurred' }); - } finally { - setLoading(false); - setFetching(false); - } - }, [holderAddress]); - - useEffect(() => { - fetchTerms(); - }, [fetchTerms]); - - const refetch = useCallback(() => { - fetchTerms(); - }, [fetchTerms]); - - if (!holderAddress) { - return { - terms: {} as Terms, - loading: false, - fetching: false, - error: null, - refetch: () => {}, - }; - } - - return { - terms, - loading, - fetching, - error, - refetch, - }; -}; diff --git a/src/hooks/use-subscribe.ts b/src/hooks/use-subscribe.ts index 51846ba74..60882b7da 100644 --- a/src/hooks/use-subscribe.ts +++ b/src/hooks/use-subscribe.ts @@ -9,11 +9,9 @@ import { encodeFunctionData } from 'viem'; // LOCAL IMPORTS import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; -import MMCAbi from '@src/config/abi/MMC.json'; -import AgreementPortalAbi from '@src/config/abi/AgreementPortal.json'; +import AccessWorkflowAbi from '@src/config/abi/AccessWorkflow.json'; +import LedgerVaultabi from '@src/config/abi/LedgerVault.json'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -// @ts-ignore -import { ReadResult } from '@lens-protocol/react/dist/declarations/src/helpers/reads'; import {useSelector} from "react-redux"; // ---------------------------------------------------------------------- @@ -53,38 +51,27 @@ export const useSubscribe = (): UseSubscribeHook => { const sessionData = useSelector((state: any) => state.auth.session); const { web3Auth } = useWeb3Auth(); - /** - * Approves MMC tokens for the Agreement Portal. - * @param amountInWei The amount of MMC tokens to approve (in Wei). - * @returns The encoded function data for the approve call. - */ - const approveMMC = (amountInWei: bigint): string => { - // Encode the approve function call data + const transferToAccessAgreement = (approvalAmount: bigint): string => { return encodeFunctionData({ - abi: MMCAbi.abi, - functionName: 'approve', - args: [GLOBAL_CONSTANTS.AGREEMENT_PORTAL_ADDRESS, amountInWei], + abi: LedgerVaultabi.abi, + functionName: 'transfer', + args: [ + GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS, + approvalAmount, + GLOBAL_CONSTANTS.MMC_ADDRESS, + ], }); }; - /** - * Creates the flash policy agreement data. - * @param approvalAmount The amount approved for the agreement (in Wei). - * @param holderAddress The owner address (e.g., 'holderAddress' parameter). - * @param parties The parties involved in the agreement. - * @param payload Additional payload data. - * @returns The encoded function data for the flashPolicyAgreement call. - */ - const createFlashPolicyAgreement = ( + const registerAccessAgreement = ( approvalAmount: bigint, holderAddress: string, parties: string[], payload: string ): string => { - // Encode the flashPolicyAgreement function call data return encodeFunctionData({ - abi: AgreementPortalAbi.abi, - functionName: 'flashPolicyAgreement', + abi: AccessWorkflowAbi.abi, + functionName: 'registerAccessAgreement', args: [ approvalAmount, holderAddress, @@ -106,7 +93,9 @@ export const useSubscribe = (): UseSubscribeHook => { try { // Retrieve the account abstraction provider, bundler client, and smart account const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore const smartAccount = accountAbstractionProvider.smartAccount; if (!sessionData?.authenticated) { @@ -125,11 +114,11 @@ export const useSubscribe = (): UseSubscribeHook => { const parties = [sessionData?.profile?.ownedBy.address]; // The parties involved in the agreement (e.g., the user's address) const payload = '0x'; // Additional payload data if needed - // Prepare the approve MMC data - const approveData = approveMMC(approvalAmountInWei); + // Prepare the transfer to access agreement + const transferToAccessAgreementData = transferToAccessAgreement(approvalAmountInWei); - // Prepare the flash policy agreement data - const flashPolicyAgreementData = createFlashPolicyAgreement( + // Prepare the access agreement data + const registerAccessAgreementData = registerAccessAgreement( approvalAmountInWei, holderAddress, parties, @@ -139,14 +128,14 @@ export const useSubscribe = (): UseSubscribeHook => { // Create the array of calls to be included in the user operation const calls = [ { - to: GLOBAL_CONSTANTS.MMC_ADDRESS, + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, value: 0, - data: approveData, + data: transferToAccessAgreementData, }, { - to: GLOBAL_CONSTANTS.AGREEMENT_PORTAL_ADDRESS, + to: GLOBAL_CONSTANTS.ACCESS_WORKFLOW_ADDRESS, value: 0, - data: flashPolicyAgreementData, + data: registerAccessAgreementData, }, ]; @@ -165,7 +154,9 @@ export const useSubscribe = (): UseSubscribeHook => { setData(receipt); setLoading(false); } catch (err: any) { - setError({ message: err.message || 'An error occurred', ...err }); + console.log('err:') + console.log(err) + // setError({ message: err.message || 'An error occurred', ...err }); setLoading(false); } }; diff --git a/src/hooks/use-transfer.ts b/src/hooks/use-transfer.ts new file mode 100644 index 000000000..5859dbe8d --- /dev/null +++ b/src/hooks/use-transfer.ts @@ -0,0 +1,95 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface TransferParams { + recipient: string; + amount: number; +} + +interface UseTransferHook { + data?: any; + transfer: (params: TransferParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useTransfer = (): UseTransferHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const initializeTransfer = ({ recipient, amount }: TransferParams) => { + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'transfer', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + const transfer = async ({ recipient, amount }: TransferParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to transfer funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const transferData = initializeTransfer({ recipient, amount }); + + const calls = [ + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: transferData, + }, + ]; + + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, transfer, loading, error }; +}; diff --git a/src/hooks/use-withdraw.ts b/src/hooks/use-withdraw.ts new file mode 100644 index 000000000..1c9a94032 --- /dev/null +++ b/src/hooks/use-withdraw.ts @@ -0,0 +1,95 @@ +import { useState } from 'react'; +import { useSelector } from 'react-redux'; +import { encodeFunctionData, parseUnits } from 'viem'; +import { useWeb3Auth } from '@src/hooks/use-web3-auth.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface WithdrawParams { + recipient: string; + amount: number; +} + +interface UseWithdrawHook { + data?: any; + withdraw: (params: WithdrawParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +export const useWithdraw = (): UseWithdrawHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + const sessionData = useSelector((state: any) => state.auth.session); + const { web3Auth } = useWeb3Auth(); + + const initializeWithdraw = ({ recipient, amount }: WithdrawParams) => { + const weiAmount = parseUnits(amount.toString(), 18); + + return encodeFunctionData({ + abi: LedgerVaultAbi.abi, + functionName: 'withdraw', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + }); + }; + + const withdraw = async ({ recipient, amount }: WithdrawParams) => { + setLoading(true); + setError(null); + + try { + const accountAbstractionProvider = web3Auth.options.accountAbstractionProvider; + // @ts-ignore + const bundlerClient = accountAbstractionProvider.bundlerClient; + // @ts-ignore + const smartAccount = accountAbstractionProvider.smartAccount; + + if (!sessionData?.authenticated) { + setError({ message: 'Please login to withdraw funds' }); + setLoading(false); + return; + } + + if (!bundlerClient) { + setError({ message: 'Bundler client not available' }); + setLoading(false); + return; + } + + const withdrawData = initializeWithdraw({ recipient, amount }); + + const calls = [ + { + to: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + value: 0, + data: withdrawData, + }, + ]; + + const userOpHash = await bundlerClient.sendUserOperation({ + account: smartAccount, + calls, + }); + + const receipt = await bundlerClient.waitForUserOperationReceipt({ + hash: userOpHash, + }); + + setData(receipt); + setLoading(false); + } catch (err: any) { + setError({ message: err.message || 'An error occurred', ...err }); + setLoading(false); + } + }; + + return { data, withdraw, loading, error }; +}; diff --git a/src/layouts/_common/header-balance.tsx b/src/layouts/_common/header-balance.tsx index cc17cd1d0..0a3986067 100644 --- a/src/layouts/_common/header-balance.tsx +++ b/src/layouts/_common/header-balance.tsx @@ -4,11 +4,15 @@ import { useDispatch, useSelector } from 'react-redux'; import { useEffect } from 'react'; import { setBalance } from '@redux/auth'; import { useGetBalance } from '@src/hooks/use-get-balance.ts'; +// @ts-ignore import mmcTokenIcon from '@src/assets/mmc_token.ico'; import Button from '@mui/material/Button'; import Box from '@mui/material/Box'; import { paths } from '@src/routes/paths.ts'; import { useRouter } from '@src/routes/hooks'; +import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance.ts'; +import { useDeposit } from '@src/hooks/use-deposit.ts'; +import LoadingButton from '@mui/lab/LoadingButton'; // ---------------------------------------------------------------------- @@ -17,8 +21,14 @@ export default function HeaderBalance() { const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); const sessionData = useSelector((state: any) => state.auth.session); const { balance: balanceFromContract } = useGetBalance(sessionData?.address); + const { balance: vaultBalance } = useGetVaultBalance(sessionData?.address); + const { data, deposit, loading, error } = useDeposit(); const router = useRouter(); + console.log('vaultBalance', vaultBalance) + console.log('data', data) + console.log('error', error) + useEffect(() => { if (balanceFromContract) { dispatch(setBalance({ balance: balanceFromContract })); @@ -27,46 +37,56 @@ export default function HeaderBalance() { const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balanceFromRedux); + const formattedVaultBalance = new Intl.NumberFormat('en-US', balanceOptions).format(vaultBalance as any); const handleGoFinance = () => { router.push(paths.dashboard.finance) } + const handleAddFunds = () => { + deposit({ recipient: sessionData?.address, amount: 100 }); + } + return ( - + <> + + Add funds to vault + + + ); } diff --git a/src/redux/blockchain-events/index.ts b/src/redux/blockchain-events/index.ts new file mode 100644 index 000000000..9a1bd2fbd --- /dev/null +++ b/src/redux/blockchain-events/index.ts @@ -0,0 +1,31 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; +import { Log } from 'viem'; + +interface BlockchainEventsState { + events: Log[]; +} + +const initialState: BlockchainEventsState = { + events: [], +}; + +const blockchainEventsSlice = createSlice({ + name: 'blockchainEvents', + initialState, + reducers: { + addBlockchainEvent(state, action: PayloadAction) { + state.events.push(action.payload); + }, + setBlockchainEvents(state, action: PayloadAction) { + state.events = action.payload; + }, + clearBlockchainEvents(state) { + state.events = []; + }, + }, +}); + +export const { addBlockchainEvent, setBlockchainEvents, clearBlockchainEvents } = + blockchainEventsSlice.actions; + +export default blockchainEventsSlice.reducer; diff --git a/src/redux/reducer.ts b/src/redux/reducer.ts index adc1eb7da..1f66baf7c 100644 --- a/src/redux/reducer.ts +++ b/src/redux/reducer.ts @@ -7,6 +7,7 @@ import bookmarkReducer from '@redux/bookmark/index'; import commentsReducer from '@redux/comments/index'; import followersReducer from '@redux/followers/index'; import addressReducer from '@redux/address/index'; +import blockchainEventsReducer from '@redux/blockchain-events/index'; const appReducer = combineReducers({ minibar: minibarReducer, @@ -17,6 +18,7 @@ const appReducer = combineReducers({ notifications: notificationsReducer, followers: followersReducer, address: addressReducer, + blockchainEvents: blockchainEventsReducer, }); const rootReducer = (state: any, action: any) => { diff --git a/src/routes/sections/index.tsx b/src/routes/sections/index.tsx index 0533cb81d..8c2a45692 100644 --- a/src/routes/sections/index.tsx +++ b/src/routes/sections/index.tsx @@ -1,18 +1,34 @@ import { Navigate, useRoutes } from 'react-router-dom'; -import { PATH_AFTER_LOGIN } from '@src/config-global'; +import { GLOBAL_CONSTANTS, PATH_AFTER_LOGIN } from '@src/config-global'; import { dashboardRoutes } from './dashboard'; import NotFoundPage from '../../pages/404'; import {useEffect} from "react"; import { subscribeToNotifications } from '@src/utils/subscribe-notifications-supabase.ts'; import { useDispatch, useSelector } from 'react-redux'; -// @ts-ignore -import {ReadResult} from "@lens-protocol/react/dist/declarations/src/helpers/reads"; import {useNotifications} from "@src/hooks/use-notifications.ts"; +import { publicClientWebSocket } from '@src/clients/viem/publicClient.ts'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { setBlockchainEvents } from '@redux/blockchain-events'; export default function Router() { const dispatch = useDispatch(); const sessionData = useSelector((state: any) => state.auth.session); const { getNotifications } = useNotifications(); + + useEffect(() => { + // TODO - Filter events by user + const unwatch = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsDeposited', + onLogs: (logs) => { + console.log('New event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + return () => unwatch(); + }, []); + useEffect(() => { if (sessionData?.profile?.id) { // Subscribe to notifications channel From 517229625bac10c617201981c0d7e9dea7be0879 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 20:56:01 -0600 Subject: [PATCH 36/71] refactor: remove MetaMask integration and update styles imports - Removed `MetaMaskProvider` and related `GLOBAL_CONSTANTS` usage from `App.tsx` as part of cleanup. - Updated style imports (`simplebar-react`, `react-quill`, `slick-carousel`, etc.) by adding `@ts-ignore` comments for better TypeScript compatibility. --- src/App.tsx | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index a8a44f902..cbd2f376a 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -3,6 +3,7 @@ import { store } from '@redux/store'; import '@src/locales/i18n'; // scrollbar +// @ts-ignore import 'simplebar-react/dist/simplebar.min.css'; // lightbox @@ -11,13 +12,17 @@ import 'yet-another-react-lightbox/plugins/captions.css'; import 'yet-another-react-lightbox/plugins/thumbnails.css'; // editor +// @ts-ignore import 'react-quill/dist/quill.snow.css'; // carousel +// @ts-ignore import 'slick-carousel/slick/slick.css'; +// @ts-ignore import 'slick-carousel/slick/slick-theme.css'; // image +// @ts-ignore import 'react-lazy-load-image-component/src/effects/blur.css'; // ---------------------------------------------------------------------- @@ -41,8 +46,6 @@ import { ResponsiveOverlay } from '@src/components/responsive-overlay'; import { Buffer } from 'buffer'; import { Provider } from 'react-redux'; -import { MetaMaskProvider } from '@metamask/sdk-react'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; window.Buffer = Buffer; @@ -80,18 +83,10 @@ export default function App() { - - From 27a96eb5dec55667ece6f2a1562766f3b22bd479 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 20:56:24 -0600 Subject: [PATCH 37/71] refactor(config): remove unused INFURAMA_API_KEY variable - Removed `INFURAMA_API_KEY` from `src/config-global.ts` as it was no longer being used. - Ensures cleaner and more maintainable code by eliminating dead variables. --- src/config-global.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/config-global.ts b/src/config-global.ts index a2d2eca12..eb3f87834 100644 --- a/src/config-global.ts +++ b/src/config-global.ts @@ -47,7 +47,6 @@ export const GLOBAL_CONSTANTS = { NEXT_PUBLIC_SUPABASE_URL: process.env.VITE_SUPABASE_URL || import.meta.env.VITE_SUPABASE_URL || '', NEXT_PUBLIC_SUPABASE_ANON_KEY: process.env.VITE_SUPABASE_API_KEY || import.meta.env.VITE_SUPABASE_API_KEY || '', ENVIRONMENT: process.env.NODE_ENV || import.meta.env.VITE_ENVIRONMENT || 'development', - INFURAMA_API_KEY: process.env.VITE_INFURAMA_API_KEY || import.meta.env.VITE_INFURAMA_API_KEY || '', }; export const MAPBOX_API = import.meta.env.VITE_MAPBOX_API || ''; From 26762ea19fefec7df60a6fc28a5ca74e4df57282 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 20:56:45 -0600 Subject: [PATCH 38/71] feat(finance): enhance wallet deposit components - **`finance-widget-summary.tsx`**: Added icons for tabs (Stripe, Metamask, Smart Account) for better UI clarity. - **`finance-deposit-from-metamask.tsx`**: - Integrated viem-based wallet client instead of deprecated SDK. - Implemented wallet connection, balance retrieval, and UI for connected status. - Enhanced layout with input for deposit amount and connected wallet details. - **`finance-deposit-from-smart-account.tsx`**: - Refactored UI to match the improvements in the Metamask deposit component. - Added dynamic balance retrieval via Redux state for Smart Account. --- .../finance-deposit-from-metamask.tsx | 192 ++++++++++++------ .../finance-deposit-from-smart-account.tsx | 33 ++- .../components/finance-widget-summary.tsx | 7 +- 3 files changed, 157 insertions(+), 75 deletions(-) diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index c490dc56e..7c1dad525 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -1,83 +1,145 @@ +import "viem/window"; +import {FC, PropsWithChildren, useEffect, useState} from "react"; import Box from "@mui/material/Box"; -import { useSDK } from "@metamask/sdk-react"; -import { useState } from "react"; import Button from "@mui/material/Button"; -import { ethers } from "ethers"; +import { ConnectWalletClient, ConnectPublicClient } from "@src/clients/viem/walletClient"; +import {formatEther} from "viem"; +import Iconify from "@src/components/iconify"; +import Stack from "@mui/material/Stack"; +import {formatBalanceNumber} from "@src/utils/format-number.ts"; +import TextMaxLine from "@src/components/text-max-line"; +import {InputAmount} from "@src/components/input-amount.tsx"; +import Divider from "@mui/material/Divider"; const FinanceDepositFromMetamask = () => { - const [account, setAccount] = useState(); - const { sdk, connected, connecting, provider, chainId } = useSDK(); + const [address, setAddress] = useState(null); + const [balance, setBalance] = useState(0); - // Request permission to read the balance - const getBalance = async (account: string) => { - try { - const balance = await provider.request({ - method: "eth_getBalance", - // @ts-ignore - params: [account, 'latest'], - }); - // @ts-ignore - const balanceInEther = ethers.formatEther(balance); - console.log("balance in Ether", balanceInEther); - } catch (err) { - console.warn("failed to get balance..", err); - } - }; + //Verify if the user has a wallet connected reading the address from the wallet client + useEffect(() => { + // Call an async function to retrieve the wallet address + (async () => { + // Instantiate a Wallet Client + const walletClient = await ConnectWalletClient(); + // Retrieve the wallet address using the Wallet Client + const [address] = await walletClient.requestAddresses(); + + // Update the state variable with the retrieved address + setAddress(address); + + // If the address is not null, retrieve the balance of the address using the Public Client + if(address){ + // Instantiate a Public Client + const publicClient = ConnectPublicClient(); + // Retrieve the balance of the address using the Public Client + const balance = formatEther(await publicClient.getBalance({ address })); + // Update the state variable with the retrieved balance + setBalance(parseInt(balance)); + } + })() - const connect = async () => { + }, []); + + // Function to handle the button click event + async function handleClick() { try { - const accounts = await sdk?.connect(); - console.log("connected", accounts); - setAccount(accounts?.[0]); + // Instantiate a Wallet Client and a Public Client + const walletClient = await ConnectWalletClient(); + const publicClient = ConnectPublicClient(); + + // Retrieve the wallet address using the Wallet Client + const [address] = await walletClient.requestAddresses(); + // const [address] = await walletClient.getAddresses(); + + // Retrieve the balance of the address using the Public Client + const balance = formatEther(await publicClient.getBalance({ address })); + + // Update the state variables with the retrieved address and balance + setAddress(address); // @ts-ignore - await getBalance(accounts?.[0]); - } catch (err) { - console.warn("failed to connect..", err); + setBalance(balance); + } catch (error) { + // Error handling: Display an alert if the transaction fails + alert(`Transaction failed: ${error}`); } - }; - - const revokePermissions = async () => { - await provider // Or window.ethereum if you don't support EIP-6963. - .request({ - method: "wallet_revokePermissions", - params: [ - { - eth_accounts: {}, - }, - ], - }) } + // Component to display the wallet status (connected or disconnected) + function Status({ + address, + balance, + }: { + address: string | null; + balance: string; + }) { + if (!address) { + // If no address is provided, display "Disconnected" status + return ( + + + ); + } + + // If an address is provided, display the address and balance + return ( + + + + Connected Wallet + {address} + + + + + + Balance + {formatBalanceNumber(balance as any)} MMC + + + + + + Enter the amount to deposit + + + + + ); + } return ( - - - - - - {connected && ( -
- <> - {chainId && `Connected chain: ${chainId}`} -

- {account && `Connected account: ${account}`} - -
- )} -
+ + {/*// @ts-ignore*/} + + ); } +export const BoxRow: FC = ({children}) => ( + + {children} + +) + export default FinanceDepositFromMetamask; diff --git a/src/sections/finance/components/finance-deposit-from-smart-account.tsx b/src/sections/finance/components/finance-deposit-from-smart-account.tsx index f09ee6fe3..58a8f0303 100644 --- a/src/sections/finance/components/finance-deposit-from-smart-account.tsx +++ b/src/sections/finance/components/finance-deposit-from-smart-account.tsx @@ -1,14 +1,33 @@ import Stack from "@mui/material/Stack"; -import Box from "@mui/material/Box"; +import TextMaxLine from "@src/components/text-max-line"; +import {formatBalanceNumber} from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import {InputAmount} from "@src/components/input-amount.tsx"; +import {BoxRow} from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import {useSelector} from "react-redux"; const FinanceDepositFromSmartAccount = () => { - const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; - const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(500); + const smartWalletBalance = useSelector((state: any) => state.auth.balance); + + return ( - - Balance - {formattedTotal} - MMC + + + Balance + {formatBalanceNumber(smartWalletBalance as any)} MMC + + + + + + Enter the amount to deposit + + ); } diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx index db5be693d..4e579a159 100644 --- a/src/sections/finance/components/finance-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -211,9 +211,9 @@ interface ConfirmTransferDialogProps extends DialogProps { } const TABS = [ - { value: 'fiat', label: 'Stripe', disabled: true }, - { value: 'metamask', label: 'Metamask', disabled: false }, - { value: 'smartAccount', label: 'Smart Account', disabled: false }, + { value: 'fiat', label: 'Stripe', disabled: true, icon: }, + { value: 'metamask', label: 'Metamask', disabled: false, icon: }, + { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, ]; function ConfirmTransferDialog({ @@ -259,6 +259,7 @@ function ConfirmTransferDialog({ > {TABS.map((tab) => ( Date: Sat, 28 Dec 2024 20:57:03 -0600 Subject: [PATCH 39/71] feat(utils): add formatBalanceNumber function - **File**: `src/utils/format-number.ts` - Added `formatBalanceNumber` function to format balance numbers with 1 to 3 decimal places using `Intl.NumberFormat`. - This utility will standardize number formatting for balance displays. --- src/utils/format-number.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/utils/format-number.ts b/src/utils/format-number.ts index de1472138..b8242a758 100644 --- a/src/utils/format-number.ts +++ b/src/utils/format-number.ts @@ -37,3 +37,8 @@ function result(format: string, key = '.00') { return isInteger ? format.replace(key, '') : format; } + +export function formatBalanceNumber(balance: number) { + const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; + return new Intl.NumberFormat('en-US', balanceOptions).format(balance as any); +} From df43f541dcef6f32d93328a9070b3e83f74236cc Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 20:57:24 -0600 Subject: [PATCH 40/71] feat(wallet-client): add wallet client connection logic - Created `walletClient.ts` in `src/clients/viem/` to handle wallet client connectivity. - Implemented `ConnectWalletClient` to establish connection with MetaMask or compatible wallets using `viem`. - Added `ConnectPublicClient` function to utilize `publicClient` for non-wallet related operations. --- src/clients/viem/walletClient.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/clients/viem/walletClient.ts diff --git a/src/clients/viem/walletClient.ts b/src/clients/viem/walletClient.ts new file mode 100644 index 000000000..678da364a --- /dev/null +++ b/src/clients/viem/walletClient.ts @@ -0,0 +1,28 @@ +import {createWalletClient, custom} from "viem"; +import {polygonAmoy} from "viem/chains"; +import "viem/window"; +import {publicClient} from "@src/clients/viem/publicClient"; + + +export async function ConnectWalletClient() { + // window.ethereum is an object provided by MetaMask or other web3 wallets + let transport; + if (window.ethereum) { + // If window.ethereum exists, create a custom transport using it + transport = custom(window.ethereum); + } else { + // If window.ethereum is not available, throw an error + const errorMessage = + "MetaMask or another web3 wallet is not installed. Please install one to proceed."; + throw new Error(errorMessage); + } + // Return the wallet client + return createWalletClient({ + chain: polygonAmoy, + transport: transport, + }); +} + +export function ConnectPublicClient() { + return publicClient +} From 3aea337b3503f1f2ab9eb0191c401ac4d528f16f Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Sat, 28 Dec 2024 20:57:34 -0600 Subject: [PATCH 41/71] chore(deps): remove unused MetaMask SDK dependencies - Removed `@metamask/sdk` and `@metamask/sdk-react` from `package.json`. - These dependencies are no longer needed and were not used in the codebase, simplifying the project and reducing potential package conflicts. --- package-lock.json | 1035 --------------------------------------------- package.json | 2 - 2 files changed, 1037 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff33d9368..093a68504 100644 --- a/package-lock.json +++ b/package-lock.json @@ -15,8 +15,6 @@ "@lens-protocol/metadata": "^1.2.0", "@lens-protocol/react": "^2.3.2", "@lens-protocol/react-web": "^2.3.1", - "@metamask/sdk": "^0.31.4", - "@metamask/sdk-react": "^0.31.4", "@mui/base": "^5.0.0-beta.7", "@mui/lab": "^5.0.0-alpha.136", "@mui/material": "^5.16.5", @@ -3310,20 +3308,6 @@ "node": ">=0.1.90" } }, - "node_modules/@ecies/ciphers": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@ecies/ciphers/-/ciphers-0.2.2.tgz", - "integrity": "sha512-ylfGR7PyTd+Rm2PqQowG08BCKA22QuX8NzrL+LxAAvazN10DMwdJ2fWwAzRj05FI/M8vNFGm3cv9Wq/GFWCBLg==", - "license": "MIT", - "engines": { - "bun": ">=1", - "deno": ">=2", - "node": ">=16" - }, - "peerDependencies": { - "@noble/ciphers": "^1.0.0" - } - }, "node_modules/@emotion/babel-plugin": { "version": "11.13.5", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.13.5.tgz", @@ -6533,226 +6517,6 @@ "uuid": "dist/bin/uuid" } }, - "node_modules/@metamask/json-rpc-middleware-stream": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-middleware-stream/-/json-rpc-middleware-stream-7.0.2.tgz", - "integrity": "sha512-yUdzsJK04Ev98Ck4D7lmRNQ8FPioXYhEUZOMS01LXW8qTvPGiRVXmVltj2p4wrLkh0vW7u6nv0mNl5xzC5Qmfg==", - "license": "ISC", - "dependencies": { - "@metamask/json-rpc-engine": "^8.0.2", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0", - "readable-stream": "^3.6.2" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", - "license": "ISC", - "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "license": "ISC", - "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@metamask/json-rpc-middleware-stream/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@metamask/object-multiplex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@metamask/object-multiplex/-/object-multiplex-2.1.0.tgz", - "integrity": "sha512-4vKIiv0DQxljcXwfpnbsXcfa5glMj5Zg9mqn4xpIWqkv6uJ2ma5/GtUfLFSxhlxnR8asRMv8dDmWya1Tc1sDFA==", - "license": "ISC", - "dependencies": { - "once": "^1.4.0", - "readable-stream": "^3.6.2" - }, - "engines": { - "node": "^16.20 || ^18.16 || >=20" - } - }, - "node_modules/@metamask/object-multiplex/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@metamask/onboarding": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@metamask/onboarding/-/onboarding-1.0.1.tgz", - "integrity": "sha512-FqHhAsCI+Vacx2qa5mAFcWNSrTcVGMNjzxVgaX8ECSny/BJ9/vgXP9V7WF/8vb9DltPeQkxr+Fnfmm6GHfmdTQ==", - "license": "MIT", - "dependencies": { - "bowser": "^2.9.0" - } - }, - "node_modules/@metamask/providers": { - "version": "16.1.0", - "resolved": "https://registry.npmjs.org/@metamask/providers/-/providers-16.1.0.tgz", - "integrity": "sha512-znVCvux30+3SaUwcUGaSf+pUckzT5ukPRpcBmy+muBLC0yaWnBcvDqGfcsw6CBIenUdFrVoAFa8B6jsuCY/a+g==", - "license": "MIT", - "dependencies": { - "@metamask/json-rpc-engine": "^8.0.1", - "@metamask/json-rpc-middleware-stream": "^7.0.1", - "@metamask/object-multiplex": "^2.0.0", - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.1.1", - "@metamask/utils": "^8.3.0", - "detect-browser": "^5.2.0", - "extension-port-stream": "^3.0.0", - "fast-deep-equal": "^3.1.3", - "is-stream": "^2.0.0", - "readable-stream": "^3.6.2", - "webextension-polyfill": "^0.10.0" - }, - "engines": { - "node": "^18.18 || >=20" - } - }, - "node_modules/@metamask/providers/node_modules/@metamask/json-rpc-engine": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/@metamask/json-rpc-engine/-/json-rpc-engine-8.0.2.tgz", - "integrity": "sha512-IoQPmql8q7ABLruW7i4EYVHWUbF74yrp63bRuXV5Zf9BQwcn5H9Ww1eLtROYvI1bUXwOiHZ6qT5CWTrDc/t/AA==", - "license": "ISC", - "dependencies": { - "@metamask/rpc-errors": "^6.2.1", - "@metamask/safe-event-emitter": "^3.0.0", - "@metamask/utils": "^8.3.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/providers/node_modules/@metamask/utils": { - "version": "8.5.0", - "resolved": "https://registry.npmjs.org/@metamask/utils/-/utils-8.5.0.tgz", - "integrity": "sha512-I6bkduevXb72TIM9q2LRO63JSsF9EXduh3sBr9oybNX2hNNpr/j1tEjXrsG0Uabm4MJ1xkGAQEMwifvKZIkyxQ==", - "license": "ISC", - "dependencies": { - "@ethereumjs/tx": "^4.2.0", - "@metamask/superstruct": "^3.0.0", - "@noble/hashes": "^1.3.1", - "@scure/base": "^1.1.3", - "@types/debug": "^4.1.7", - "debug": "^4.3.4", - "pony-cause": "^2.1.10", - "semver": "^7.5.4", - "uuid": "^9.0.1" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/@metamask/providers/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@metamask/providers/node_modules/semver": { - "version": "7.6.3", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", - "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/@metamask/providers/node_modules/uuid": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", - "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", - "funding": [ - "https://github.com/sponsors/broofa", - "https://github.com/sponsors/ctavan" - ], - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@metamask/rpc-errors": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/@metamask/rpc-errors/-/rpc-errors-6.4.0.tgz", @@ -6820,132 +6584,6 @@ "node": ">=12.0.0" } }, - "node_modules/@metamask/sdk": { - "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk/-/sdk-0.31.4.tgz", - "integrity": "sha512-HLUN4IZGdyiy5YeebXmXi+ndpmrl6zslCQLdR2QHplIy4JmUL/eDyKNFiK7eBLVKXVVIDYFIb6g1iSEb+i8Kew==", - "dependencies": { - "@babel/runtime": "^7.26.0", - "@metamask/onboarding": "^1.0.1", - "@metamask/providers": "16.1.0", - "@metamask/sdk-communication-layer": "0.31.0", - "@metamask/sdk-install-modal-web": "0.31.2", - "@paulmillr/qr": "^0.2.1", - "bowser": "^2.9.0", - "cross-fetch": "^4.0.0", - "debug": "^4.3.4", - "eciesjs": "^0.4.11", - "eth-rpc-errors": "^4.0.3", - "eventemitter2": "^6.4.9", - "obj-multiplex": "^1.0.0", - "pump": "^3.0.0", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1", - "tslib": "^2.6.0", - "util": "^0.12.4", - "uuid": "^8.3.2" - } - }, - "node_modules/@metamask/sdk-communication-layer": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/@metamask/sdk-communication-layer/-/sdk-communication-layer-0.31.0.tgz", - "integrity": "sha512-V9CxdzabDPjQVgmKGHsyU3SYt4Af27g+4DbGCx0fLoHqN/i1RBDZqs/LYbJX3ykJCANzE+llz/MolMCMrzM2RA==", - "dependencies": { - "bufferutil": "^4.0.8", - "date-fns": "^2.29.3", - "debug": "^4.3.4", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2" - }, - "peerDependencies": { - "cross-fetch": "^4.0.0", - "eciesjs": "*", - "eventemitter2": "^6.4.9", - "readable-stream": "^3.6.2", - "socket.io-client": "^4.5.1" - } - }, - "node_modules/@metamask/sdk-communication-layer/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/@metamask/sdk-install-modal-web": { - "version": "0.31.2", - "resolved": "https://registry.npmjs.org/@metamask/sdk-install-modal-web/-/sdk-install-modal-web-0.31.2.tgz", - "integrity": "sha512-KPv36kQjmTwErU8g2neuHHSgkD5+1hp4D6ERfk5Kc2r73aOYNCdG9wDGRUmFmcY2MKkeK1EuDyZfJ4FPU30fxQ==", - "dependencies": { - "@paulmillr/qr": "^0.2.1" - } - }, - "node_modules/@metamask/sdk-react": { - "version": "0.31.4", - "resolved": "https://registry.npmjs.org/@metamask/sdk-react/-/sdk-react-0.31.4.tgz", - "integrity": "sha512-hAYbYGOsJcJUKJG4pO6KtTGXKikpNQMqo1kube55eeo6XZsFT5l958w2Ckhpld47vlABBNxB9SKwk6/vZtPX/w==", - "dependencies": { - "@metamask/sdk": "^0.31.4", - "debug": "^4.3.4", - "eth-rpc-errors": "^4.0.3", - "rollup-plugin-node-builtins": "^2.1.2", - "rollup-plugin-node-globals": "^1.4.0" - }, - "peerDependencies": { - "@react-native-async-storage/async-storage": "^1.19.6", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-native": "*" - }, - "peerDependenciesMeta": { - "@react-native-async-storage/async-storage": { - "optional": true - }, - "react": { - "optional": false - }, - "react-dom": { - "optional": false - }, - "react-native": { - "optional": true - } - } - }, - "node_modules/@metamask/sdk/node_modules/cross-fetch": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", - "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", - "license": "MIT", - "dependencies": { - "node-fetch": "^2.7.0" - } - }, - "node_modules/@metamask/sdk/node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "license": "MIT", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@metamask/sdk/node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "license": "MIT", - "bin": { - "uuid": "dist/bin/uuid" - } - }, "node_modules/@metamask/superstruct": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@metamask/superstruct/-/superstruct-3.1.0.tgz", @@ -8405,15 +8043,6 @@ "url": "https://github.com/sponsors/passwordless-id" } }, - "node_modules/@paulmillr/qr": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/@paulmillr/qr/-/qr-0.2.1.tgz", - "integrity": "sha512-IHnV6A+zxU7XwmKFinmYjUcwlyK9+xkG3/s9KcQhI9BjQKycrJ1JRO+FbNYPwZiPKW3je/DR0k7w8/gLa5eaxQ==", - "license": "(MIT OR Apache-2.0)", - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/@peculiar/asn1-cms": { "version": "2.3.13", "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.13.tgz", @@ -15086,24 +14715,6 @@ "integrity": "sha512-Zypm+LjYdWAzvuypZvDN0smUJrhOurcuBWhhMRBExqVLRvdjp3Z9mASxKyq19K+meZMshwjjy5S0lkm388zE4Q==", "license": "MIT" }, - "node_modules/abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha512-TOod9d5RDExo6STLMGa+04HGkl+TlMfbDnTyN93/ETJ9DpQ0DaYLqcMZlbXvdc4W3vVo1Qrl+WhSp8zvDsJ+jA==", - "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", - "license": "MIT", - "dependencies": { - "xtend": "~3.0.0" - } - }, - "node_modules/abstract-leveldown/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/acorn": { "version": "8.14.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", @@ -15982,16 +15593,6 @@ "safe-buffer": "^5.1.2" } }, - "node_modules/browserify-fs": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/browserify-fs/-/browserify-fs-1.0.0.tgz", - "integrity": "sha512-8LqHRPuAEKvyTX34R6tsw4bO2ro6j9DmlYBhiYWHRM26Zv2cBw1fJOU0NeUQ0RkXkPn/PFBjhA0dm4AgaBurTg==", - "dependencies": { - "level-filesystem": "^1.0.1", - "level-js": "^2.1.3", - "levelup": "^0.18.2" - } - }, "node_modules/browserify-rsa": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.1.tgz", @@ -16212,18 +15813,6 @@ "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==", "license": "BSD-3-Clause" }, - "node_modules/buffer-es6": { - "version": "4.9.3", - "resolved": "https://registry.npmjs.org/buffer-es6/-/buffer-es6-4.9.3.tgz", - "integrity": "sha512-Ibt+oXxhmeYJSsCkODPqNpPmyegefiD8rfutH1NYGhMZQhSp95Rz7haemgnJ6dxa6LT+JLLbtgOMORRluwKktw==", - "license": "MIT" - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "license": "MIT" - }, "node_modules/buffer-reverse": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/buffer-reverse/-/buffer-reverse-1.0.1.tgz", @@ -16848,57 +16437,6 @@ "dev": true, "license": "MIT" }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "engines": [ - "node >= 0.8" - ], - "license": "MIT", - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/concat-stream/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/concat-stream/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/concat-stream/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/confbox": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", @@ -17563,16 +17101,6 @@ "node": ">= 16" } }, - "node_modules/deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha512-+WCbb4+ez/SZ77Sdy1iadagFiVzMB89IKOBhglgnUkVxOxRWmmFsz8UDSNWh4Rhq+3wr/vMFlYj+rdEwWUDdng==", - "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", - "license": "MIT", - "dependencies": { - "abstract-leveldown": "~0.12.1" - } - }, "node_modules/define-data-property": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", @@ -17885,62 +17413,6 @@ "safe-buffer": "^5.0.1" } }, - "node_modules/eciesjs": { - "version": "0.4.13", - "resolved": "https://registry.npmjs.org/eciesjs/-/eciesjs-0.4.13.tgz", - "integrity": "sha512-zBdtR4K+wbj10bWPpIOF9DW+eFYQu8miU5ypunh0t4Bvt83ZPlEWgT5Dq/0G6uwEXumZKjfb5BZxYUZQ2Hzn/Q==", - "license": "MIT", - "dependencies": { - "@ecies/ciphers": "^0.2.2", - "@noble/ciphers": "^1.0.0", - "@noble/curves": "^1.6.0", - "@noble/hashes": "^1.5.0" - }, - "engines": { - "bun": ">=1", - "deno": ">=2", - "node": ">=16" - } - }, - "node_modules/eciesjs/node_modules/@noble/ciphers": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-1.1.3.tgz", - "integrity": "sha512-Ygv6WnWJHLLiW4fnNDC1z+i13bud+enXOFRBlpxI+NJliPWx5wdR+oWlTjLuBPTqjUjtHXtjkU6w3kuuH6upZA==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/eciesjs/node_modules/@noble/curves": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", - "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", - "license": "MIT", - "dependencies": { - "@noble/hashes": "1.6.0" - }, - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, - "node_modules/eciesjs/node_modules/@noble/hashes": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", - "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", - "license": "MIT", - "engines": { - "node": "^14.21.3 || >=16" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - } - }, "node_modules/eip1193-provider": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/eip1193-provider/-/eip1193-provider-1.0.1.tgz", @@ -18214,18 +17686,6 @@ "integrity": "sha512-GiaH0KJUewYok+eeY05IIgjtAe4Yltygk9Wqp1V5yVWLdhf0hYZchRjNIT9bb0mSwRcIusT3cx7PJUf3zEIfUA==", "license": "MIT" }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "license": "MIT", - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, "node_modules/error-ex": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", @@ -20099,12 +19559,6 @@ "node": ">=6" } }, - "node_modules/eventemitter2": { - "version": "6.4.9", - "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.9.tgz", - "integrity": "sha512-JEPTiaOt9f04oa6NOkc4aH+nVp5I3wEjpHbIPqfgCdD5v5bUzy7xQqwcVO2aDQgOWhI28da57HksMrzK9HlRxg==", - "license": "MIT" - }, "node_modules/eventemitter3": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", @@ -20195,19 +19649,6 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, - "node_modules/extension-port-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/extension-port-stream/-/extension-port-stream-3.0.0.tgz", - "integrity": "sha512-an2S5quJMiy5bnZKEf6AkfH/7r8CzHvhchU40gxN+OM6HPhe7Z9T1FUychcf2M9PpPOO0Hf7BAEfJkw2TDIBDw==", - "license": "ISC", - "dependencies": { - "readable-stream": "^3.6.2 || ^4.4.2", - "webextension-polyfill": ">=0.10.0 <1.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -20542,12 +19983,6 @@ "is-callable": "^1.1.3" } }, - "node_modules/foreach": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.6.tgz", - "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", - "license": "MIT" - }, "node_modules/form-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.1.tgz", @@ -20804,38 +20239,6 @@ "node": ">=10" } }, - "node_modules/fwd-stream": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/fwd-stream/-/fwd-stream-1.0.4.tgz", - "integrity": "sha512-q2qaK2B38W07wfPSQDKMiKOD5Nzv2XyuvQlrmh1q0pxyHNanKHq8lwQ6n9zHucAwA5EbzRJKEgds2orn88rYTg==", - "dependencies": { - "readable-stream": "~1.0.26-4" - } - }, - "node_modules/fwd-stream/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/fwd-stream/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/fwd-stream/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, "node_modules/gaxios": { "version": "6.7.1", "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-6.7.1.tgz", @@ -21866,12 +21269,6 @@ "integrity": "sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==", "license": "Apache-2.0" }, - "node_modules/idb-wrapper": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.2.tgz", - "integrity": "sha512-zfNREywMuf0NzDo9mVsL0yegjsirJxHpKHvWcyRozIqQy89g0a3U+oBPOCN4cc0oCiOuYgZHimzaW/R46G1Mpg==", - "license": "MIT" - }, "node_modules/ieee754": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", @@ -21995,11 +21392,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha512-i0G7hLJ1z0DE8dsqJa2rycj9dBmNKgXBvotXtZYXakU9oivfB9Uj2ZBC27qqef2U58/ZLwalxa1X/RDCdkHtVg==" - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -22211,14 +21603,6 @@ "url": "https://github.com/sponsors/brc-dd" } }, - "node_modules/is": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/is/-/is-0.2.7.tgz", - "integrity": "sha512-ajQCouIvkcSnl2iRdK70Jug9mohIHVX9uKpoWnl115ov0R5mzBvRrXxrnHbsA+8AdwCwc/sfw7HXmd4I5EJBdQ==", - "engines": { - "node": "*" - } - }, "node_modules/is-arguments": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", @@ -22642,11 +22026,6 @@ "node": ">=8" } }, - "node_modules/is-object": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/is-object/-/is-object-0.1.2.tgz", - "integrity": "sha512-GkfZZlIZtpkFrqyAXPQSRBMsaHAw+CgoKe2HXAkjd/sfoI9+hS8PT4wg2rJxdQyUKr7N2vHJbg7/jQtE5l5vBQ==" - }, "node_modules/is-path-inside": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", @@ -22878,12 +22257,6 @@ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, - "node_modules/isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha512-xU+NoHp+YtKQkaM2HsQchYn0sltxMxew0HavMfHbjnucBoTSGbw745tL+Z7QBANleWM1eEQMenEpi174mIeS4g==", - "license": "MIT" - }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -23579,251 +22952,6 @@ "node": ">=0.10" } }, - "node_modules/level-blobs": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/level-blobs/-/level-blobs-0.1.7.tgz", - "integrity": "sha512-n0iYYCGozLd36m/Pzm206+brIgXP8mxPZazZ6ZvgKr+8YwOZ8/PPpYC5zMUu2qFygRN8RO6WC/HH3XWMW7RMVg==", - "dependencies": { - "level-peek": "1.0.6", - "once": "^1.3.0", - "readable-stream": "^1.0.26-4" - } - }, - "node_modules/level-blobs/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/level-blobs/node_modules/readable-stream": { - "version": "1.1.14", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/level-blobs/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/level-filesystem": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/level-filesystem/-/level-filesystem-1.2.0.tgz", - "integrity": "sha512-PhXDuCNYpngpxp3jwMT9AYBMgOvB6zxj3DeuIywNKmZqFj2djj9XfT2XDVslfqmo0Ip79cAd3SBy3FsfOZPJ1g==", - "dependencies": { - "concat-stream": "^1.4.4", - "errno": "^0.1.1", - "fwd-stream": "^1.0.4", - "level-blobs": "^0.1.7", - "level-peek": "^1.0.6", - "level-sublevel": "^5.2.0", - "octal": "^1.0.0", - "once": "^1.3.0", - "xtend": "^2.2.0" - } - }, - "node_modules/level-filesystem/node_modules/xtend": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.2.0.tgz", - "integrity": "sha512-SLt5uylT+4aoXxXuwtQp5ZnMMzhDb1Xkg4pEqc00WUJCQifPfV9Ub1VrNhp9kXkrjZD2I2Hl8WnjP37jzZLPZw==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/level-fix-range": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-1.0.2.tgz", - "integrity": "sha512-9llaVn6uqBiSlBP+wKiIEoBa01FwEISFgHSZiyec2S0KpyLUkGR4afW/FCZ/X8y+QJvzS0u4PGOlZDdh1/1avQ==", - "license": "MIT" - }, - "node_modules/level-hooks": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/level-hooks/-/level-hooks-4.5.0.tgz", - "integrity": "sha512-fxLNny/vL/G4PnkLhWsbHnEaRi+A/k8r5EH/M77npZwYL62RHi2fV0S824z3QdpAk6VTgisJwIRywzBHLK4ZVA==", - "dependencies": { - "string-range": "~1.2" - } - }, - "node_modules/level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha512-lZtjt4ZwHE00UMC1vAb271p9qzg8vKlnDeXfIesH3zL0KxhHRDjClQLGLWhyR0nK4XARnd4wc/9eD1ffd4PshQ==", - "deprecated": "Superseded by browser-level (https://github.com/Level/community#faq)", - "license": "BSD-2-Clause", - "dependencies": { - "abstract-leveldown": "~0.12.0", - "idb-wrapper": "^1.5.0", - "isbuffer": "~0.0.0", - "ltgt": "^2.1.2", - "typedarray-to-buffer": "~1.0.0", - "xtend": "~2.1.2" - } - }, - "node_modules/level-js/node_modules/object-keys": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha512-ncrLw+X55z7bkl5PnUvHwFK9FcGuFYo9gtjws2XtSzL+aZ8tm830P60WJ0dSmFVaSalWieW5MD7kEdnXda9yJw==", - "license": "MIT" - }, - "node_modules/level-js/node_modules/typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha512-vjMKrfSoUDN8/Vnqitw2FmstOfuJ73G6CrSEKnf11A6RmasVxHqfeBcnTb6RsL4pTMuV5Zsv9IiHRphMZyckUw==", - "license": "MIT" - }, - "node_modules/level-js/node_modules/xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha512-vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==", - "dependencies": { - "object-keys": "~0.4.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/level-peek": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/level-peek/-/level-peek-1.0.6.tgz", - "integrity": "sha512-TKEzH5TxROTjQxWMczt9sizVgnmJ4F3hotBI48xCTYvOKd/4gA/uY0XjKkhJFo6BMic8Tqjf6jFMLWeg3MAbqQ==", - "license": "MIT", - "dependencies": { - "level-fix-range": "~1.0.2" - } - }, - "node_modules/level-sublevel": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-5.2.3.tgz", - "integrity": "sha512-tO8jrFp+QZYrxx/Gnmjawuh1UBiifpvKNAcm4KCogesWr1Nm2+ckARitf+Oo7xg4OHqMW76eAqQ204BoIlscjA==", - "license": "MIT", - "dependencies": { - "level-fix-range": "2.0", - "level-hooks": ">=4.4.0 <5", - "string-range": "~1.2.1", - "xtend": "~2.0.4" - } - }, - "node_modules/level-sublevel/node_modules/clone": { - "version": "0.1.19", - "resolved": "https://registry.npmjs.org/clone/-/clone-0.1.19.tgz", - "integrity": "sha512-IO78I0y6JcSpEPHzK4obKdsL7E7oLdRVDVOLwr2Hkbjsb+Eoz0dxW6tef0WizoKu0gLC4oZSZuEF4U2K6w1WQw==", - "license": "MIT", - "engines": { - "node": "*" - } - }, - "node_modules/level-sublevel/node_modules/level-fix-range": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/level-fix-range/-/level-fix-range-2.0.0.tgz", - "integrity": "sha512-WrLfGWgwWbYPrHsYzJau+5+te89dUbENBg3/lsxOs4p2tYOhCHjbgXxBAj4DFqp3k/XBwitcRXoCh8RoCogASA==", - "license": "MIT", - "dependencies": { - "clone": "~0.1.9" - } - }, - "node_modules/level-sublevel/node_modules/object-keys": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.2.0.tgz", - "integrity": "sha512-XODjdR2pBh/1qrjPcbSeSgEtKbYo7LqYNq64/TPuCf7j9SfDD3i21yatKoIy39yIWNvVM59iutfQQpCv1RfFzA==", - "deprecated": "Please update to the latest object-keys", - "license": "MIT", - "dependencies": { - "foreach": "~2.0.1", - "indexof": "~0.0.1", - "is": "~0.2.6" - } - }, - "node_modules/level-sublevel/node_modules/xtend": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.0.6.tgz", - "integrity": "sha512-fOZg4ECOlrMl+A6Msr7EIFcON1L26mb4NY5rurSkOex/TWhazOrg6eXD/B0XkuiYcYhQDWLXzQxLMVJ7LXwokg==", - "dependencies": { - "is-object": "~0.1.2", - "object-keys": "~0.2.0" - }, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/levelup": { - "version": "0.18.6", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.18.6.tgz", - "integrity": "sha512-uB0auyRqIVXx+hrpIUtol4VAPhLRcnxcOsd2i2m6rbFIDarO5dnrupLOStYYpEcu8ZT087Z9HEuYw1wjr6RL6Q==", - "deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)", - "license": "MIT", - "dependencies": { - "bl": "~0.8.1", - "deferred-leveldown": "~0.2.0", - "errno": "~0.1.1", - "prr": "~0.0.0", - "readable-stream": "~1.0.26", - "semver": "~2.3.1", - "xtend": "~3.0.0" - } - }, - "node_modules/levelup/node_modules/bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha512-pfqikmByp+lifZCS0p6j6KreV6kNU6Apzpm2nKOk+94cZb/jvle55+JxWiByUQ0Wo/+XnDXEy5MxxKMb6r0VIw==", - "license": "MIT", - "dependencies": { - "readable-stream": "~1.0.26" - } - }, - "node_modules/levelup/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==", - "license": "MIT" - }, - "node_modules/levelup/node_modules/prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha512-LmUECmrW7RVj6mDWKjTXfKug7TFGdiz9P18HMcO4RHL+RW7MCOGNvpj5j47Rnp6ne6r4fZ2VzyUWEpKbg+tsjQ==", - "license": "MIT" - }, - "node_modules/levelup/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/levelup/node_modules/semver": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-2.3.2.tgz", - "integrity": "sha512-abLdIKCosKfpnmhS52NCTjO4RiLspDfsn37prjzGrp9im5DPJOgh82Os92vtwGh6XdQryKI/7SREZnV+aqiXrA==", - "license": "BSD", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/levelup/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==", - "license": "MIT" - }, - "node_modules/levelup/node_modules/xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha512-sp/sT9OALMjRW1fKDlPeuSZlDQpkqReA0pyJukniWbTGoEKefHxhGJynE3PNhUMlcM8qWIjPwecwCw4LArS5Eg==", - "engines": { - "node": ">=0.4" - } - }, "node_modules/levn": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", @@ -24187,12 +23315,6 @@ "yallist": "^3.0.2" } }, - "node_modules/ltgt": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", - "integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==", - "license": "MIT" - }, "node_modules/magic-sdk": { "version": "13.6.2", "resolved": "https://registry.npmjs.org/magic-sdk/-/magic-sdk-13.6.2.tgz", @@ -28677,53 +27799,6 @@ "node": "*" } }, - "node_modules/obj-multiplex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/obj-multiplex/-/obj-multiplex-1.0.0.tgz", - "integrity": "sha512-0GNJAOsHoBHeNTvl5Vt6IWnpUEcc3uSRxzBri7EDyIcMgYvnY2JL2qdeV5zTMjWQX5OHcD5amcW2HFfDh0gjIA==", - "license": "ISC", - "dependencies": { - "end-of-stream": "^1.4.0", - "once": "^1.4.0", - "readable-stream": "^2.3.3" - } - }, - "node_modules/obj-multiplex/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", - "license": "MIT" - }, - "node_modules/obj-multiplex/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "license": "MIT", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/obj-multiplex/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", - "license": "MIT" - }, - "node_modules/obj-multiplex/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "license": "MIT", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -28892,12 +27967,6 @@ "npm": ">=7.0.0" } }, - "node_modules/octal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/octal/-/octal-1.0.0.tgz", - "integrity": "sha512-nnda7W8d+A3vEIY+UrDQzzboPf1vhs4JYVhff5CDkq9QNoZY7Xrxeo/htox37j9dZf7yNHevZzqtejWgy1vCqQ==", - "license": "MIT" - }, "node_modules/ofetch": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/ofetch/-/ofetch-1.4.1.tgz", @@ -29874,12 +28943,6 @@ "node": ">= 0.6.0" } }, - "node_modules/process-es6": { - "version": "0.11.6", - "resolved": "https://registry.npmjs.org/process-es6/-/process-es6-0.11.6.tgz", - "integrity": "sha512-GYBRQtL4v3wgigq10Pv58jmTbFXlIiTbSfgnNqZLY0ldUPqy1rRxDI5fCjoCpnM6TqmHQI8ydzTBXW86OYc0gA==", - "license": "MIT" - }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -30006,12 +29069,6 @@ "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", "license": "MIT" }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "license": "MIT" - }, "node_modules/public-encrypt": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", @@ -31467,74 +30524,6 @@ "fsevents": "~2.3.2" } }, - "node_modules/rollup-plugin-node-builtins": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-builtins/-/rollup-plugin-node-builtins-2.1.2.tgz", - "integrity": "sha512-bxdnJw8jIivr2yEyt8IZSGqZkygIJOGAWypXvHXnwKAbUcN4Q/dGTx7K0oAJryC/m6aq6tKutltSeXtuogU6sw==", - "license": "ISC", - "dependencies": { - "browserify-fs": "^1.0.0", - "buffer-es6": "^4.9.2", - "crypto-browserify": "^3.11.0", - "process-es6": "^0.11.2" - } - }, - "node_modules/rollup-plugin-node-globals": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/rollup-plugin-node-globals/-/rollup-plugin-node-globals-1.4.0.tgz", - "integrity": "sha512-xRkB+W/m1KLIzPUmG0ofvR+CPNcvuCuNdjVBVS7ALKSxr3EDhnzNceGkGi1m8MToSli13AzKFYH4ie9w3I5L3g==", - "license": "MIT", - "dependencies": { - "acorn": "^5.7.3", - "buffer-es6": "^4.9.3", - "estree-walker": "^0.5.2", - "magic-string": "^0.22.5", - "process-es6": "^0.11.6", - "rollup-pluginutils": "^2.3.1" - } - }, - "node_modules/rollup-plugin-node-globals/node_modules/acorn": { - "version": "5.7.4", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.4.tgz", - "integrity": "sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==", - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/rollup-plugin-node-globals/node_modules/estree-walker": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", - "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", - "license": "MIT" - }, - "node_modules/rollup-plugin-node-globals/node_modules/magic-string": { - "version": "0.22.5", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", - "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", - "license": "MIT", - "dependencies": { - "vlq": "^0.2.2" - } - }, - "node_modules/rollup-pluginutils": { - "version": "2.8.2", - "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", - "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", - "license": "MIT", - "dependencies": { - "estree-walker": "^0.6.1" - } - }, - "node_modules/rollup-pluginutils/node_modules/estree-walker": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", - "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", - "license": "MIT" - }, "node_modules/rollup-preserve-directives": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/rollup-preserve-directives/-/rollup-preserve-directives-1.1.3.tgz", @@ -32806,12 +31795,6 @@ "dev": true, "license": "MIT" }, - "node_modules/string-range": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/string-range/-/string-range-1.2.2.tgz", - "integrity": "sha512-tYft6IFi8SjplJpxCUxyqisD3b+R2CSkomrtJYCkvuf1KuCAWgz7YXt4O0jip7efpfCemwHEzTEAO8EuOYgh3w==", - "license": "MIT" - }, "node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", @@ -34784,12 +33767,6 @@ "rxjs": "*" } }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", - "license": "MIT" - }, "node_modules/typedarray-to-buffer": { "version": "3.1.5", "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", @@ -36050,12 +35027,6 @@ "vite": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0" } }, - "node_modules/vlq": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", - "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", - "license": "MIT" - }, "node_modules/vm-browserify": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", @@ -36467,12 +35438,6 @@ "tslib": "^2.7.0" } }, - "node_modules/webextension-polyfill": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/webextension-polyfill/-/webextension-polyfill-0.10.0.tgz", - "integrity": "sha512-c5s35LgVa5tFaHhrZDnr3FpQpjj1BB+RXhLTYUxGqBVN460HkbM8TBtEqdXWbpTKfzwCcjAZVF7zXCYSKtcp9g==", - "license": "MPL-2.0" - }, "node_modules/webidl-conversions": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", diff --git a/package.json b/package.json index 4106d5cb2..00251e108 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,6 @@ "@lens-protocol/metadata": "^1.2.0", "@lens-protocol/react": "^2.3.2", "@lens-protocol/react-web": "^2.3.1", - "@metamask/sdk": "^0.31.4", - "@metamask/sdk-react": "^0.31.4", "@mui/base": "^5.0.0-beta.7", "@mui/lab": "^5.0.0-alpha.136", "@mui/material": "^5.16.5", From 839036cd2fad5bbe5e1f806a5ce2ac97380f695a Mon Sep 17 00:00:00 2001 From: jadapema Date: Mon, 30 Dec 2024 17:10:04 -0600 Subject: [PATCH 42/71] feat: connect deposit with smart wallet, deposit with metamask, withdraw, transfer and added the other 2 realtime events --- src/clients/viem/walletClient.ts | 1 - src/hooks/use-deposit-metamask.ts | 127 ++++++++++ src/hooks/use-get-balance.ts | 44 ++-- src/hooks/use-get-mmc-contract-balance.ts | 36 +++ src/hooks/use-get-vault-balance.ts | 1 + src/layouts/_common/header-balance.tsx | 106 +++------ src/routes/sections/index.tsx | 28 ++- .../finance-deposit-from-metamask.tsx | 218 ++++++++++-------- .../finance-deposit-from-smart-account.tsx | 132 +++++++++-- .../components/finance-deposit-modal.tsx | 70 ++++++ .../components/finance-quick-actions.tsx | 136 +++++++---- .../components/finance-quick-transfer.tsx | 37 +-- .../components/finance-widget-summary.tsx | 151 +++--------- src/sections/finance/index.tsx | 14 +- 14 files changed, 681 insertions(+), 420 deletions(-) create mode 100644 src/hooks/use-deposit-metamask.ts create mode 100644 src/hooks/use-get-mmc-contract-balance.ts create mode 100644 src/sections/finance/components/finance-deposit-modal.tsx diff --git a/src/clients/viem/walletClient.ts b/src/clients/viem/walletClient.ts index 678da364a..bee5aaf0f 100644 --- a/src/clients/viem/walletClient.ts +++ b/src/clients/viem/walletClient.ts @@ -3,7 +3,6 @@ import {polygonAmoy} from "viem/chains"; import "viem/window"; import {publicClient} from "@src/clients/viem/publicClient"; - export async function ConnectWalletClient() { // window.ethereum is an object provided by MetaMask or other web3 wallets let transport; diff --git a/src/hooks/use-deposit-metamask.ts b/src/hooks/use-deposit-metamask.ts new file mode 100644 index 000000000..94d5e30fa --- /dev/null +++ b/src/hooks/use-deposit-metamask.ts @@ -0,0 +1,127 @@ +import { useState } from 'react'; +import { parseUnits } from 'viem'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; +import { publicClient } from '@src/clients/viem/publicClient'; +import { useSnackbar } from 'notistack'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface DepositParams { + recipient: string; // The address receiving the deposit + amount: number; // Amount in "human" format (not in Wei) +} + +interface UseDepositHook { + data?: any; + deposit: (params: DepositParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +/** + * Hook that allows the deposit flow to be made + * using MetaMask (or any injected EOA) instead + * of the smart wallet. + */ +export const useDepositMetamask = (): UseDepositHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const { enqueueSnackbar } = useSnackbar(); + + const deposit = async ({ recipient, amount }: DepositParams) => { + setLoading(true); + setError(null); + + try { + // 1) Connect to the wallet (MetaMask) + const walletClient = await ConnectWalletClient(); + + // 2) Retrieve the user's address from the wallet + const [senderAddress] = await walletClient.requestAddresses(); + + // 3) Convert the amount to Wei (18 decimals for MMC) + const weiAmount = parseUnits(amount.toString(), 18); + + // Notify the user that we are sending approve transaction to the network + enqueueSnackbar('Sending approve transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 4) First transaction: approve + const approveTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.MMC_ADDRESS, + abi: MMCAbi.abi, + functionName: 'approve', + args: [GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, weiAmount], + account: senderAddress, + }); + + // Notify the user that we are now waiting for the approve transaction to be confirmed + enqueueSnackbar('Approve transaction broadcasted. Waiting for confirmation (1/2)...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the approve transaction to be mined + const approveReceipt = await publicClient.waitForTransactionReceipt({ + hash: approveTxHash, + }); + + // Notify the user that we are now sending the deposit transaction + enqueueSnackbar('Sending deposit transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 5) Second transaction: deposit + const depositTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'deposit', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + account: senderAddress, + }); + + // Notify the user that we are now waiting for the deposit transaction to be confirmed + enqueueSnackbar('Deposit transaction broadcasted. Waiting for confirmation (2/2)...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the deposit transaction to be mined + const depositReceipt = await publicClient.waitForTransactionReceipt({ + hash: depositTxHash, + }); + + // 6) Store data about both transactions + setData({ + approveTxHash, + depositTxHash, + approveReceipt, + depositReceipt, + }); + } catch (err: any) { + // If something fails (either approve or deposit), set an error + setError({ message: err.message || 'An error occurred', ...err }); + } finally { + // Reset loading state + setLoading(false); + } + }; + + return { + data, + deposit, + loading, + error, + }; +}; diff --git a/src/hooks/use-get-balance.ts b/src/hooks/use-get-balance.ts index dfca59d42..d8776c7f4 100644 --- a/src/hooks/use-get-balance.ts +++ b/src/hooks/use-get-balance.ts @@ -1,36 +1,20 @@ -import { useState, useEffect, useCallback } from 'react'; -import { formatUnits, Address } from 'viem'; -import MMCAbi from '@src/config/abi/MMC.json'; -import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -import { publicClient } from '@src/clients/viem/publicClient.ts'; -import { useSelector } from 'react-redux'; +import { useEffect } from 'react'; +import { useDispatch, useSelector } from 'react-redux'; +import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance.ts'; +import { setBalance } from '@redux/auth'; -export function useGetBalance(address?: Address) { - const [balance, setBalance] = useState(null); - const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); +export function useGetBalance() { + const balance = useSelector((state: any) => state.auth.balance); + const sessionData = useSelector((state: any) => state.auth.session); + const dispatch = useDispatch(); - const fetchBalance = useCallback(async () => { - if (!address) return; - - try { - const rawBalance: any = await publicClient.readContract({ - address: GLOBAL_CONSTANTS.MMC_ADDRESS, - abi: MMCAbi.abi, - functionName: 'balanceOf', - args: [address], - }); - - const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); - setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); - } catch (error) { - console.error('Error fetching balance:', error); - setBalance(null); - } - }, [address]); + const { balance: vaultBalance, refetch } = useGetVaultBalance(sessionData?.address); useEffect(() => { - fetchBalance(); - }, [fetchBalance, address, blockchainEvents]); + if (vaultBalance !== null && vaultBalance !== undefined) { + dispatch(setBalance({ balance: vaultBalance })); + } + }, [vaultBalance, dispatch]); - return { balance, refetch: fetchBalance }; + return { balance, refetch }; } diff --git a/src/hooks/use-get-mmc-contract-balance.ts b/src/hooks/use-get-mmc-contract-balance.ts new file mode 100644 index 000000000..6870f6272 --- /dev/null +++ b/src/hooks/use-get-mmc-contract-balance.ts @@ -0,0 +1,36 @@ +import { useState, useEffect, useCallback } from 'react'; +import { formatUnits, Address } from 'viem'; +import MMCAbi from '@src/config/abi/MMC.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; +import { useSelector } from 'react-redux'; + +export function useGetMmcContractBalance(address?: Address) { + const [balance, setBalance] = useState(null); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + + const fetchBalance = useCallback(async () => { + if (!address) return; + + try { + const rawBalance: any = await publicClient.readContract({ + address: GLOBAL_CONSTANTS.MMC_ADDRESS, + abi: MMCAbi.abi, + functionName: 'balanceOf', + args: [address], + }); + + const formattedBalance = parseFloat(formatUnits(rawBalance, 18)); + setBalance(isNaN(formattedBalance) ? 0 : formattedBalance); + } catch (error) { + console.error('Error fetching balance:', error); + setBalance(null); + } + }, [address]); + + useEffect(() => { + fetchBalance(); + }, [fetchBalance, address, blockchainEvents]); + + return { balance, refetch: fetchBalance }; +} diff --git a/src/hooks/use-get-vault-balance.ts b/src/hooks/use-get-vault-balance.ts index ecbcd971d..72581fcc9 100644 --- a/src/hooks/use-get-vault-balance.ts +++ b/src/hooks/use-get-vault-balance.ts @@ -10,6 +10,7 @@ export function useGetVaultBalance(address: Address) { const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); const fetchBalance = useCallback(async () => { + console.log('Fetching balance for address:', address); if (!address) return; try { diff --git a/src/layouts/_common/header-balance.tsx b/src/layouts/_common/header-balance.tsx index 0a3986067..48922313b 100644 --- a/src/layouts/_common/header-balance.tsx +++ b/src/layouts/_common/header-balance.tsx @@ -1,92 +1,54 @@ +// MUI IMPORTS import Typography from '@mui/material/Typography'; import Stack from '@mui/material/Stack'; -import { useDispatch, useSelector } from 'react-redux'; -import { useEffect } from 'react'; -import { setBalance } from '@redux/auth'; +import Button from '@mui/material/Button'; +import Box from '@mui/material/Box'; + +// LOCAL IMPORTS import { useGetBalance } from '@src/hooks/use-get-balance.ts'; // @ts-ignore import mmcTokenIcon from '@src/assets/mmc_token.ico'; -import Button from '@mui/material/Button'; -import Box from '@mui/material/Box'; import { paths } from '@src/routes/paths.ts'; import { useRouter } from '@src/routes/hooks'; -import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance.ts'; -import { useDeposit } from '@src/hooks/use-deposit.ts'; -import LoadingButton from '@mui/lab/LoadingButton'; +import { formatBalanceNumber } from '@src/utils/format-number.ts'; // ---------------------------------------------------------------------- export default function HeaderBalance() { - const dispatch = useDispatch(); - const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); - const sessionData = useSelector((state: any) => state.auth.session); - const { balance: balanceFromContract } = useGetBalance(sessionData?.address); - const { balance: vaultBalance } = useGetVaultBalance(sessionData?.address); - const { data, deposit, loading, error } = useDeposit(); + const { balance } = useGetBalance(); const router = useRouter(); - console.log('vaultBalance', vaultBalance) - console.log('data', data) - console.log('error', error) - - useEffect(() => { - if (balanceFromContract) { - dispatch(setBalance({ balance: balanceFromContract })); - } - }, [balanceFromContract]); - - const balanceOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; - const formattedBalance = new Intl.NumberFormat('en-US', balanceOptions).format(balanceFromRedux); - const formattedVaultBalance = new Intl.NumberFormat('en-US', balanceOptions).format(vaultBalance as any); - const handleGoFinance = () => { router.push(paths.dashboard.finance) } - const handleAddFunds = () => { - deposit({ recipient: sessionData?.address, amount: 100 }); - } - return ( - <> - - Add funds to vault - - - + ); } diff --git a/src/routes/sections/index.tsx b/src/routes/sections/index.tsx index 8c2a45692..8dd01e1d8 100644 --- a/src/routes/sections/index.tsx +++ b/src/routes/sections/index.tsx @@ -17,16 +17,38 @@ export default function Router() { useEffect(() => { // TODO - Filter events by user - const unwatch = publicClientWebSocket.watchContractEvent({ + const unwatchDeposit = publicClientWebSocket.watchContractEvent({ address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, abi: LedgerVaultAbi.abi, eventName: 'FundsDeposited', onLogs: (logs) => { - console.log('New event received:', logs); + console.log('New deposit event received:', logs); dispatch(setBlockchainEvents(logs)); }, }); - return () => unwatch(); + const unwatchWithdraw = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsWithdrawn', + onLogs: (logs) => { + console.log('New withdraw event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + const unwatchTransfer = publicClientWebSocket.watchContractEvent({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + eventName: 'FundsTransferred', + onLogs: (logs) => { + console.log('New withdraw event received:', logs); + dispatch(setBlockchainEvents(logs)); + }, + }); + return () => { + unwatchDeposit(); + unwatchWithdraw(); + unwatchTransfer(); + }; }, []); useEffect(() => { diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index 7c1dad525..676065ccb 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -2,122 +2,81 @@ import "viem/window"; import {FC, PropsWithChildren, useEffect, useState} from "react"; import Box from "@mui/material/Box"; import Button from "@mui/material/Button"; -import { ConnectWalletClient, ConnectPublicClient } from "@src/clients/viem/walletClient"; -import {formatEther} from "viem"; +import { ConnectWalletClient } from "@src/clients/viem/walletClient"; +import { Address } from 'viem'; import Iconify from "@src/components/iconify"; import Stack from "@mui/material/Stack"; import {formatBalanceNumber} from "@src/utils/format-number.ts"; import TextMaxLine from "@src/components/text-max-line"; import {InputAmount} from "@src/components/input-amount.tsx"; import Divider from "@mui/material/Divider"; +import { useGetMmcContractBalance } from '@src/hooks/use-get-mmc-contract-balance.ts'; +import LoadingButton from '@mui/lab/LoadingButton'; +import DialogActions from '@mui/material/DialogActions'; +import NeonPaper from '@src/sections/publication/NeonPaperContainer.tsx'; +import { useSelector } from 'react-redux'; +import { useSnackbar } from 'notistack'; +import { useDepositMetamask } from "@src/hooks/use-deposit-metamask.ts"; +import { truncateAddress } from '@src/utils/wallet.ts'; + +interface FinanceDepositFromMetamaskProps { + onClose: () => void; +} -const FinanceDepositFromMetamask = () => { - const [address, setAddress] = useState(null); - const [balance, setBalance] = useState(0); +const FinanceDepositFromMetamask: FC = ({ onClose }) => { + const [address, setAddress] = useState
(); + const { balance } = useGetMmcContractBalance(address); + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const sessionData = useSelector((state: any) => state.auth.session); + const { enqueueSnackbar } = useSnackbar(); + const { + deposit: depositWithMetamask, + loading: depositLoading, + error, + } = useDepositMetamask(); - //Verify if the user has a wallet connected reading the address from the wallet client useEffect(() => { - // Call an async function to retrieve the wallet address - (async () => { - // Instantiate a Wallet Client - const walletClient = await ConnectWalletClient(); - // Retrieve the wallet address using the Wallet Client - const [address] = await walletClient.requestAddresses(); - - // Update the state variable with the retrieved address - setAddress(address); - - // If the address is not null, retrieve the balance of the address using the Public Client - if(address){ - // Instantiate a Public Client - const publicClient = ConnectPublicClient(); - // Retrieve the balance of the address using the Public Client - const balance = formatEther(await publicClient.getBalance({ address })); - // Update the state variable with the retrieved balance - setBalance(parseInt(balance)); - } - })() + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + useEffect(() => { + handleConnectMetamask(); }, []); - // Function to handle the button click event - async function handleClick() { + async function handleConnectMetamask() { try { - // Instantiate a Wallet Client and a Public Client const walletClient = await ConnectWalletClient(); - const publicClient = ConnectPublicClient(); - - // Retrieve the wallet address using the Wallet Client - const [address] = await walletClient.requestAddresses(); - // const [address] = await walletClient.getAddresses(); - - // Retrieve the balance of the address using the Public Client - const balance = formatEther(await publicClient.getBalance({ address })); - - // Update the state variables with the retrieved address and balance - setAddress(address); - // @ts-ignore - setBalance(balance); + const [addr] = await walletClient.requestAddresses(); + setAddress(addr); } catch (error) { - // Error handling: Display an alert if the transaction fails alert(`Transaction failed: ${error}`); } } - - // Component to display the wallet status (connected or disconnected) - function Status({ - address, - balance, - }: { - address: string | null; - balance: string; - }) { - if (!address) { - // If no address is provided, display "Disconnected" status - return ( - - - ); + const handleConfirmDeposit = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await depositWithMetamask({ + recipient: sessionData?.address, // o la dirección que quieras + amount + }); + enqueueSnackbar(`The deposit was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Deposit failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid deposit amount", { variant: "warning" }); } + }; - // If an address is provided, display the address and balance - return ( - - - - Connected Wallet - {address} - - - - - - Balance - {formatBalanceNumber(balance as any)} MMC - - - - - - Enter the amount to deposit - - - - - ); - } + const RainbowEffect = loading || depositLoading ? NeonPaper : Box; return ( { alignItems: 'center', justifyContent: 'center', }}> - {/*// @ts-ignore*/} - + { address ? ( + <> + + + Connected Wallet + + {truncateAddress(address)} + + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + Enter the amount to deposit + setAmount(Number(e.target.value))} + /> + + + + + + + + (balance ?? 0)} + loading={loading || depositLoading} + > + Confirm & Deposit + + + + + ) : ( + + )} ); } diff --git a/src/sections/finance/components/finance-deposit-from-smart-account.tsx b/src/sections/finance/components/finance-deposit-from-smart-account.tsx index 58a8f0303..c42fdcb4c 100644 --- a/src/sections/finance/components/finance-deposit-from-smart-account.tsx +++ b/src/sections/finance/components/finance-deposit-from-smart-account.tsx @@ -1,35 +1,117 @@ import Stack from "@mui/material/Stack"; import TextMaxLine from "@src/components/text-max-line"; -import {formatBalanceNumber} from "@src/utils/format-number.ts"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; import Divider from "@mui/material/Divider"; -import {InputAmount} from "@src/components/input-amount.tsx"; -import {BoxRow} from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; -import {useSelector} from "react-redux"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import { useSelector } from "react-redux"; +import { useGetMmcContractBalance } from "@src/hooks/use-get-mmc-contract-balance.ts"; +import Button from "@mui/material/Button"; +import LoadingButton from "@mui/lab/LoadingButton"; +import DialogActions from "@mui/material/DialogActions"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import { FC, useEffect, useState } from 'react'; +import { useDeposit } from "@src/hooks/use-deposit.ts"; +import { truncateAddress } from '@src/utils/wallet.ts'; -const FinanceDepositFromSmartAccount = () => { - const smartWalletBalance = useSelector((state: any) => state.auth.balance); +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceDepositFromSmartAccount: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const sessionData = useSelector((state: any) => state.auth.session); + const { balance } = useGetMmcContractBalance(sessionData?.address); + const { enqueueSnackbar } = useSnackbar(); + const { deposit, loading: depositLoading, error } = useDeposit(); + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + const handleConfirmDeposit = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await deposit({ recipient: sessionData?.address, amount }); + enqueueSnackbar(`The deposit was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Deposit failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid deposit amount", { variant: "warning" }); + } + }; + + const RainbowEffect = loading || depositLoading ? NeonPaper : Box; return ( - - - Balance - {formatBalanceNumber(smartWalletBalance as any)} MMC - - - - - - Enter the amount to deposit - - - + <> + + + Connected Wallet + + {truncateAddress(sessionData?.address)} + + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + Amount to deposit + setAmount(Number(e.target.value))} + /> + + + + + + + (balance ?? 0)} + loading={loading || depositLoading} + > + Confirm & Deposit + + + + ); -} +}; export default FinanceDepositFromSmartAccount; diff --git a/src/sections/finance/components/finance-deposit-modal.tsx b/src/sections/finance/components/finance-deposit-modal.tsx new file mode 100644 index 000000000..15f366fb6 --- /dev/null +++ b/src/sections/finance/components/finance-deposit-modal.tsx @@ -0,0 +1,70 @@ +// REACT IMPORTS +import { FC, useState } from 'react'; + +// MUI IMPORTS +import Tab from "@mui/material/Tab"; +import DialogTitle from "@mui/material/DialogTitle"; +import Tabs, {tabsClasses} from "@mui/material/Tabs"; +import Dialog, {DialogProps} from "@mui/material/Dialog"; + +// LOCAL IMPORTS +import Iconify from '@src/components/iconify'; +import FinanceDepositFromStripe from "@src/sections/finance/components/finance-deposit-from-stripe.tsx"; +import FinanceDepositFromMetamask from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import FinanceDepositFromSmartAccount from "@src/sections/finance/components/finance-deposit-from-smart-account.tsx"; + +// ---------------------------------------------------------------------- + +interface FinanceDepositModalProps extends DialogProps { + onClose: VoidFunction; +} + +// ---------------------------------------------------------------------- + +const TABS = [ + { value: 'fiat', label: 'Stripe', disabled: true, icon: }, + { value: 'metamask', label: 'Metamask', disabled: false, icon: }, + { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, +]; + +// ---------------------------------------------------------------------- + +export const FinanceDepositModal: FC = ({ open, onClose }) => { + const [currentTab, setCurrentTab] = useState('metamask'); + + const handleChangeTab = (_event: any, newValue: any) => { + setCurrentTab(newValue); + }; + + return ( + + Deposit to your vault balance + + + {TABS.map((tab) => ( + + ))} + + + {currentTab === 'fiat' && ()} + {currentTab === 'metamask' && ()} + {currentTab === 'smartAccount' && ()} + + ); +} diff --git a/src/sections/finance/components/finance-quick-actions.tsx b/src/sections/finance/components/finance-quick-actions.tsx index 74b34f58c..cceb64859 100644 --- a/src/sections/finance/components/finance-quick-actions.tsx +++ b/src/sections/finance/components/finance-quick-actions.tsx @@ -1,34 +1,73 @@ // @mui import Stack from '@mui/material/Stack'; import { CardProps } from '@mui/material/Card'; +import Button from "@mui/material/Button"; // theme import { bgGradient } from '@src/theme/css'; // components import Iconify from '@src/components/iconify'; -import Button from "@mui/material/Button"; - import FinanceExternalWallet from './finance-external-wallet.tsx'; import SeoIllustration from "@src/assets/illustrations/seo-illustration.tsx"; // ---------------------------------------------------------------------- -interface Props extends CardProps { - connectedWalllet: boolean; - title: string; - info: string; - balance: number; -} +// Import necessary hooks and clients +import { useState, useEffect, FC } from 'react'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import { useGetVaultBalance } from '@src/hooks/use-get-vault-balance'; // Ensure correct path +import { useSnackbar } from 'notistack'; + +const FinanceQuickActions: FC = ({ sx, ...other }) => { + const [connectedWallet, setConnectedWallet] = useState(false); + const [walletAddress, setWalletAddress] = useState(null); + const { balance } = useGetVaultBalance(walletAddress as any); + const { enqueueSnackbar } = useSnackbar(); + + // Function to connect to MetaMask + const connectWallet = async () => { + try { + const walletClient = await ConnectWalletClient(); + const [address] = await walletClient.requestAddresses(); + if (address) { + setWalletAddress(address); + setConnectedWallet(true); + enqueueSnackbar('MetaMask connected successfully!', { variant: 'success', autoHideDuration: 3000 }); + } + } catch (error: any) { + console.error('Error connecting to wallet:', error); + enqueueSnackbar(`Failed to connect wallet: ${error.message}`, { variant: 'error', autoHideDuration: 5000 }); + } + }; -export default function FinanceQuickActions({ - connectedWalllet, - title, - balance, - info, - sx, - ...other -}: Props) { + // Function to handle wallet changes + const handleChangeWallet = async () => { + }; + + // Automatically attempt to connect wallet on component mount + useEffect(() => { + (async () => { + try { + const walletClient = await ConnectWalletClient(); + const [address] = await walletClient.requestAddresses(); + if (address) { + setWalletAddress(address); + setConnectedWallet(true); + } + } catch (error) { + console.log('Wallet not connected'); + } + })(); + }, []); + + // Determine title and info based on connection status + const title = connectedWallet ? "Balance's Vault Metamask." : 'Connect external wallet'; + const info = connectedWallet + ? 'MetaMask connected. If you wish to change, click the button below.' + : 'You can connect your MetaMask wallet to view your vault balance.'; + + // Format the balance for display const totalOptions = { minimumFractionDigits: 1, maximumFractionDigits: 3 }; - const formattedTotal = new Intl.NumberFormat('en-US', totalOptions).format(balance); + const formattedTotal = balance !== null ? new Intl.NumberFormat('en-US', totalOptions).format(balance) : '0'; return ( - } - action={ - <> - { - connectedWalllet ? () : () - } - - } - /> + } + action={ + <> + {connectedWallet ? ( + + ) : ( + + )} + + } + /> - ) -} + ); +}; + +export default FinanceQuickActions; diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx index 6b38b127e..b33028ac8 100644 --- a/src/sections/finance/components/finance-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -30,6 +30,7 @@ import {useNotifications} from "@src/hooks/use-notifications.ts"; import {useSnackbar} from "notistack"; import { InputAmount, InputAmountProps } from '@src/components/input-amount.tsx'; import { ethers } from 'ethers'; +import { useTransfer } from '@src/hooks/use-transfer.ts'; // ---------------------------------------------------------------------- @@ -345,6 +346,7 @@ interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { contactInfo?: Profile; address?: string; onClose: VoidFunction; + amount: number } function ConfirmTransferDialog({ @@ -359,14 +361,16 @@ function ConfirmTransferDialog({ const { sendNotification } = useNotifications(); const { enqueueSnackbar } = useSnackbar(); const [message, setMessage] = useState(''); - const [loading, setLoading] = useState(false); const isSame = contactInfo?.ownedBy?.address === address; const defaultImage = `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${address}`; const defaultName = 'Destination wallet'; + const { transfer, loading: transferLoading, error } = useTransfer(); - async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { - setLoading(true); + useEffect(() => { + if (error) enqueueSnackbar(error.message, { variant: 'error' }); + }, [error]); + async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { const { error } = await supabase .from('transactions') .insert([{ receiver_id, sender_id, payload }]); @@ -379,34 +383,33 @@ function ConfirmTransferDialog({ } const handleConfirmTransfer = async () => { - setLoading(true); - const senderId = sessionData?.profile?.id; + await transfer({ amount, recipient: address ?? '' }); + const senderId = sessionData?.profile?.id ?? address; const notificationPayload = generatePayload('TRANSFER', { - id: contactInfo?.id ?? '', - displayName: contactInfo?.metadata?.displayName ?? 'no name', - avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri, + id: isSame ? (contactInfo?.id ?? '') : (address ?? ''), + displayName: isSame ? (contactInfo?.metadata?.displayName ?? 'no name') : 'External wallet', + avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri ?? '', }, { - rawDescription: `${sessionData?.profile?.metadata?.displayName} sent you ${amount} MMC`, + rawDescription: `${sessionData?.profile?.metadata?.displayName ?? address} sent you ${amount} MMC`, message, }); - await storeTransactionInSupabase(contactInfo?.id, senderId, { - address: contactInfo?.ownedBy?.address, + await storeTransactionInSupabase(contactInfo?.id ?? address, senderId, { + address: contactInfo?.ownedBy?.address ?? address, amount, message, ...notificationPayload, }); - await sendNotification(contactInfo?.id ?? '', sessionData?.profile?.id, notificationPayload); + await sendNotification(contactInfo?.id ?? address ?? '', sessionData?.profile?.id, notificationPayload); - enqueueSnackbar('The transfer has been sent to ' + contactInfo?.metadata?.displayName , { variant: 'success' }) + enqueueSnackbar('The transfer has been sent to ' + (isSame ? contactInfo?.metadata?.displayName : truncateAddress(address ?? '')) , { variant: 'success' }) - setLoading(false); onClose(); }; - const RainbowEffect = loading ? NeonPaper : Box; + const RainbowEffect = transferLoading ? NeonPaper : Box; return ( Transfer to @@ -445,8 +448,8 @@ function ConfirmTransferDialog({ variant="contained" sx={{ backgroundColor: '#fff' }} onClick={handleConfirmTransfer} - disabled={loading} - loading={loading} + disabled={transferLoading} + loading={transferLoading} > Confirm & Transfer diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx index 4e579a159..d4efd0d83 100644 --- a/src/sections/finance/components/finance-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -1,34 +1,27 @@ -import { ApexOptions } from 'apexcharts'; -// @mui -import { useTheme, alpha } from '@mui/material/styles'; +// MUI IMPORTS import Box from '@mui/material/Box'; import Stack from '@mui/material/Stack'; +import Button from "@mui/material/Button"; import { CardProps } from '@mui/material/Card'; import Typography from '@mui/material/Typography'; -// utils -import { fCurrency, fPercent } from '@src/utils/format-number'; -// theme -import { ColorSchema } from '@src/theme/palette'; +import { useTheme, alpha } from '@mui/material/styles'; + +// CHARTS IMPORTS +import { ApexOptions } from 'apexcharts'; + +// LOCAL IMPORTS import { bgGradient } from '@src/theme/css'; -// components import Iconify from '@src/components/iconify'; -import Chart, { useChart } from '@src/components/chart'; -import Button from "@mui/material/Button"; +import { ColorSchema } from '@src/theme/palette'; import {useBoolean} from "@src/hooks/use-boolean.ts"; -import Dialog, {DialogProps} from "@mui/material/Dialog"; -import {useSnackbar} from "notistack"; -import {useState} from "react"; -import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; - -import DialogTitle from "@mui/material/DialogTitle"; +import Chart, { useChart } from '@src/components/chart'; +import { fCurrency, fPercent } from '@src/utils/format-number'; +import { FinanceDepositModal } from '@src/sections/finance/components/finance-deposit-modal.tsx'; +import { useWithdraw } from '@src/hooks/use-withdraw.ts'; +import LoadingButton from '@mui/lab/LoadingButton'; +import { useEffect } from 'react'; +import { useSnackbar } from 'notistack'; -import DialogActions from "@mui/material/DialogActions"; -import LoadingButton from "@mui/lab/LoadingButton"; -import Tabs, {tabsClasses} from "@mui/material/Tabs"; -import Tab from "@mui/material/Tab"; -import FinanceDepositFromStripe from "@src/sections/finance/components/finance-deposit-from-stripe.tsx"; -import FinanceDepositFromMetamask from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; -import FinanceDepositFromSmartAccount from "@src/sections/finance/components/finance-deposit-from-smart-account.tsx"; // ---------------------------------------------------------------------- interface Props extends CardProps { @@ -46,6 +39,8 @@ interface Props extends CardProps { }; } +// ---------------------------------------------------------------------- + export default function FinanceWidgetSummary({ title, total, @@ -57,12 +52,14 @@ export default function FinanceWidgetSummary({ ...other }: Props) { const confirmDeposit = useBoolean(); - - //const confirmWithdraw = useBoolean(); - const theme = useTheme(); - const { series, options } = chart; + const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const { enqueueSnackbar } = useSnackbar(); + + useEffect(() => { + if (error) enqueueSnackbar(error.message, { variant: 'error' }); + }, [error]); const chartOptions = useChart({ colors: [theme.palette[color].dark], @@ -114,6 +111,10 @@ export default function FinanceWidgetSummary({ confirmDeposit.onTrue?.(); }; + const handleWithdrawal = () => { + withdraw({ amount: 10, recipient: '0x037f2b49721E34296fBD8F9E7e9cc6D5F9ecE7b4' }); + }; + return ( - + @@ -196,98 +199,10 @@ export default function FinanceWidgetSummary({ - - ) } - - -interface ConfirmTransferDialogProps extends DialogProps { - onClose: VoidFunction; -} - -const TABS = [ - { value: 'fiat', label: 'Stripe', disabled: true, icon: }, - { value: 'metamask', label: 'Metamask', disabled: false, icon: }, - { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, -]; - -function ConfirmTransferDialog({ - open, - onClose - }: ConfirmTransferDialogProps) { - const { enqueueSnackbar } = useSnackbar(); - const [loading, setLoading] = useState(false); - - const [currentTab, setCurrentTab] = useState('metamask'); - - const handleChangeTab = (_event: any, newValue: any) => { - setCurrentTab(newValue); - }; - - - const handleConfirmTransfer = async () => { - setLoading(true); - setTimeout(() => { - // Notification for the user from wallet to wallet - enqueueSnackbar(`The deposit was successful`, { variant: 'success' }); - onClose(); - setLoading(false); - }, 2000); - }; - - const RainbowEffect = loading ? NeonPaper : Box; - - return ( - - Deposit to your vault balance - - - {TABS.map((tab) => ( - - ))} - - - - {currentTab === 'fiat' && ()} - {currentTab === 'metamask' && ()} - {currentTab === 'smartAccount' && ()} - - - - - - - Confirm & Deposit - - - - - ); -} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 3e55e99cb..8368363df 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -11,7 +11,6 @@ import FinanceBalanceStatistics from '@src/sections/finance/components/finance-b import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; -import FinanceTransferAccounts from "@src/sections/finance/components/finance-transfer-accounts.tsx"; import {TableRowTransactionType, useTransactionData} from "@src/hooks/use-transaction-data"; import { groupedTransactionData, @@ -25,7 +24,6 @@ import FinanceQuickActions from "@src/sections/finance/components/finance-quick- // ---------------------------------------------------------------------- export default function OverviewBankingView() { - const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); const sessionData = useSelector((state: any) => state.auth.session); @@ -45,8 +43,6 @@ export default function OverviewBankingView() { const processedTransactions: TableRowTransactionType[] = processTransactionData(transactionsRawData); - const externalWalletConnected = false; - return ( - {/**/} - - + @@ -95,7 +84,6 @@ export default function OverviewBankingView() { Recent Transactions - From dee77d94eaa6c4a667676647f2b66d0a789faf64 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 22:40:08 -0600 Subject: [PATCH 43/71] feat(finance): add wallet switching functionality - Updated `finance-quick-actions.tsx` to allow users to switch wallets via MetaMask. - Added handling for wallet permissions and account requests with appropriate error notifications. - Enhanced wallet connection initialization for better user experience. --- .../components/finance-quick-actions.tsx | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/sections/finance/components/finance-quick-actions.tsx b/src/sections/finance/components/finance-quick-actions.tsx index cceb64859..152a9ddd3 100644 --- a/src/sections/finance/components/finance-quick-actions.tsx +++ b/src/sections/finance/components/finance-quick-actions.tsx @@ -1,3 +1,4 @@ +import "viem/window"; // @mui import Stack from '@mui/material/Stack'; import { CardProps } from '@mui/material/Card'; @@ -39,9 +40,24 @@ const FinanceQuickActions: FC = ({ sx, ...other }) => { } }; - // Function to handle wallet changes + // Function to handle wallet changes (User can interchange wallets using MetaMask extension) const handleChangeWallet = async () => { - }; + setConnectedWallet(false); + + window?.ethereum?.request({ + method: "wallet_requestPermissions", + params: [{ + eth_accounts: {} + }] + }).then(() => window?.ethereum?.request({method: 'eth_requestAccounts'}).then((accounts: string[]) => { + setWalletAddress(accounts[0]); + setConnectedWallet(true); + })).catch((error: any) => { + console.error('Error changing wallet:', error); + enqueueSnackbar(`Failed to change wallet: ${error.message}`, {variant: 'error', autoHideDuration: 5000}); + }) + } + // Automatically attempt to connect wallet on component mount useEffect(() => { From 690c9aecf87ecf6245fde57ea6946280027de625 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 22:49:35 -0600 Subject: [PATCH 44/71] fix(finance): adjust layout spacing for responsive design - Updated `Stack` direction in `src/sections/finance/index.tsx` to use `lg` and `xlg` breakpoints instead of `xs` and `sm`. - Adjusted `spacing` property to be responsive, improving layout flexibility across screen sizes. --- src/sections/finance/index.tsx | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 8368363df..333fca3bb 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -53,7 +53,10 @@ export default function OverviewBankingView() { > - + Date: Mon, 30 Dec 2024 23:12:42 -0600 Subject: [PATCH 45/71] feat: export isValidAddress function from finance-quick-transfer - Made `isValidAddress` function exportable in `src/sections/finance/components/finance-quick-transfer.tsx`. - This allows the function to be reused in other modules and components. --- src/sections/finance/components/finance-quick-transfer.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx index b33028ac8..478a4a768 100644 --- a/src/sections/finance/components/finance-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -50,7 +50,7 @@ interface Props extends CardProps { // ---------------------------------------------------------------------- -const isValidAddress = (address: string): boolean => { +export const isValidAddress = (address: string): boolean => { return ethers.isAddress(address); }; From 535ed7d4c2bfc78d8358d28bbe9958b6bf20a48f Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 23:12:55 -0600 Subject: [PATCH 46/71] feat: integrate withdraw modal in finance-widget-summary - Added `FinanceWithdrawModal` component to handle withdrawal functionality. - Replaced direct withdrawal call with a modal trigger using `confirmWithdraw`. - Updated button click handler to open the withdrawal modal instead of performing a withdrawal directly. - Introduced `handleFinishWithdraw` for closing the modal after withdrawal operations. --- .../components/finance-widget-summary.tsx | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx index d4efd0d83..36c2b7f27 100644 --- a/src/sections/finance/components/finance-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -21,6 +21,7 @@ import { useWithdraw } from '@src/hooks/use-withdraw.ts'; import LoadingButton from '@mui/lab/LoadingButton'; import { useEffect } from 'react'; import { useSnackbar } from 'notistack'; +import {FinanceWithdrawModal} from "@src/sections/finance/components/finance-withdraw-modal.tsx"; // ---------------------------------------------------------------------- @@ -52,9 +53,10 @@ export default function FinanceWidgetSummary({ ...other }: Props) { const confirmDeposit = useBoolean(); + const confirmWithdraw = useBoolean(); const theme = useTheme(); const { series, options } = chart; - const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const { loading: withdrawLoading, error } = useWithdraw(); const { enqueueSnackbar } = useSnackbar(); useEffect(() => { @@ -107,14 +109,23 @@ export default function FinanceWidgetSummary({ confirmDeposit.onFalse?.(); } + const handleFinishWithdraw = () => { + confirmWithdraw.onFalse?.(); + } + const handleDepositOpenModal = () => { confirmDeposit.onTrue?.(); }; - const handleWithdrawal = () => { - withdraw({ amount: 10, recipient: '0x037f2b49721E34296fBD8F9E7e9cc6D5F9ecE7b4' }); + const handleWithdrawOpenModal = () => { + confirmWithdraw.onTrue?.(); }; + + /*const handleWithdrawal = () => { + withdraw({ amount: 10, recipient: '0x037f2b49721E34296fBD8F9E7e9cc6D5F9ecE7b4' }); + };*/ + return ( } loading={withdrawLoading} - onClick={handleWithdrawal} + onClick={handleWithdrawOpenModal} > Withdraw @@ -203,6 +214,11 @@ export default function FinanceWidgetSummary({ open={confirmDeposit.value} onClose={handleFinishDeposit} /> + + ) } From c38c37290138ce2fbecc10401ca700803136c2b2 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 23:13:06 -0600 Subject: [PATCH 47/71] feat(finance): add withdraw functionality from smart account - Introduced `FinanceWithdrawFromSmartAccount` component in `src/sections/finance/components/finance-withdraw-from-smart-account.tsx`. - Implements input for withdrawal amount and recipient wallet address with validation for address format. - Handles withdrawal confirmation, loading states, and error/success feedback with user notifications. - Displays account balance and ensures withdrawal amount doesn't exceed available balance. --- .../finance-withdraw-from-smart-account.tsx | 132 ++++++++++++++++++ 1 file changed, 132 insertions(+) create mode 100644 src/sections/finance/components/finance-withdraw-from-smart-account.tsx diff --git a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx new file mode 100644 index 000000000..fc701fd72 --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx @@ -0,0 +1,132 @@ +import Stack from "@mui/material/Stack"; +import TextMaxLine from "@src/components/text-max-line"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import Button from "@mui/material/Button"; +import LoadingButton from "@mui/lab/LoadingButton"; +import DialogActions from "@mui/material/DialogActions"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import React, { FC, useEffect, useState } from 'react'; +import {useWithdraw} from "@src/hooks/use-withdraw.ts"; +import {useGetBalance} from "@src/hooks/use-get-balance.ts"; +import TextField from "@mui/material/TextField"; +import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; + +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceWithdrawFromSmartAccount: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const { balance } = useGetBalance(); + const { enqueueSnackbar } = useSnackbar(); + const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const [destinationAddress, setDestinationAddress] = useState(''); + const [addressError, setAddressError] = useState(false); + + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + const handleConfirmWithdraw = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + withdraw({ amount: amount, recipient:destinationAddress }); + enqueueSnackbar(`The withdraw was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Withdraw failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid withdraw amount", { variant: "warning" }); + } + }; + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setDestinationAddress(value); + + + if (isValidAddress(value)) { + setAddressError(false); + } else { + setAddressError(true); + } + }; + + const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; + + return ( + <> + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + + Amount to withdraw + setAmount(Number(e.target.value))} + /> + + + + + + + + (balance ?? 0)} + loading={loading || withdrawLoading} + > + Confirm & Withdraw + + + + + ); +}; + +export default FinanceWithdrawFromSmartAccount; From 844c95aef188465d01691ca14c0992abba579fff Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 23:13:19 -0600 Subject: [PATCH 48/71] feat(finance): add withdraw modal for vault transactions - Introduce `FinanceWithdrawModal` component in `finance-withdraw-modal.tsx`. - Implement modal dialog using MUI components for withdrawal actions. - Include `FinanceWithdrawFromSmartAccount` for smart account interactions. --- .../components/finance-withdraw-modal.tsx | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/sections/finance/components/finance-withdraw-modal.tsx diff --git a/src/sections/finance/components/finance-withdraw-modal.tsx b/src/sections/finance/components/finance-withdraw-modal.tsx new file mode 100644 index 000000000..6c14a26b7 --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-modal.tsx @@ -0,0 +1,29 @@ +// REACT IMPORTS +import { FC } from 'react'; + +// MUI IMPORTS + +import DialogTitle from "@mui/material/DialogTitle"; + +import Dialog, {DialogProps} from "@mui/material/Dialog"; + +// LOCAL IMPORTS + +import FinanceWithdrawFromSmartAccount from "@src/sections/finance/components/finance-withdraw-from-smart-account"; + +// ---------------------------------------------------------------------- + +interface FinanceWitdrawModalProps extends DialogProps { + onClose: VoidFunction; +} + +// ---------------------------------------------------------------------- + +export const FinanceWithdrawModal: FC = ({ open, onClose }) => { + return ( + + Withdraw from your vault balance + + + ); +} From 57bf5e0809222adeda977aa52bffd0b5bed4bb2a Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Mon, 30 Dec 2024 23:20:17 -0600 Subject: [PATCH 49/71] fix(finance): add missing await in withdraw function call - Updated `finance-withdraw-from-smart-account.tsx` by adding a missing `await` to the `withdraw` function call. - This ensures proper handling of async operations and prevents potential issues or unintended behavior during withdrawal processing. --- .../finance/components/finance-withdraw-from-smart-account.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx index fc701fd72..491b59b95 100644 --- a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx +++ b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx @@ -40,7 +40,7 @@ const FinanceWithdrawFromSmartAccount: FC = if (amount > 0 && amount <= (balance ?? 0)) { try { setLoading(true); - withdraw({ amount: amount, recipient:destinationAddress }); + await withdraw({amount: amount, recipient: destinationAddress}); enqueueSnackbar(`The withdraw was successful`, { variant: "success" }); onClose(); } catch (err: any) { From d9a2dcf80498a899020891d1cc1d8d5b5a5f99b0 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 08:40:25 -0600 Subject: [PATCH 50/71] feat: enhance address validation and filtering logic - `finance-quick-transfer.tsx`: - Introduced a new `addressFiltered` state to handle filtered address logic. - Added `toggleRainbow` dispatch calls to manage UI changes during address validation. - Updated logic to verify and filter wallet addresses in lists dynamically. - Implemented a timeout mechanism for smoother toggleRainbow operation. --- .../components/finance-quick-transfer.tsx | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx index 478a4a768..63402037c 100644 --- a/src/sections/finance/components/finance-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -19,7 +19,7 @@ import { useBoolean } from '@src/hooks/use-boolean'; // components import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; import {useDispatch, useSelector} from "react-redux"; -import { storeAddress } from '@redux/address'; +import {storeAddress, toggleRainbow} from '@redux/address'; import {truncateAddress} from "@src/utils/wallet.ts"; import {Profile} from "@lens-protocol/api-bindings"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; @@ -65,6 +65,7 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth const [walletAddress, setWalletAddress] = useState(storedAddress.address ?? ''); const [addressError, setAddressError] = useState(false); const [currentIndex, setCurrentIndex] = useState(0); + const [addressFiltered, setAddressFiltered] = useState(false); const MAX_AMOUNT = balance; const carousel = useCarousel({ centerMode: true, @@ -131,10 +132,16 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth dispatch(storeAddress({ address: value, profileId: getContactInfo?.id ?? ''})) if (isValidAddress(value)) { + setAddressFiltered(true); + dispatch(toggleRainbow()); setAddressError(false); } else { setAddressError(true); } + + setTimeout(() => { + dispatch(toggleRainbow()); + },1400) }; const handleChangeSlider = useCallback((_event: Event, newValue: number | number[]) => { @@ -166,12 +173,26 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth if (index !== -1) { setCurrentIndex(index ?? 0) } + + // Verify is only the address is stored(changed) + if (addressFiltered) { + //find in list only filtering the address + const profile = list?.findIndex((profile) => profile.ownedBy?.address === storedAddress?.address); + + // If the address is found, set the current index + if (profile !== -1) { + setCurrentIndex(profile ?? 0) + } + + // Reset the filter + setAddressFiltered(false); + } + }, [storedAddress]); useEffect(() => { if (!showRainbow) { - // carousel.setCurrentIndex(currentIndex); if (carousel.carouselRef.current) { carousel.carouselRef.current.slickGoTo(currentIndex); } From 46454046ef13065bdae6fb5e018286b7583269a1 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 09:26:36 -0600 Subject: [PATCH 51/71] fix: improve modal and form layout styling - **modal.tsx** - Adjusted modal height property to maxHeight for better responsiveness. - Added overflow: auto to enable scrolling for content exceeding modal height. - **profile-form-view.tsx** - Added padding-top (pt: 1) to improve spacing in the form layout. --- src/components/login-modal/modal.tsx | 3 ++- src/components/login-modal/profile-form-view.tsx | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/login-modal/modal.tsx b/src/components/login-modal/modal.tsx index e93cf3ffa..2b2545ecc 100644 --- a/src/components/login-modal/modal.tsx +++ b/src/components/login-modal/modal.tsx @@ -122,12 +122,13 @@ export const LoginModal: React.FC = ({ open, onClose }) => { xs: '90%', sm: 500, }, - height: '85%', + maxHeight: '85%', bgcolor: loading ? 'transparent' : 'background.paper', borderRadius: 2, boxShadow: loading ? 0 : 24, outline: 'none', transition: 'all 0.5s ease-in-out', + overflow: 'auto' }} > {loading ? ( diff --git a/src/components/login-modal/profile-form-view.tsx b/src/components/login-modal/profile-form-view.tsx index f98bea4ce..6b1751c3a 100644 --- a/src/components/login-modal/profile-form-view.tsx +++ b/src/components/login-modal/profile-form-view.tsx @@ -331,7 +331,7 @@ export const ProfileFormView: React.FC = ({ sx={{ display: 'none' }} /> - + {/* Background Image */} Date: Tue, 31 Dec 2024 10:07:00 -0600 Subject: [PATCH 52/71] feat(finance): modularize quick transfer modal into dedicated component - Added `finance-quick-transfer-modal.tsx` as a new file to encapsulate the Quick Transfer Modal functionality. - Implemented state management, transfer logic, and UI rendering in the new component. - Removed the inlined modal logic from `finance-quick-transfer.tsx` to improve modularity and readability. - Updated `finance-quick-transfer.tsx` to utilize the new `FinanceQuickTransferModal` component. This change simplifies the codebase by isolating the modal logic and maintains feature parity with the previous implementation. --- .../finance-quick-transfer-modal.tsx | 144 ++++++++++++++++++ .../components/finance-quick-transfer.tsx | 138 +---------------- 2 files changed, 148 insertions(+), 134 deletions(-) create mode 100644 src/sections/finance/components/finance-quick-transfer-modal.tsx diff --git a/src/sections/finance/components/finance-quick-transfer-modal.tsx b/src/sections/finance/components/finance-quick-transfer-modal.tsx new file mode 100644 index 000000000..4a2f17814 --- /dev/null +++ b/src/sections/finance/components/finance-quick-transfer-modal.tsx @@ -0,0 +1,144 @@ +import { useState, useEffect } from 'react'; +// @mui +import Stack from '@mui/material/Stack'; +import Button from '@mui/material/Button'; +import Avatar from '@mui/material/Avatar'; +import TextField from '@mui/material/TextField'; +import Box from '@mui/material/Box'; +import DialogTitle from '@mui/material/DialogTitle'; +import ListItemText from '@mui/material/ListItemText'; +import DialogActions from '@mui/material/DialogActions'; +import Dialog, { DialogProps } from '@mui/material/Dialog'; +// hooks +import { useSelector} from "react-redux"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import {Profile} from "@lens-protocol/api-bindings"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import LoadingButton from "@mui/lab/LoadingButton"; +import { supabase } from '@src/utils/supabase'; +import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; +import {useNotifications} from "@src/hooks/use-notifications.ts"; +import {useSnackbar} from "notistack"; +import { InputAmountProps } from '@src/components/input-amount.tsx'; + +import { useTransfer } from '@src/hooks/use-transfer.ts'; +type TConfirmTransferDialogProps = InputAmountProps & DialogProps; + +interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { + contactInfo?: Profile; + address?: string; + onClose: VoidFunction; + amount: number +} + +function FinanceQuickTransferModal({ + open, + amount, + contactInfo, + onClose, + address +}: ConfirmTransferDialogProps) { + const sessionData = useSelector((state: any) => state.auth.session); + const { generatePayload } = useNotificationPayload(sessionData); + const { sendNotification } = useNotifications(); + const { enqueueSnackbar } = useSnackbar(); + const [message, setMessage] = useState(''); + const isSame = contactInfo?.ownedBy?.address === address; + const defaultImage = `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${address}`; + const defaultName = 'Destination wallet'; + const { transfer, loading: transferLoading, error } = useTransfer(); + + useEffect(() => { + if (error) enqueueSnackbar(error.message, { variant: 'error' }); + }, [error]); + + async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { + const { error } = await supabase + .from('transactions') + .insert([{ receiver_id, sender_id, payload }]); + + if (error) { + console.error('Error storing transaction:', error); + } else { + console.log('Transaction stored successfully'); + } + } + + const handleConfirmTransfer = async () => { + await transfer({ amount, recipient: address ?? '' }); + + const senderId = sessionData?.profile?.id ?? address; + const notificationPayload = generatePayload('TRANSFER', { + id: isSame ? (contactInfo?.id ?? '') : (address ?? ''), + displayName: isSame ? (contactInfo?.metadata?.displayName ?? 'no name') : 'External wallet', + avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri ?? '', + }, { + rawDescription: `${sessionData?.profile?.metadata?.displayName ?? address} sent you ${amount} MMC`, + message, + }); + + await storeTransactionInSupabase(contactInfo?.id ?? address, senderId, { + address: contactInfo?.ownedBy?.address ?? address, + amount, + message, + ...notificationPayload, + }); + + await sendNotification(contactInfo?.id ?? address ?? '', sessionData?.profile?.id, notificationPayload); + + enqueueSnackbar('The transfer has been sent to ' + (isSame ? contactInfo?.metadata?.displayName : truncateAddress(address ?? '')) , { variant: 'success' }) + + onClose(); + }; + + const RainbowEffect = transferLoading ? NeonPaper : Box; + return ( + + Transfer to + + + + + + + + + + + + + setMessage(e.target.value)} + fullWidth multiline rows={3} placeholder="Write a message..." /> + + + + + + + + Confirm & Transfer + + + + + ); +} + +export default FinanceQuickTransferModal; diff --git a/src/sections/finance/components/finance-quick-transfer.tsx b/src/sections/finance/components/finance-quick-transfer.tsx index 63402037c..a2b983fb3 100644 --- a/src/sections/finance/components/finance-quick-transfer.tsx +++ b/src/sections/finance/components/finance-quick-transfer.tsx @@ -9,28 +9,19 @@ import Tooltip from '@mui/material/Tooltip'; import TextField from '@mui/material/TextField'; import Box from '@mui/material/Box'; import CardHeader from '@mui/material/CardHeader'; -import DialogTitle from '@mui/material/DialogTitle'; import { CardProps } from '@mui/material/Card'; -import ListItemText from '@mui/material/ListItemText'; -import DialogActions from '@mui/material/DialogActions'; -import Dialog, { DialogProps } from '@mui/material/Dialog'; + // hooks import { useBoolean } from '@src/hooks/use-boolean'; // components import Carousel, { CarouselArrows, useCarousel } from '@src/components/carousel'; import {useDispatch, useSelector} from "react-redux"; import {storeAddress, toggleRainbow} from '@redux/address'; -import {truncateAddress} from "@src/utils/wallet.ts"; import {Profile} from "@lens-protocol/api-bindings"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; -import LoadingButton from "@mui/lab/LoadingButton"; -import { supabase } from '@src/utils/supabase'; -import {useNotificationPayload} from "@src/hooks/use-notification-payload.ts"; -import {useNotifications} from "@src/hooks/use-notifications.ts"; -import {useSnackbar} from "notistack"; -import { InputAmount, InputAmountProps } from '@src/components/input-amount.tsx'; +import { InputAmount } from '@src/components/input-amount.tsx'; import { ethers } from 'ethers'; -import { useTransfer } from '@src/hooks/use-transfer.ts'; +import FinanceQuickTransferModal from "@src/sections/finance/components/finance-quick-transfer-modal.tsx"; // ---------------------------------------------------------------------- @@ -345,7 +336,7 @@ export default function FinanceQuickTransfer({ title, subheader,sx, list, ...oth - ); } - -// ---------------------------------------------------------------------- - -type TConfirmTransferDialogProps = InputAmountProps & DialogProps; - -interface ConfirmTransferDialogProps extends TConfirmTransferDialogProps { - contactInfo?: Profile; - address?: string; - onClose: VoidFunction; - amount: number -} - -function ConfirmTransferDialog({ - open, - amount, - contactInfo, - onClose, - address -}: ConfirmTransferDialogProps) { - const sessionData = useSelector((state: any) => state.auth.session); - const { generatePayload } = useNotificationPayload(sessionData); - const { sendNotification } = useNotifications(); - const { enqueueSnackbar } = useSnackbar(); - const [message, setMessage] = useState(''); - const isSame = contactInfo?.ownedBy?.address === address; - const defaultImage = `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${address}`; - const defaultName = 'Destination wallet'; - const { transfer, loading: transferLoading, error } = useTransfer(); - - useEffect(() => { - if (error) enqueueSnackbar(error.message, { variant: 'error' }); - }, [error]); - - async function storeTransactionInSupabase(receiver_id?: string, sender_id?: string, payload?: any) { - const { error } = await supabase - .from('transactions') - .insert([{ receiver_id, sender_id, payload }]); - - if (error) { - console.error('Error storing transaction:', error); - } else { - console.log('Transaction stored successfully'); - } - } - - const handleConfirmTransfer = async () => { - await transfer({ amount, recipient: address ?? '' }); - - const senderId = sessionData?.profile?.id ?? address; - const notificationPayload = generatePayload('TRANSFER', { - id: isSame ? (contactInfo?.id ?? '') : (address ?? ''), - displayName: isSame ? (contactInfo?.metadata?.displayName ?? 'no name') : 'External wallet', - avatar: (contactInfo?.metadata?.picture as any)?.optimized?.uri ?? '', - }, { - rawDescription: `${sessionData?.profile?.metadata?.displayName ?? address} sent you ${amount} MMC`, - message, - }); - - await storeTransactionInSupabase(contactInfo?.id ?? address, senderId, { - address: contactInfo?.ownedBy?.address ?? address, - amount, - message, - ...notificationPayload, - }); - - await sendNotification(contactInfo?.id ?? address ?? '', sessionData?.profile?.id, notificationPayload); - - enqueueSnackbar('The transfer has been sent to ' + (isSame ? contactInfo?.metadata?.displayName : truncateAddress(address ?? '')) , { variant: 'success' }) - - onClose(); - }; - - const RainbowEffect = transferLoading ? NeonPaper : Box; - return ( - - Transfer to - - - - - - - - - - - - - setMessage(e.target.value)} - fullWidth multiline rows={3} placeholder="Write a message..." /> - - - - - - - - Confirm & Transfer - - - - - ); -} From 25ad576524bc3a745c2995e51e74ad7969fa8947 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 10:10:58 -0600 Subject: [PATCH 53/71] feat: added use withdraw with metamask --- src/components/should-login/should-login.tsx | 10 +- src/hooks/use-withdraw-metamask.ts | 98 ++++++++++++++++++++ 2 files changed, 103 insertions(+), 5 deletions(-) create mode 100644 src/hooks/use-withdraw-metamask.ts diff --git a/src/components/should-login/should-login.tsx b/src/components/should-login/should-login.tsx index c20964a20..59d0c5947 100644 --- a/src/components/should-login/should-login.tsx +++ b/src/components/should-login/should-login.tsx @@ -13,7 +13,7 @@ type Props = { subtitle: string; } -const notLoggedIn: FC = ({icon, subtitle} ) => { +const NotLoggedIn: FC = ({icon, subtitle} ) => { const dispatch = useDispatch(); const sessionData = useSelector((state: any) => state.auth.session); @@ -42,8 +42,8 @@ const notLoggedIn: FC = ({icon, subtitle} ) => { mb: 2, color: COLORS.GRAY_LIGHT, }} /> - Please log in - + Sign in required + {subtitle} ); } -export default notLoggedIn; +export default NotLoggedIn; diff --git a/src/hooks/use-withdraw-metamask.ts b/src/hooks/use-withdraw-metamask.ts new file mode 100644 index 000000000..7eed4aeda --- /dev/null +++ b/src/hooks/use-withdraw-metamask.ts @@ -0,0 +1,98 @@ +import { useState } from 'react'; +import { parseUnits } from 'viem'; +import { ConnectWalletClient } from '@src/clients/viem/walletClient'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { GLOBAL_CONSTANTS } from '@src/config-global'; +import { publicClient } from '@src/clients/viem/publicClient'; +import { useSnackbar } from 'notistack'; + +interface VaultError { + message: string; + code?: number; + [key: string]: any; +} + +interface WithdrawParams { + recipient: string; // Address receiving the funds + amount: number; // Amount in "human" format (not in Wei) +} + +interface UseWithdrawHook { + data?: any; + withdraw: (params: WithdrawParams) => Promise; + loading: boolean; + error?: VaultError | null; +} + +/** + * Hook that allows the withdrawal flow to be made + * using MetaMask (or any injected EOA) instead + * of the smart wallet. + */ +export const useWithdrawMetamask = (): UseWithdrawHook => { + const [data, setData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + const { enqueueSnackbar } = useSnackbar(); + + const withdraw = async ({ recipient, amount }: WithdrawParams) => { + setLoading(true); + setError(null); + + try { + // 1) Connect to the wallet (MetaMask) + const walletClient = await ConnectWalletClient(); + + // 2) Retrieve the user's address from the wallet + const [senderAddress] = await walletClient.requestAddresses(); + + // 3) Convert the amount to Wei (18 decimals) + const weiAmount = parseUnits(amount.toString(), 18); + + // Notify the user that we are sending the withdraw transaction + enqueueSnackbar('Sending withdraw transaction to the network...', { + variant: 'info', + autoHideDuration: 3000, + }); + + // 4) Send the withdraw transaction + const withdrawTxHash = await walletClient.writeContract({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS, + abi: LedgerVaultAbi.abi, + functionName: 'withdraw', + args: [recipient, weiAmount, GLOBAL_CONSTANTS.MMC_ADDRESS], + account: senderAddress, + }); + + // Notify the user that we are waiting for confirmation + enqueueSnackbar('Withdraw transaction broadcasted. Waiting for confirmation...', { + variant: 'info', + autoHideDuration: 7000, + }); + + // Wait for the withdraw transaction to be mined + const withdrawReceipt = await publicClient.waitForTransactionReceipt({ + hash: withdrawTxHash, + }); + + // Store the transaction data + setData({ + withdrawTxHash, + withdrawReceipt, + }); + } catch (err: any) { + // If something fails, set an error + setError({ message: err.message || 'An error occurred', ...err }); + } finally { + // Reset loading state + setLoading(false); + } + }; + + return { + data, + withdraw, + loading, + error, + }; +}; From 03d53adaec1158ccf4b87617979111d50124ec6d Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 10:14:19 -0600 Subject: [PATCH 54/71] feat(finance): add Metamask withdrawal feature Introduce functionality for users to withdraw funds using Metamask. - `src/sections/finance/components/finance-withdraw-from-metamask.tsx`: Added a new component to handle withdrawals through Metamask, including form inputs, validation, and transaction logic. - `src/sections/finance/components/finance-withdraw-modal.tsx`: Updated the modal to include a tabbed interface, allowing users to select Metamask or Smart Account withdrawal options, and integrated the new Metamask withdrawal component. --- .../finance-withdraw-from-metamask.tsx | 132 ++++++++++++++++++ .../components/finance-withdraw-modal.tsx | 44 +++++- 2 files changed, 174 insertions(+), 2 deletions(-) create mode 100644 src/sections/finance/components/finance-withdraw-from-metamask.tsx diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx new file mode 100644 index 000000000..6ba256d44 --- /dev/null +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -0,0 +1,132 @@ +import Stack from "@mui/material/Stack"; +import TextMaxLine from "@src/components/text-max-line"; +import { formatBalanceNumber } from "@src/utils/format-number.ts"; +import Divider from "@mui/material/Divider"; +import { InputAmount } from "@src/components/input-amount.tsx"; +import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; +import Button from "@mui/material/Button"; +import LoadingButton from "@mui/lab/LoadingButton"; +import DialogActions from "@mui/material/DialogActions"; +import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; +import Box from "@mui/material/Box"; +import { useSnackbar } from "notistack"; +import React, { FC, useEffect, useState } from 'react'; +import {useWithdraw} from "@src/hooks/use-withdraw.ts"; +import {useGetBalance} from "@src/hooks/use-get-balance.ts"; +import TextField from "@mui/material/TextField"; +import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; + +interface FinanceDepositFromSmartAccountProps { + onClose: () => void; +} + +const FinanceWithdrawFromMetamask: FC = ({ onClose }) => { + const [amount, setAmount] = useState(0); + const [loading, setLoading] = useState(false); + const { balance } = useGetBalance(); + const { enqueueSnackbar } = useSnackbar(); + const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const [destinationAddress, setDestinationAddress] = useState(''); + const [addressError, setAddressError] = useState(false); + + + useEffect(() => { + if (error) { + enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + } + }, [enqueueSnackbar, error]); + + const handleConfirmWithdraw = async () => { + if (amount > 0 && amount <= (balance ?? 0)) { + try { + setLoading(true); + await withdraw({amount: amount, recipient: destinationAddress}); + enqueueSnackbar(`The withdraw was successful`, { variant: "success" }); + onClose(); + } catch (err: any) { + enqueueSnackbar(`Withdraw failed: ${err?.message}`, { variant: "error" }); + } finally { + setLoading(false); + } + } else { + enqueueSnackbar("Invalid withdraw amount", { variant: "warning" }); + } + }; + + const handleInputChange = (event: React.ChangeEvent) => { + const value = event.target.value; + setDestinationAddress(value); + + + if (isValidAddress(value)) { + setAddressError(false); + } else { + setAddressError(true); + } + }; + + const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; + + return ( + <> + + + + + + Balance + + {formatBalanceNumber(balance ?? 0)} MMC + + + + + + + + Amount to withdraw + setAmount(Number(e.target.value))} + /> + + + + + + + + (balance ?? 0)} + loading={loading || withdrawLoading} + > + Confirm & Withdraw + + + + + ); +}; + +export default FinanceWithdrawFromSmartAccount; diff --git a/src/sections/finance/components/finance-withdraw-modal.tsx b/src/sections/finance/components/finance-withdraw-modal.tsx index 6c14a26b7..ac1fd2d88 100644 --- a/src/sections/finance/components/finance-withdraw-modal.tsx +++ b/src/sections/finance/components/finance-withdraw-modal.tsx @@ -1,5 +1,5 @@ // REACT IMPORTS -import { FC } from 'react'; +import {FC, useState} from 'react'; // MUI IMPORTS @@ -10,6 +10,15 @@ import Dialog, {DialogProps} from "@mui/material/Dialog"; // LOCAL IMPORTS import FinanceWithdrawFromSmartAccount from "@src/sections/finance/components/finance-withdraw-from-smart-account"; +import Iconify from "@src/components/iconify"; +import Tabs, {tabsClasses} from "@mui/material/Tabs"; +import Tab from "@mui/material/Tab"; +import FinanceWithdrawFromMetamask from "@src/sections/finance/components/finance-withdraw-from-metamask.tsx"; + +const TABS = [ + { value: 'metamask', label: 'Metamask', disabled: false, icon: }, + { value: 'smartAccount', label: 'Smart Account', disabled: false, icon: }, +]; // ---------------------------------------------------------------------- @@ -20,10 +29,41 @@ interface FinanceWitdrawModalProps extends DialogProps { // ---------------------------------------------------------------------- export const FinanceWithdrawModal: FC = ({ open, onClose }) => { + const [currentTab, setCurrentTab] = useState('metamask'); + + const handleChangeTab = (_event: any, newValue: any) => { + setCurrentTab(newValue); + }; + return ( Withdraw from your vault balance - + + + {TABS.map((tab) => ( + + ))} + + + {currentTab === 'metamask' && ()} + {currentTab === 'smartAccount' && ()} + ); } From 72e9e895942bb4dc0c5b60ea9b5d6510fa6eecce Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 10:17:16 -0600 Subject: [PATCH 55/71] chore: remove unused withdrawal handler code - Deleted commented-out `handleWithdrawal` function in `finance-widget-summary.tsx`. - This cleanup improves code readability by removing unused, unnecessary code. --- src/sections/finance/components/finance-widget-summary.tsx | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/sections/finance/components/finance-widget-summary.tsx b/src/sections/finance/components/finance-widget-summary.tsx index 36c2b7f27..1c7498714 100644 --- a/src/sections/finance/components/finance-widget-summary.tsx +++ b/src/sections/finance/components/finance-widget-summary.tsx @@ -122,10 +122,6 @@ export default function FinanceWidgetSummary({ }; - /*const handleWithdrawal = () => { - withdraw({ amount: 10, recipient: '0x037f2b49721E34296fBD8F9E7e9cc6D5F9ecE7b4' }); - };*/ - return ( Date: Tue, 31 Dec 2024 10:53:59 -0600 Subject: [PATCH 56/71] feat: add Metamask integration for withdrawals - Updated `finance-withdraw-from-metamask.tsx` to integrate Metamask wallet: - Replaced `useGetBalance` with `useGetVaultBalance` to fetch balances for connected wallets. - Added `ConnectWalletClient` to connect and retrieve wallet address. - Displayed connected wallet address using `truncateAddress`. - Adjusted UI to show wallet details and balance. - Modified `use-get-vault-balance.ts` to support optional address parameter. --- src/hooks/use-get-vault-balance.ts | 2 +- .../finance-withdraw-from-metamask.tsx | 42 +++++++++++++++---- 2 files changed, 35 insertions(+), 9 deletions(-) diff --git a/src/hooks/use-get-vault-balance.ts b/src/hooks/use-get-vault-balance.ts index 72581fcc9..929e370ce 100644 --- a/src/hooks/use-get-vault-balance.ts +++ b/src/hooks/use-get-vault-balance.ts @@ -5,7 +5,7 @@ import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; import { publicClient } from '@src/clients/viem/publicClient.ts'; import { useSelector } from 'react-redux'; -export function useGetVaultBalance(address: Address) { +export function useGetVaultBalance(address?: Address) { const [balance, setBalance] = useState(null); const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx index 6ba256d44..d803d199c 100644 --- a/src/sections/finance/components/finance-withdraw-from-metamask.tsx +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -11,10 +11,13 @@ import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; import Box from "@mui/material/Box"; import { useSnackbar } from "notistack"; import React, { FC, useEffect, useState } from 'react'; -import {useWithdraw} from "@src/hooks/use-withdraw.ts"; -import {useGetBalance} from "@src/hooks/use-get-balance.ts"; import TextField from "@mui/material/TextField"; import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; +import {useWithdrawMetamask} from "@src/hooks/use-withdraw-metamask"; +import {Address} from "viem"; +import {ConnectWalletClient} from "@src/clients/viem/walletClient.ts"; +import {truncateAddress} from "@src/utils/wallet.ts"; +import {useGetVaultBalance} from "@src/hooks/use-get-vault-balance.ts"; interface FinanceDepositFromSmartAccountProps { onClose: () => void; @@ -23,9 +26,10 @@ interface FinanceDepositFromSmartAccountProps { const FinanceWithdrawFromMetamask: FC = ({ onClose }) => { const [amount, setAmount] = useState(0); const [loading, setLoading] = useState(false); - const { balance } = useGetBalance(); + const [address, setAddress] = useState
(); + const { balance } = useGetVaultBalance(address); const { enqueueSnackbar } = useSnackbar(); - const { withdraw, loading: withdrawLoading, error } = useWithdraw(); + const { withdraw, loading: withdrawLoading, error } = useWithdrawMetamask(); const [destinationAddress, setDestinationAddress] = useState(''); const [addressError, setAddressError] = useState(false); @@ -36,6 +40,21 @@ const FinanceWithdrawFromMetamask: FC = ({ } }, [enqueueSnackbar, error]); + + useEffect(() => { + handleConnectMetamask(); + }, []); + + async function handleConnectMetamask() { + try { + const walletClient = await ConnectWalletClient(); + const [addr] = await walletClient.requestAddresses(); + setAddress(addr); + } catch (error) { + alert(`Transaction failed: ${error}`); + } + } + const handleConfirmWithdraw = async () => { if (amount > 0 && amount <= (balance ?? 0)) { try { @@ -76,9 +95,16 @@ const FinanceWithdrawFromMetamask: FC = ({ alignItems={"center"} justifyContent={"space-between"} > - - - + + Connected Wallet + + {truncateAddress(address ?? '')} + + + Balance = ({ ); }; -export default FinanceWithdrawFromSmartAccount; +export default FinanceWithdrawFromMetamask; From 587407b2fef41708ab3d473c948aa83b4d891266 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 11:11:33 -0600 Subject: [PATCH 57/71] feat: add wallet change functionality to finance components - Introduced `FinanceChangeWallet` component for handling wallet switching. - Integrated the new component into `finance-withdraw-from-metamask.tsx` and `finance-deposit-from-metamask.tsx` to allow users to change wallets directly from the dialog box. - Implemented feedback using `notistack` to notify users of wallet change success or failure. --- .../components/finance-change-wallet.tsx | 52 +++++++++++++++++++ .../finance-deposit-from-metamask.tsx | 3 ++ .../finance-withdraw-from-metamask.tsx | 5 +- 3 files changed, 59 insertions(+), 1 deletion(-) create mode 100644 src/sections/finance/components/finance-change-wallet.tsx diff --git a/src/sections/finance/components/finance-change-wallet.tsx b/src/sections/finance/components/finance-change-wallet.tsx new file mode 100644 index 000000000..95c2667b2 --- /dev/null +++ b/src/sections/finance/components/finance-change-wallet.tsx @@ -0,0 +1,52 @@ +import "viem/window"; +// @mui +import Button from "@mui/material/Button"; +// components +import Iconify from '@src/components/iconify'; +// ---------------------------------------------------------------------- + +// Import necessary hooks and clients +import { useSnackbar } from 'notistack'; +import Box from "@mui/material/Box"; +import {FC} from "react"; +import {Address} from "viem"; + +type FinanceChangeWalletProps = { + onChangingWallet: (address: Address | undefined) => void; +} + +const FinanceChangeWallet: FC = ({onChangingWallet}) => { + const { enqueueSnackbar } = useSnackbar(); + + // Function to handle wallet changes (User can interchange wallets using MetaMask extension) + const handleChangeWallet = async () => { + window?.ethereum?.request({ + method: "wallet_requestPermissions", + params: [{ + eth_accounts: {} + }] + }).then(() => window?.ethereum?.request({method: 'eth_requestAccounts'}).then((accounts: string[]) => { + console.log('Changed wallet to:', accounts[0]); + onChangingWallet(accounts[0] as Address); + enqueueSnackbar('Wallet changed successfully!', { variant: 'success', autoHideDuration: 3000 }); + })).catch((error: any) => { + console.error('Error changing wallet:', error); + enqueueSnackbar(`Failed to change wallet: ${error.message}`, {variant: 'error', autoHideDuration: 5000}); + }) + } + + return ( + + + + ); +}; + +export default FinanceChangeWallet; diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index 676065ccb..8f00cb15d 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -18,6 +18,7 @@ import { useSelector } from 'react-redux'; import { useSnackbar } from 'notistack'; import { useDepositMetamask } from "@src/hooks/use-deposit-metamask.ts"; import { truncateAddress } from '@src/utils/wallet.ts'; +import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; interface FinanceDepositFromMetamaskProps { onClose: () => void; @@ -127,6 +128,8 @@ const FinanceDepositFromMetamask: FC = ({ onClo + + diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx index d803d199c..cea83087f 100644 --- a/src/sections/finance/components/finance-withdraw-from-metamask.tsx +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -18,6 +18,7 @@ import {Address} from "viem"; import {ConnectWalletClient} from "@src/clients/viem/walletClient.ts"; import {truncateAddress} from "@src/utils/wallet.ts"; import {useGetVaultBalance} from "@src/hooks/use-get-vault-balance.ts"; +import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; interface FinanceDepositFromSmartAccountProps { onClose: () => void; @@ -136,7 +137,9 @@ const FinanceWithdrawFromMetamask: FC = ({ helperText={addressError ? 'Invalid wallet address' : ''} /> - + + + From 9c12a9b97ccea1f4ba83179be3b44ae1b5fc5c6e Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 11:17:53 -0600 Subject: [PATCH 58/71] feat(finance): remove FinanceCurrentBalance component - Deleted `finance-current-balance.tsx` from `src/sections/finance/components`. - Removed all associated logic, including UI elements, hooks, and helper methods for displaying and managing the finance balance card carousel. - Simplified the codebase by eliminating unused functionality. --- .../components/finance-current-balance.tsx | 201 ------------------ 1 file changed, 201 deletions(-) delete mode 100644 src/sections/finance/components/finance-current-balance.tsx diff --git a/src/sections/finance/components/finance-current-balance.tsx b/src/sections/finance/components/finance-current-balance.tsx deleted file mode 100644 index 3582827bf..000000000 --- a/src/sections/finance/components/finance-current-balance.tsx +++ /dev/null @@ -1,201 +0,0 @@ -import { useCallback } from 'react'; -// @mui -import { Theme, useTheme, alpha, SxProps } from '@mui/material/styles'; -import Box from '@mui/material/Box'; -import Stack from '@mui/material/Stack'; -import MenuItem from '@mui/material/MenuItem'; -import IconButton from '@mui/material/IconButton'; -import Typography from '@mui/material/Typography'; -// theme -import { bgGradient } from '@src/theme/css'; -// utils -import { fCurrency } from '@src/utils/format-number'; -// hooks -import { useBoolean } from '@src/hooks/use-boolean'; -// components -import Iconify from '@src/components/iconify'; -import CustomPopover, { usePopover } from '@src/components/custom-popover'; -import Carousel, { CarouselDots, useCarousel } from '@src/components/carousel'; - -// ---------------------------------------------------------------------- - -type ItemProps = { - id: string; - cardType: string; - balance: number; - cardHolder: string; - cardNumber: string; - cardValid: string; -}; - -type Props = { - list: ItemProps[]; - sx?: SxProps; -}; - -export default function FinanceCurrentBalance({ list, sx }: Props) { - const theme = useTheme(); - - const carousel = useCarousel({ - fade: true, - speed: 100, - ...CarouselDots({ - sx: { - right: 16, - bottom: 16, - position: 'absolute', - color: 'primary.light', - }, - }), - }); - - return ( - div': { - height: 1, - }, - '&:before, &:after': { - left: 0, - mx: 2.5, - right: 0, - zIndex: -2, - height: 200, - bottom: -16, - content: "''", - opacity: 0.16, - borderRadius: 2, - bgcolor: 'grey.500', - position: 'absolute', - }, - '&:after': { - mx: 1, - bottom: -8, - opacity: 0.24, - }, - ...sx, - }} - > - - {list.map((card) => ( - - ))} - - - ); -} - -// ---------------------------------------------------------------------- - -type CardItemProps = { - card: ItemProps; -}; - -function CardItem({ card }: CardItemProps) { - const { id, cardType, balance, cardHolder, cardNumber, cardValid } = card; - - const currency = useBoolean(); - - const popover = usePopover(); - - const handleDelete = useCallback(() => { - popover.onClose(); - console.info('DELETE', id); - }, [id, popover]); - - const handleEdit = useCallback(() => { - popover.onClose(); - console.info('EDIT', id); - }, [id, popover]); - - return ( - <> - - - - - -
- - Current Balance - - - - - {currency.value ? '********' : fCurrency(balance)} - - - - - - -
- - - - {cardType === 'mastercard' && } - {cardType === 'visa' && } - - {cardNumber} - - - - - Card Holder - {cardHolder} - - - Valid Dates - {cardValid} - - -
- - - - - Delete - - - - - Edit - - - - ); -} From 7dac0bdb1125a0fad0198a28e243fbfbfccd25f8 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 11:18:16 -0600 Subject: [PATCH 59/71] feat(finance): remove transactions table toolbar component - Deleted `finance-transactions-table-toolbar.tsx` as it is no longer needed. - Removed usage of `FinanceTransactionsTableToolbar` in `finance-transactions-history.tsx`. - Replaced its functionality with `FinanceTransactionsTableFiltersResult` for filter reset handling. --- .../finance-transactions-history.tsx | 9 -- .../finance-transactions-table-toolbar.tsx | 118 ------------------ 2 files changed, 127 deletions(-) delete mode 100644 src/sections/finance/components/finance-transactions-table-toolbar.tsx diff --git a/src/sections/finance/components/finance-transactions-history.tsx b/src/sections/finance/components/finance-transactions-history.tsx index 1aec06049..f676136fc 100644 --- a/src/sections/finance/components/finance-transactions-history.tsx +++ b/src/sections/finance/components/finance-transactions-history.tsx @@ -28,7 +28,6 @@ import { import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; // import FinanceTransactionTableRow from '@src/sections/finance/components/finance-transactions-table-row'; -import FinanceTransactionsTableToolbar from '@src/sections/finance/components/finance-transactions-table-toolbar'; import FinanceTransactionsTableFiltersResult from '@src/sections/finance/components/finance-transactions-table-filters-result'; import {TableRowTransactionType} from "@src/hooks/use-transaction-data.ts"; @@ -142,14 +141,6 @@ export default function FinanceTransactionsHistory({ transactionsData }: Finance ))} - - {canReset && ( void; - // - canReset: boolean; - onResetFilters: VoidFunction; -}; - -export default function FinanceTransactionsTableToolbar({ - filters, - onFilters, - canReset, - onResetFilters, -}: Props) { - - const handleFilterName = useCallback( - (event: React.ChangeEvent) => { - onFilters('name', event.target.value); - }, - [onFilters] - ); - - const handleFilterStartDate = useCallback( - (newValue: Date | null) => { - onFilters('startDate', newValue); - }, - [onFilters] - ); - - const handleFilterEndDate = useCallback( - (newValue: Date | null) => { - onFilters('endDate', newValue); - }, - [onFilters] - ); - - return ( - <> - - - - - - - - - - ), - }} - /> - - - {canReset && ( - - )} - - - ); -} From e3211707738fee35d759ae5e90ea0d8b6986c31c Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 11:39:02 -0600 Subject: [PATCH 60/71] feat(finance): improve layout and responsiveness for dialogs - Updated `finance-withdraw-from-metamask.tsx` to use the `useResponsive` hook for improved dialog responsiveness and layout adjustments. - Adjusted `DialogActions` to justify content space between, ensuring better alignment for larger screens. - Replaced existing button labels with `TextMaxLine` for text truncation support. - Added responsive styles for buttons and forms. - Removed unused `Iconify` dependency from `finance-change-wallet.tsx`. - Integrated `TextMaxLine` in `finance-change-wallet.tsx` to handle button text truncation. --- .../finance/components/finance-change-wallet.tsx | 7 +++---- .../components/finance-withdraw-from-metamask.tsx | 15 ++++++++++----- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/sections/finance/components/finance-change-wallet.tsx b/src/sections/finance/components/finance-change-wallet.tsx index 95c2667b2..f8be8ae9a 100644 --- a/src/sections/finance/components/finance-change-wallet.tsx +++ b/src/sections/finance/components/finance-change-wallet.tsx @@ -1,8 +1,6 @@ import "viem/window"; // @mui import Button from "@mui/material/Button"; -// components -import Iconify from '@src/components/iconify'; // ---------------------------------------------------------------------- // Import necessary hooks and clients @@ -10,6 +8,7 @@ import { useSnackbar } from 'notistack'; import Box from "@mui/material/Box"; import {FC} from "react"; import {Address} from "viem"; +import TextMaxLine from "@src/components/text-max-line"; type FinanceChangeWalletProps = { onChangingWallet: (address: Address | undefined) => void; @@ -38,12 +37,12 @@ const FinanceChangeWallet: FC = ({onChangingWallet}) = return ( ); diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx index cea83087f..001c7aba6 100644 --- a/src/sections/finance/components/finance-withdraw-from-metamask.tsx +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -19,6 +19,7 @@ import {ConnectWalletClient} from "@src/clients/viem/walletClient.ts"; import {truncateAddress} from "@src/utils/wallet.ts"; import {useGetVaultBalance} from "@src/hooks/use-get-vault-balance.ts"; import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; interface FinanceDepositFromSmartAccountProps { onClose: () => void; @@ -86,7 +87,7 @@ const FinanceWithdrawFromMetamask: FC = ({ }; const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; - + const mdUp = useResponsive('up', 'md'); return ( <> = ({ helperText={addressError ? 'Invalid wallet address' : ''} /> - + + - + {/**/} (balance ?? 0)} loading={loading || withdrawLoading} > - Confirm & Withdraw + Confirm & Withdraw From 454c530fe22e1e365ad18608bd0c4f7637078899 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 12:57:02 -0600 Subject: [PATCH 61/71] refactor: adjust notification subscriptions parameters - Updated `subscribeToNotifications` in `src/routes/sections/index.tsx` to remove the 'transactions' channel from the subscription array. - Ensures only 'notifications' channel is subscribed to, aligning with intended behavior and reducing unnecessary data handling. --- src/routes/sections/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/sections/index.tsx b/src/routes/sections/index.tsx index 8dd01e1d8..37adf0ee5 100644 --- a/src/routes/sections/index.tsx +++ b/src/routes/sections/index.tsx @@ -54,7 +54,7 @@ export default function Router() { useEffect(() => { if (sessionData?.profile?.id) { // Subscribe to notifications channel - subscribeToNotifications(sessionData?.profile?.id, dispatch, ['notifications','transactions']); + subscribeToNotifications(sessionData?.profile?.id, dispatch, ['notifications']); // Set the notifications in first render getNotifications(sessionData?.profile?.id).then(() => {}); From 5dfd936ed7f08a4bce6831c61f9e3ee9414815c3 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 13:05:11 -0600 Subject: [PATCH 62/71] refactor(finance): centralize dialog actions logic - Extract shared dialog action logic into `finance-dialogs-actions.tsx` component. - Replace redundant `DialogActions` and button logic in: - `finance-withdraw-from-metamask.tsx` - `finance-withdraw-from-smart-account.tsx` - `finance-deposit-from-metamask.tsx` - `finance-deposit-from-smart-account.tsx` - Update `FinanceChangeWallet` to handle optional props and responsive text. This improves code maintainability, reduces duplication, and ensures consistent behavior across finance dialogs. --- .../components/finance-change-wallet.tsx | 11 +++-- .../finance-deposit-from-metamask.tsx | 36 ++++++++--------- .../finance-deposit-from-smart-account.tsx | 31 +++++++------- .../components/finance-dialogs-actions.tsx | 40 +++++++++++++++++++ .../finance-withdraw-from-metamask.tsx | 40 +++++++------------ .../finance-withdraw-from-smart-account.tsx | 35 ++++++++-------- 6 files changed, 109 insertions(+), 84 deletions(-) create mode 100644 src/sections/finance/components/finance-dialogs-actions.tsx diff --git a/src/sections/finance/components/finance-change-wallet.tsx b/src/sections/finance/components/finance-change-wallet.tsx index f8be8ae9a..f79ee7df5 100644 --- a/src/sections/finance/components/finance-change-wallet.tsx +++ b/src/sections/finance/components/finance-change-wallet.tsx @@ -9,9 +9,10 @@ import Box from "@mui/material/Box"; import {FC} from "react"; import {Address} from "viem"; import TextMaxLine from "@src/components/text-max-line"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; type FinanceChangeWalletProps = { - onChangingWallet: (address: Address | undefined) => void; + onChangingWallet?: (address: Address ) => void; } const FinanceChangeWallet: FC = ({onChangingWallet}) => { @@ -26,7 +27,7 @@ const FinanceChangeWallet: FC = ({onChangingWallet}) = }] }).then(() => window?.ethereum?.request({method: 'eth_requestAccounts'}).then((accounts: string[]) => { console.log('Changed wallet to:', accounts[0]); - onChangingWallet(accounts[0] as Address); + onChangingWallet?.(accounts[0] as Address); enqueueSnackbar('Wallet changed successfully!', { variant: 'success', autoHideDuration: 3000 }); })).catch((error: any) => { console.error('Error changing wallet:', error); @@ -34,6 +35,8 @@ const FinanceChangeWallet: FC = ({onChangingWallet}) = }) } + const mdUp = useResponsive('up', 'md'); + return ( diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index 8f00cb15d..0ba9ef72d 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -11,14 +11,13 @@ import TextMaxLine from "@src/components/text-max-line"; import {InputAmount} from "@src/components/input-amount.tsx"; import Divider from "@mui/material/Divider"; import { useGetMmcContractBalance } from '@src/hooks/use-get-mmc-contract-balance.ts'; -import LoadingButton from '@mui/lab/LoadingButton'; -import DialogActions from '@mui/material/DialogActions'; import NeonPaper from '@src/sections/publication/NeonPaperContainer.tsx'; import { useSelector } from 'react-redux'; import { useSnackbar } from 'notistack'; import { useDepositMetamask } from "@src/hooks/use-deposit-metamask.ts"; import { truncateAddress } from '@src/utils/wallet.ts'; -import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; interface FinanceDepositFromMetamaskProps { onClose: () => void; @@ -79,6 +78,8 @@ const FinanceDepositFromMetamask: FC = ({ onClo const RainbowEffect = loading || depositLoading ? NeonPaper : Box; + const mdUp = useResponsive('up', 'md'); + return ( = ({ onClo
- - - - - - - (balance ?? 0)} - loading={loading || depositLoading} - > - Confirm & Deposit - - - + + ) : ( - - (balance ?? 0)} - loading={loading || depositLoading} - > - Confirm & Deposit - - - + ); }; diff --git a/src/sections/finance/components/finance-dialogs-actions.tsx b/src/sections/finance/components/finance-dialogs-actions.tsx new file mode 100644 index 000000000..071604713 --- /dev/null +++ b/src/sections/finance/components/finance-dialogs-actions.tsx @@ -0,0 +1,40 @@ +import DialogActions from "@mui/material/DialogActions"; +import LoadingButton from "@mui/lab/LoadingButton"; +import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; +import {Address} from "viem"; + +type FinanceDialogsActionsProps = { + rainbowComponent: any; + loading: boolean; + actionLoading: boolean; + amount: number; + balance: number; + label: string; + onConfirmAction: () => void; + onCloseAction?: () => void; + onChangeWallet?: (address: Address) => void; +} + +const FinanceDialogsActions = ({rainbowComponent: RainbowEffect, onConfirmAction, loading, actionLoading, amount, balance, label, onChangeWallet }: FinanceDialogsActionsProps) => { + return ( + + { + onChangeWallet && ( + + ) + } + {/**/} + + (balance ?? 0)} + loading={loading || actionLoading} + >{label} + + + + ) +} +export default FinanceDialogsActions; diff --git a/src/sections/finance/components/finance-withdraw-from-metamask.tsx b/src/sections/finance/components/finance-withdraw-from-metamask.tsx index 001c7aba6..2240bdecf 100644 --- a/src/sections/finance/components/finance-withdraw-from-metamask.tsx +++ b/src/sections/finance/components/finance-withdraw-from-metamask.tsx @@ -4,9 +4,6 @@ import { formatBalanceNumber } from "@src/utils/format-number.ts"; import Divider from "@mui/material/Divider"; import { InputAmount } from "@src/components/input-amount.tsx"; import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; -import Button from "@mui/material/Button"; -import LoadingButton from "@mui/lab/LoadingButton"; -import DialogActions from "@mui/material/DialogActions"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; import Box from "@mui/material/Box"; import { useSnackbar } from "notistack"; @@ -18,8 +15,8 @@ import {Address} from "viem"; import {ConnectWalletClient} from "@src/clients/viem/walletClient.ts"; import {truncateAddress} from "@src/utils/wallet.ts"; import {useGetVaultBalance} from "@src/hooks/use-get-vault-balance.ts"; -import FinanceChangeWallet from "@src/sections/finance/components/finance-change-wallet.tsx"; import {useResponsive} from "@src/hooks/use-responsive.ts"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; interface FinanceDepositFromSmartAccountProps { onClose: () => void; @@ -119,7 +116,6 @@ const FinanceWithdrawFromMetamask: FC = ({ - Amount to withdraw = ({ /> = ({ helperText={addressError ? 'Invalid wallet address' : ''} /> - - - - - {/**/} - - - (balance ?? 0)} - loading={loading || withdrawLoading} - > - Confirm & Withdraw - - - + + ); }; diff --git a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx index 491b59b95..337b5bb32 100644 --- a/src/sections/finance/components/finance-withdraw-from-smart-account.tsx +++ b/src/sections/finance/components/finance-withdraw-from-smart-account.tsx @@ -4,9 +4,6 @@ import { formatBalanceNumber } from "@src/utils/format-number.ts"; import Divider from "@mui/material/Divider"; import { InputAmount } from "@src/components/input-amount.tsx"; import { BoxRow } from "@src/sections/finance/components/finance-deposit-from-metamask.tsx"; -import Button from "@mui/material/Button"; -import LoadingButton from "@mui/lab/LoadingButton"; -import DialogActions from "@mui/material/DialogActions"; import NeonPaper from "@src/sections/publication/NeonPaperContainer.tsx"; import Box from "@mui/material/Box"; import { useSnackbar } from "notistack"; @@ -15,6 +12,8 @@ import {useWithdraw} from "@src/hooks/use-withdraw.ts"; import {useGetBalance} from "@src/hooks/use-get-balance.ts"; import TextField from "@mui/material/TextField"; import {isValidAddress} from "@src/sections/finance/components/finance-quick-transfer.tsx"; +import FinanceDialogsActions from "@src/sections/finance/components/finance-dialogs-actions.tsx"; +import {useResponsive} from "@src/hooks/use-responsive.ts"; interface FinanceDepositFromSmartAccountProps { onClose: () => void; @@ -67,6 +66,8 @@ const FinanceWithdrawFromSmartAccount: FC = const RainbowEffect = loading || withdrawLoading ? NeonPaper : Box; + const mdUp = useResponsive('up', 'md'); + return ( <> = /> = helperText={addressError ? 'Invalid wallet address' : ''} /> - - - - - (balance ?? 0)} - loading={loading || withdrawLoading} - > - Confirm & Withdraw - - - + + + ); }; From 3373a26d65bf04fcd50402aa0af047e039621350 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 13:52:49 -0600 Subject: [PATCH 63/71] feat: added use get smart wallet transactions from blockchain --- .../use-get-smart-wallet-transactions-ok.ts | 106 +++++++++ .../use-get-smart-wallet-transactions.ts | 201 ++++++++++-------- 2 files changed, 218 insertions(+), 89 deletions(-) create mode 100644 src/hooks/use-get-smart-wallet-transactions-ok.ts diff --git a/src/hooks/use-get-smart-wallet-transactions-ok.ts b/src/hooks/use-get-smart-wallet-transactions-ok.ts new file mode 100644 index 000000000..4797ebe41 --- /dev/null +++ b/src/hooks/use-get-smart-wallet-transactions-ok.ts @@ -0,0 +1,106 @@ +import { useEffect, useState } from 'react' +import axios from 'axios' +import { Address } from 'viem'; +import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; + +interface SmartWalletTransactionParams { + chainShortName?: string; // Blockchain network abbreviation (e.g., 'eth') + address: Address; // Address to query + protocolType?: string; // Token protocol type (default: 'token_20') + tokenContractAddress?: string; // Optional token contract address + startBlockHeight?: string; // Optional starting block height + endBlockHeight?: string; // Optional ending block height + isFromOrTo?: 'from' | 'to'; // Filter transactions by 'from' or 'to' + page?: number; // Optional page number + limit?: number; // Number of results per request (default: 20, max: 50) +} + +interface UseGetSmartWalletTransactionsReturn { + data: any; + isLoading: boolean; + error: string | null; + refetch: () => Promise; +} + +export function useGetSmartWalletTransactions({ + address, + chainShortName = 'AMOY_TESTNET', + protocolType = 'token_20', + tokenContractAddress = GLOBAL_CONSTANTS.MMC_ADDRESS, + startBlockHeight, + endBlockHeight, + isFromOrTo, + page = 1, + limit = 20, + }: SmartWalletTransactionParams): UseGetSmartWalletTransactionsReturn { + const [data, setData] = useState(null); + const [isLoading, setIsLoading] = useState(false); + const [error, setError] = useState(null); + + // Create an axios instance + const axiosInstance = axios.create({ + headers: { + 'Content-Type': 'application/json;charset=utf-8', + Accept: 'application/json', + 'OK-ACCESS-KEY': GLOBAL_CONSTANTS.OKLINK_API_KEY, + }, + timeout: 5000, + validateStatus: (status) => status < 600, + }); + + // Fetch transactions using GET request + const fetchTransactions = async () => { + setIsLoading(true); + setError(null); + + try { + // Build query string + const queryParams = new URLSearchParams({ + chainShortName, + address, + protocolType, + ...(tokenContractAddress && { tokenContractAddress }), + ...(startBlockHeight && { startBlockHeight }), + ...(endBlockHeight && { endBlockHeight }), + ...(isFromOrTo && { isFromOrTo }), + page: page.toString(), + limit: limit.toString(), + }).toString(); + + const url = `https://www.oklink.com/api/v5/explorer/address/token-transaction-list?${queryParams}`; + const response = await axiosInstance.get(url); + + console.log('response', response); + + // Handle response + if (response.data?.code === '0') { + setData(response.data.data?.[0]); + } else { + setError(response.data?.msg || 'Unknown error'); + } + } catch (err: any) { + setError(err?.message || 'Unknown error'); + } finally { + setIsLoading(false); + } + }; + + // Fetch data on parameter change + useEffect(() => { + if (!address || !chainShortName) return; + fetchTransactions(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [chainShortName, address, protocolType, tokenContractAddress, startBlockHeight, endBlockHeight, isFromOrTo, page, limit]); + + // Refetch function + const refetch = async () => { + await fetchTransactions(); + }; + + return { + data, + isLoading, + error, + refetch, + }; +} diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index 4797ebe41..666c58b31 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -1,106 +1,129 @@ -import { useEffect, useState } from 'react' -import axios from 'axios' -import { Address } from 'viem'; +import { useState, useEffect } from 'react'; +import { Address, parseAbiItem, formatUnits } from 'viem'; +import { publicClient } from '@src/clients/viem/publicClient.ts'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; +import { useSelector } from 'react-redux'; +import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; -interface SmartWalletTransactionParams { - chainShortName?: string; // Blockchain network abbreviation (e.g., 'eth') - address: Address; // Address to query - protocolType?: string; // Token protocol type (default: 'token_20') - tokenContractAddress?: string; // Optional token contract address - startBlockHeight?: string; // Optional starting block height - endBlockHeight?: string; // Optional ending block height - isFromOrTo?: 'from' | 'to'; // Filter transactions by 'from' or 'to' - page?: number; // Optional page number - limit?: number; // Number of results per request (default: 20, max: 50) -} +const useGetSmartWalletTransactions = () => { + const sessionData = useSelector((state: any) => state.auth.session); + const [logs, setLogs] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); -interface UseGetSmartWalletTransactionsReturn { - data: any; - isLoading: boolean; - error: string | null; - refetch: () => Promise; -} + const fetchLogs = async () => { + console.log('Fetching logs for address:', sessionData?.address); + if (!sessionData?.address) return; -export function useGetSmartWalletTransactions({ - address, - chainShortName = 'AMOY_TESTNET', - protocolType = 'token_20', - tokenContractAddress = GLOBAL_CONSTANTS.MMC_ADDRESS, - startBlockHeight, - endBlockHeight, - isFromOrTo, - page = 1, - limit = 20, - }: SmartWalletTransactionParams): UseGetSmartWalletTransactionsReturn { - const [data, setData] = useState(null); - const [isLoading, setIsLoading] = useState(false); - const [error, setError] = useState(null); + try { + setLoading(true); + setError(null); - // Create an axios instance - const axiosInstance = axios.create({ - headers: { - 'Content-Type': 'application/json;charset=utf-8', - Accept: 'application/json', - 'OK-ACCESS-KEY': GLOBAL_CONSTANTS.OKLINK_API_KEY, - }, - timeout: 5000, - validateStatus: (status) => status < 600, - }); + const eventsAbi = { + FundsTransferred: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsTransferred' + ) + ) + ), + FundsDeposited: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsDeposited' + ) + ) + ), + }; - // Fetch transactions using GET request - const fetchTransactions = async () => { - setIsLoading(true); - setError(null); + const [transfersToMe, transfersFromMe, deposits] = await Promise.all([ + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsTransferred as any, + args: { recipient: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsTransferred as any, + args: { sender: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsDeposited as any, + args: { recipient: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), + ]); - try { - // Build query string - const queryParams = new URLSearchParams({ - chainShortName, - address, - protocolType, - ...(tokenContractAddress && { tokenContractAddress }), - ...(startBlockHeight && { startBlockHeight }), - ...(endBlockHeight && { endBlockHeight }), - ...(isFromOrTo && { isFromOrTo }), - page: page.toString(), - limit: limit.toString(), - }).toString(); + const allLogs = [...transfersToMe, ...transfersFromMe, ...deposits]; + + // Obtener timestamps y formatear datos + const logsWithDetails = await Promise.all( + allLogs.map(async (log: any) => { + const block = await publicClient.getBlock({ blockNumber: log.blockNumber }); + + const event = (() => { + switch (log.eventName) { + case 'FundsTransferred': + return log.args.sender === sessionData.address + ? 'transferTo' + : 'transferFrom'; + case 'FundsDeposited': + return 'deposit'; + default: + return 'unknown'; + } + })(); - const url = `https://www.oklink.com/api/v5/explorer/address/token-transaction-list?${queryParams}`; - const response = await axiosInstance.get(url); + return { + ...log, + timestamp: block.timestamp, // Timestamp en UNIX + readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Fecha legible + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : null, // Conversión de wei a ether + event, + }; + }) + ); - console.log('response', response); + // Ordenar por bloque y transacción + const sortedLogs = logsWithDetails.sort((a, b) => { + const blockDifference = Number(b.blockNumber) - Number(a.blockNumber); + if (blockDifference !== 0) return blockDifference; + return Number(b.transactionIndex) - Number(a.transactionIndex); + }); - // Handle response - if (response.data?.code === '0') { - setData(response.data.data?.[0]); - } else { - setError(response.data?.msg || 'Unknown error'); - } - } catch (err: any) { - setError(err?.message || 'Unknown error'); + setLogs(sortedLogs); + } catch (err) { + console.error('Error fetching logs:', err); + setError(err instanceof Error ? err.message : 'An unknown error occurred'); } finally { - setIsLoading(false); + setLoading(false); } }; - // Fetch data on parameter change + const createEventSignature = (event: any): string => { + if (!event || !event.name || !event.inputs) { + throw new Error('Invalid event in ABI'); + } + const inputs = event.inputs + .map( + (input: any) => + `${input.type}${input.indexed ? ' indexed' : ''} ${input.name}` + ) + .join(', '); + return `event ${event.name}(${inputs})`; + }; + useEffect(() => { - if (!address || !chainShortName) return; - fetchTransactions(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [chainShortName, address, protocolType, tokenContractAddress, startBlockHeight, endBlockHeight, isFromOrTo, page, limit]); + fetchLogs(); + }, [sessionData?.address]); - // Refetch function - const refetch = async () => { - await fetchTransactions(); - }; + return { logs, loading, error, refetch: fetchLogs }; +}; - return { - data, - isLoading, - error, - refetch, - }; -} +export default useGetSmartWalletTransactions; From 4cb96b8098cd5b7d1480038926d2cb7c9c3d0677 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 13:55:08 -0600 Subject: [PATCH 64/71] feat: added use get smart wallet transactions from blockchain --- src/hooks/use-get-smart-wallet-transactions.ts | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index 666c58b31..38d98a514 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -19,6 +19,7 @@ const useGetSmartWalletTransactions = () => { setLoading(true); setError(null); + // Define ABI for events to monitor const eventsAbi = { FundsTransferred: parseAbiItem( createEventSignature( @@ -36,6 +37,7 @@ const useGetSmartWalletTransactions = () => { ), }; + // Fetch logs for each event const [transfersToMe, transfersFromMe, deposits] = await Promise.all([ publicClient.getLogs({ address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, @@ -62,11 +64,12 @@ const useGetSmartWalletTransactions = () => { const allLogs = [...transfersToMe, ...transfersFromMe, ...deposits]; - // Obtener timestamps y formatear datos + // Add timestamps and format details for each log const logsWithDetails = await Promise.all( allLogs.map(async (log: any) => { const block = await publicClient.getBlock({ blockNumber: log.blockNumber }); + // Determine the event type const event = (() => { switch (log.eventName) { case 'FundsTransferred': @@ -82,15 +85,15 @@ const useGetSmartWalletTransactions = () => { return { ...log, - timestamp: block.timestamp, // Timestamp en UNIX - readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Fecha legible - formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : null, // Conversión de wei a ether + timestamp: block.timestamp, // UNIX timestamp of the block + readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Human-readable date + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : null, // Convert amount from wei to ether event, }; }) ); - // Ordenar por bloque y transacción + // Sort logs by block and transaction index const sortedLogs = logsWithDetails.sort((a, b) => { const blockDifference = Number(b.blockNumber) - Number(a.blockNumber); if (blockDifference !== 0) return blockDifference; From 52fe8b036ac8521d1a276551ecdac2e02f6a8103 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 14:01:42 -0600 Subject: [PATCH 65/71] fix(finance): standardize error message on deposit failure - Updated `finance-deposit-from-metamask.tsx` to replace variable error messages with a consistent error notification: "An error occurred during transaction." - Ensures better user experience by removing potentially confusing or overly technical error details. --- .../finance/components/finance-deposit-from-metamask.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/sections/finance/components/finance-deposit-from-metamask.tsx b/src/sections/finance/components/finance-deposit-from-metamask.tsx index 0ba9ef72d..1d1ff1fb4 100644 --- a/src/sections/finance/components/finance-deposit-from-metamask.tsx +++ b/src/sections/finance/components/finance-deposit-from-metamask.tsx @@ -38,7 +38,7 @@ const FinanceDepositFromMetamask: FC = ({ onClo useEffect(() => { if (error) { - enqueueSnackbar(`Deposit failed: ${error?.message}`, { variant: "error" }); + enqueueSnackbar(`An error occurred during transaction.`, { variant: "error" }); } }, [enqueueSnackbar, error]); From 758c74664b628377a0a6358bc196b19562efa8b8 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 15:45:30 -0600 Subject: [PATCH 66/71] feat: connected transactions chart and contracts abi --- src/config/abi/AccessAgg.json | 2 +- src/config/abi/AccessWorkflow.json | 2 +- src/config/abi/LedgerVault.json | 2 +- src/config/abi/PoliciesAgg.json | 2 +- src/config/abi/RightsPolicyAuthorizer.json | 2 +- src/config/abi/SubscriptionPolicy.json | 2 +- .../use-get-smart-wallet-transactions.ts | 20 +- .../components/finance-balance-statistics.tsx | 264 +++++++++++++----- src/sections/finance/index.tsx | 11 +- 9 files changed, 226 insertions(+), 81 deletions(-) diff --git a/src/config/abi/AccessAgg.json b/src/config/abi/AccessAgg.json index 88691a0d3..8f23eb335 100644 --- a/src/config/abi/AccessAgg.json +++ b/src/config/abi/AccessAgg.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowedByAsset","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowedByHolder","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014557601f6111fc38819003918201601f19168301916001600160401b038311848410176101495780849260209460405283398101031261014557516001600160a01b0381169081900361014557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610136576002600160401b03196001600160401b038216016100cd575b5060a05260405161109e908161015e8239608051818181610820015261093f015260a05181818160d101526105470152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;-1:-1:-1;;474:2431:2;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;1171:4:56;1163:13;;8837:64:55;474:2431:2;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;474:2431:2;;7985:34:55;7981:146;;-1:-1:-1;1020:65:2;;;474:2431;;;;;;;;1163:13:56;474:2431:2;;;;;;;;;;1020:65;474:2431;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;474:2431:2;-1:-1:-1;;;;;474:2431:2;;;8837:64:55;474:2431:2;;;;;;8087:29:55;;474:2431:2;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;474:2431:2;-1:-1:-1;474:2431:2;;;;;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:59;474:2431;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:55;474:2431:2;;;;;;4301:16:55;474:2431:2;;;;4726:16:55;;:34;;;;474:2431:2;4805:1:55;4790:16;:50;;;;474:2431:2;4855:13:55;:30;;;;474:2431:2;4851:91:55;;;474:2431:2;;4805:1:55;474:2431:2;;;;;8837:64:55;474:2431:2;4979:67:55;;474:2431:2;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;474:2431:2;;3295:62:102;474:2431:2;;;3295:62:102;474:2431:2;5066:101:55;;474:2431:2;5066:101:55;474:2431:2;8837:64:55;474:2431:2;;8837:64:55;474:2431:2;5142:14:55;474:2431:2;;;4805:1:55;474:2431:2;;5142:14:55;474:2431:2;4979:67:55;474:2431:2;;;;8837:64:55;474:2431:2;4979:67:55;;;4851:91;4908:23;474:2431:2;4908:23:55;474:2431:2;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;474:2431:2;;;;;;;;;;;;;1782:71:54;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2429:56;474:2431;;;:::i;:::-;;;;;;;2382:19;;474:2431;;2382:19;;;;;;:::i;:::-;474:2431;;2429:56;;;;;474:2431;2429:56;;474:2431;2429:56;;;:::i;:::-;;:21;474:2431;2429:21;474:2431;2429:56;;;;;;474:2431;2429:56;474:2431;2429:56;;;474:2431;;;;;;;;;;2429:56;;;;474:2431;2429:56;474:2431;2429:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;474:2431;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1902:56;474:2431;;;;;1856:18;474:2431;1856:18;;474:2431;;1856:18;;;;;;:::i;474:2431::-;;;;;;;;;;;1782:71:54;474:2431:2;;;;;4698:71:54;;;474:2431:2;;4698:71:54;474:2431:2;;;;;;;;4698:71:54;474:2431:2;;4698:71:54;;474:2431:2;;;;;;;;;;;;;:::i;:::-;;1782:71:54;474:2431:2;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;474:2431:2;4355:110:54;474:2431:2;4411:43:54;;474:2431:2;4411:43:54;474:2431:2;;;;;4411:43:54;4254:92;4302:33;474:2431:2;4302:33:54;966:10:57;474:2431:2;;;;4302:33:54;474:2431:2;;;;;;;;;;;;5115:6:56;474:2431:2;5106:4:56;5098:23;5094:145;;474:2431:2;;;811:66:68;474:2431:2;;;5094:145:56;5199:29;474:2431:2;5199:29:56;474:2431:2;;5199:29:56;474:2431:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;474:2431:2;4683:4:56;;4675:23;:120;;;;;474:2431:2;4658:251:56;;;3058:30:102;474:2431:2;;3295:62:102;474:2431:2;;;;3058:30:102;;;;474:2431:2;3058:30:102;;474:2431:2;;3058:30:102;;474:2431:2;1893:10:102;474:2431:2;;;;3058:30:102;;;;;;;474:2431:2;3058:30:102;;;474:2431:2;1869:35:102;;1865:140;;474:2431:2;;;;;;;6156:52:56;;474:2431:2;6156:52:56;474:2431:2;6156:52:56;;;;474:2431:2;;6156:52:56;;;474:2431:2;-1:-1:-1;6152:437:56;;6518:60;;474:2431:2;6518:60:56;474:2431:2;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;474:2431:2;;811:66:68;474:2431:2;;;811:66:68;474:2431:2;2407:36:68;474:2431:2;2407:36:68;;474:2431:2;;2458:15:68;:11;;474:2431:2;4049:25:75;;4091:55;4049:25;;;;;;474:2431:2;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;474:2431:2:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;474:2431:2;6159:70:68;6199:19;474:2431:2;6199:19:68;474:2431:2;;6199:19:68;1744:119;1805:47;474:2431:2;1805:47:68;474:2431:2;;;;1805:47:68;6246:120:56;6317:34;474:2431:2;6317:34:56;474:2431:2;;;;6317:34:56;6156:52;;;;474:2431:2;6156:52:56;;474:2431:2;6156:52:56;;;;;;474:2431:2;6156:52:56;;;:::i;:::-;;;474:2431:2;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;474:2431:2;;1927:67:102;;;474:2431:2;;1927:67:102;;520:1:100;474:2431:2;;520:1:100;;474:2431:2;520:1:100;3058:30:102;474:2431:2;;520:1:100;;;;;;1927:67:102;3058:30;;;474:2431:2;3058:30:102;;474:2431:2;3058:30:102;;;;;;474:2431:2;3058:30:102;;;:::i;:::-;;;474:2431:2;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;474:2431:2;;;811:66:68;474:2431:2;;4753:42:56;;4675:120;;;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4964:220:54:-;474:2431:2;;5147:30:54;4964:220;474:2431:2;;;1782:71:54;474:2431:2;;;1782:71:54;474:2431:2;;;;;;5147:30:54;4964:220::o;7084:141:55:-;474:2431:2;8837:64:55;474:2431:2;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;474:2431:2;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;474:2431:2;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;474:2431:2;4917:24:75;;4862:1;4917:24;474:2431:2;4917:24:75;474:2431:2;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"103":[{"start":209,"length":32},{"start":1351,"length":32}],"43508":[{"start":2080,"length":32},{"start":2367,"length":32}]}},"methodIdentifiers":{"RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isAccessAllowedByAsset(address,uint256)":"a1a2dac6","isAccessAllowedByHolder(address,address)":"929cd2e0","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowedByAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowedByHolder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowedByAsset(address,uint256)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"assetId\":\"ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isAccessAllowedByHolder(address,address)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"holder\":\"Address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowedByAsset(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"},\"isAccessAllowedByHolder(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8\",\"dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isAccessAllowedByAsset(address,uint256)":{"params":{"account":"Address of the account to verify.","assetId":"ID of the asset used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isAccessAllowedByHolder(address,address)":{"params":{"account":"Address of the account to verify.","holder":"Address of the rights holder used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"isAccessAllowedByAsset(address,uint256)":{"notice":"Checks if an account has access to a specific asset ID."},"isAccessAllowedByHolder(address,address)":{"notice":"Checks if an account has access rights based on a holder's criteria."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/AccessAgg.sol":"AccessAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/AccessAgg.sol":{"keccak256":"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e","urls":["bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8","dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/AccessAgg.sol","id":203,"exportedSymbols":{"AccessAgg":[202],"AccessControlledUpgradeable":[51328],"IRightsPolicyManager":[50414],"Initializable":[43488],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:2874:2","nodes":[{"id":85,"nodeType":"PragmaDirective","src":"32:23:2","nodes":[],"literals":["solidity","0.8",".26"]},{"id":87,"nodeType":"ImportDirective","src":"57:98:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":86,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"66:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89,"nodeType":"ImportDirective","src":"156:102:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":88,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"165:15:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91,"nodeType":"ImportDirective","src":"260:115:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":90,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"269:27:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93,"nodeType":"ImportDirective","src":"376:96:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":50415,"symbolAliases":[{"foreign":{"id":92,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"385:20:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":202,"nodeType":"ContractDefinition","src":"474:2431:2","nodes":[{"id":103,"nodeType":"VariableDeclaration","src":"628:59:2","nodes":[],"constant":false,"documentation":{"id":100,"nodeType":"StructuredDocumentation","src":"562:61:2","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"666:21:2","scope":202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"},"typeName":{"id":102,"nodeType":"UserDefinedTypeName","pathNode":{"id":101,"name":"IRightsPolicyManager","nameLocations":["628:20:2"],"nodeType":"IdentifierPath","referencedDeclaration":50414,"src":"628:20:2"},"referencedDeclaration":50414,"src":"628:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":119,"nodeType":"FunctionDefinition","src":"747:345:2","nodes":[],"body":{"id":118,"nodeType":"Block","src":"788:304:2","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":109,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"988:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111,"nodeType":"ExpressionStatement","src":"988:22:2"},{"expression":{"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":112,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1020:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":114,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"1065:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":113,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"1044:20:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50414_$","typeString":"type(contract IRightsPolicyManager)"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"src":"1020:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":117,"nodeType":"ExpressionStatement","src":"1020:65:2"}]},"documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"694:48:2","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"767:19:2","nodeType":"VariableDeclaration","scope":119,"src":"759:27:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"758:29:2"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[],"src":"788:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":135,"nodeType":"FunctionDefinition","src":"1286:151:2","nodes":[],"body":{"id":134,"nodeType":"Block","src":"1348:89:2","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":127,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"1358:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":129,"nodeType":"ExpressionStatement","src":"1358:24:2"},{"expression":{"arguments":[{"id":131,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1416:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":130,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"1392:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"ExpressionStatement","src":"1392:38:2"}]},"documentation":{"id":120,"nodeType":"StructuredDocumentation","src":"1098:183:2","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":125,"kind":"modifierInvocation","modifierName":{"id":124,"name":"initializer","nameLocations":["1336:11:2"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"1336:11:2"},"nodeType":"ModifierInvocation","src":"1336:11:2"}],"name":"initialize","nameLocation":"1295:10:2","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"accessManager","nameLocation":"1314:13:2","nodeType":"VariableDeclaration","scope":135,"src":"1306:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1305:23:2"},"returnParameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"1348:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":163,"nodeType":"FunctionDefinition","src":"1727:261:2","nodes":[],"body":{"id":162,"nodeType":"Block","src":"1822:166:2","nodes":[],"statements":[{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"criteria","nameLocation":"1845:8:2","nodeType":"VariableDeclaration","scope":162,"src":"1832:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":145,"name":"bytes","nodeType":"ElementaryTypeName","src":"1832:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"1867:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1856:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1860:6:2","memberName":"encode","nodeType":"MemberAccess","src":"1856:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1832:42:2"},{"assignments":[153,null],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"active","nameLocation":"1890:6:2","nodeType":"VariableDeclaration","scope":162,"src":"1885:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":152,"name":"bool","nodeType":"ElementaryTypeName","src":"1885:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":159,"initialValue":{"arguments":[{"id":156,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1940:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":157,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1949:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":154,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1902:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50388,"src":"1902:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"1884:74:2"},{"expression":{"id":160,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"1975:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":144,"id":161,"nodeType":"Return","src":"1968:13:2"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"1443:279:2","text":"@notice Checks if an account has access rights based on a holder's criteria.\n @param account Address of the account to verify.\n @param holder Address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"929cd2e0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByHolder","nameLocation":"1736:23:2","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"account","nameLocation":"1768:7:2","nodeType":"VariableDeclaration","scope":163,"src":"1760:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"1760:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"holder","nameLocation":"1785:6:2","nodeType":"VariableDeclaration","scope":163,"src":"1777:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1759:33:2"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163,"src":"1816:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":142,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":191,"nodeType":"FunctionDefinition","src":"2253:262:2","nodes":[],"body":{"id":190,"nodeType":"Block","src":"2348:167:2","nodes":[],"statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"criteria","nameLocation":"2371:8:2","nodeType":"VariableDeclaration","scope":190,"src":"2358:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173,"name":"bytes","nodeType":"ElementaryTypeName","src":"2358:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"id":177,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2393:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2382:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2386:6:2","memberName":"encode","nodeType":"MemberAccess","src":"2382:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2382:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2358:43:2"},{"assignments":[181,null],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"active","nameLocation":"2417:6:2","nodeType":"VariableDeclaration","scope":190,"src":"2412:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":180,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":187,"initialValue":{"arguments":[{"id":184,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2467:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"2476:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":182,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2429:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50388,"src":"2429:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"2411:74:2"},{"expression":{"id":188,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"2502:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":172,"id":189,"nodeType":"Return","src":"2495:13:2"}]},"documentation":{"id":164,"nodeType":"StructuredDocumentation","src":"1994:254:2","text":"@notice Checks if an account has access to a specific asset ID.\n @param account Address of the account to verify.\n @param assetId ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"a1a2dac6","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByAsset","nameLocation":"2262:22:2","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"account","nameLocation":"2293:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2285:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"2285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"assetId","nameLocation":"2310:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2302:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2284:34:2"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":191,"src":"2342:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":201,"nodeType":"FunctionDefinition","src":"2819:84:2","nodes":[],"body":{"id":200,"nodeType":"Block","src":"2901:2:2","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"2521:293:2","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":198,"kind":"modifierInvocation","modifierName":{"id":197,"name":"onlyAdmin","nameLocations":["2891:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"2891:9:2"},"nodeType":"ModifierInvocation","src":"2891:9:2"}],"name":"_authorizeUpgrade","nameLocation":"2828:17:2","overrides":{"id":196,"nodeType":"OverrideSpecifier","overrides":[],"src":"2882:8:2"},"parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"newImplementation","nameLocation":"2854:17:2","nodeType":"VariableDeclaration","scope":201,"src":"2846:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2845:27:2"},"returnParameters":{"id":199,"nodeType":"ParameterList","parameters":[],"src":"2901:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":94,"name":"Initializable","nameLocations":["496:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"496:13:2"},"id":95,"nodeType":"InheritanceSpecifier","src":"496:13:2"},{"baseName":{"id":96,"name":"UUPSUpgradeable","nameLocations":["511:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"511:15:2"},"id":97,"nodeType":"InheritanceSpecifier","src":"511:15:2"},{"baseName":{"id":98,"name":"AccessControlledUpgradeable","nameLocations":["528:27:2"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"528:27:2"},"id":99,"nodeType":"InheritanceSpecifier","src":"528:27:2"}],"canonicalName":"AccessAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[202,51328,43234,43838,43716,43670,44407,43488],"name":"AccessAgg","nameLocation":"483:9:2","scope":203,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[43259,43805,44380]}],"license":"MIT"},"id":2} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowedByAsset","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isAccessAllowedByHolder","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014557601f6111fc38819003918201601f19168301916001600160401b038311848410176101495780849260209460405283398101031261014557516001600160a01b0381169081900361014557306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610136576002600160401b03196001600160401b038216016100cd575b5060a05260405161109e908161015e8239608051818181610820015261093f015260a05181818160d101526105470152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;-1:-1:-1;;474:2431:2;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;474:2431:2;;;;;;;;1171:4:56;1163:13;;8837:64:55;474:2431:2;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;474:2431:2;;7985:34:55;7981:146;;-1:-1:-1;1020:65:2;;;474:2431;;;;;;;;1163:13:56;474:2431:2;;;;;;;;;;1020:65;474:2431;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;474:2431:2;-1:-1:-1;;;;;474:2431:2;;;8837:64:55;474:2431:2;;;;;;8087:29:55;;474:2431:2;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;474:2431:2;-1:-1:-1;474:2431:2;;;;;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461089857806352d1902d146107db5780637a9e5e4b146106e65780638fb3603714610635578063929cd2e0146105bf578063a1a2dac6146104a6578063ad3cb1cc14610425578063bf7e214f146103b5578063c4d66de8146100f95763f1bdc45214610087575f80fd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557610130610d48565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ad575b60011490816103a3575b15908161039a575b5061037257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561031d575b506101f3610f78565b6101fb610f78565b610203610f78565b61020b610f78565b61021481610ecd565b61021c610f78565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561028a57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101ea565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610181565b303b159150610179565b84915061016f565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f557602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576104a2604051610464604082610d6b565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610e13565b0390f35b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761052e60406104e2610d48565b8151906024356020830152602082526104fb8383610d6b565b825193849283927fbe5fb16600000000000000000000000000000000000000000000000000000000845260048401610e9d565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156105b4576020915f91610584575b506040519015158152f35b6105a6915060403d6040116105ad575b61059e8183610d6b565b810190610e63565b5082610579565b503d610594565b6040513d5f823e3d90fd5b346100f55760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576105f6610d48565b6024359073ffffffffffffffffffffffffffffffffffffffff82168092036100f55761052e916040918251916020830152602082526104fb8383610d6b565b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156106de5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6106b4565b346100f55760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55761071d610d48565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036107af57803b1561076d5761076b90610ecd565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100f5575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f55773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108705760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f5576108ca610d48565b6024359067ffffffffffffffff82116100f557366023830112156100f5578160040135906108f782610dd9565b916109056040519384610d6b565b808352602083019336602483830101116100f557815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d06575b50610870576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa9081156105b4575f91610cbb575b5015610c375773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c03575b50610a7657847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610bd85750823b15610bad57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610b7b575f809161076b945190845af43d15610b73573d91610b5783610dd9565b92610b656040519485610d6b565b83523d5f602085013e610fcf565b606091610fcf565b50505034610b8557005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c2f575b81610c1f60209383610d6b565b810103126100f557519086610a45565b3d9150610c12565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610cfe575b81610cd660409383610d6b565b810103126100f5576020610ce982610e56565b91015163ffffffff8116036100f557846109f0565b3d9150610cc9565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc541614158461096a565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100f557565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610dac57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610dac57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b519081151582036100f557565b91908260409103126100f5576020610e7a83610e56565b92015173ffffffffffffffffffffffffffffffffffffffff811681036100f55790565b60409073ffffffffffffffffffffffffffffffffffffffff610eca94931681528160208201520190610e13565b90565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615610fa757565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061100c5750805115610fe457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b8151158061105f575b61101d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561101556fea26469706673582212202e5754fb7e75dbb169594500b936583cd6d90b9799eb24010bce9d850919e7de64736f6c634300081a0033","sourceMap":"474:2431:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;628:59;474:2431;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:55;474:2431:2;;;;;;4301:16:55;474:2431:2;;;;4726:16:55;;:34;;;;474:2431:2;4805:1:55;4790:16;:50;;;;474:2431:2;4855:13:55;:30;;;;474:2431:2;4851:91:55;;;474:2431:2;;4805:1:55;474:2431:2;;;;;8837:64:55;474:2431:2;4979:67:55;;474:2431:2;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;474:2431:2;;3295:62:102;474:2431:2;;;3295:62:102;474:2431:2;5066:101:55;;474:2431:2;5066:101:55;474:2431:2;8837:64:55;474:2431:2;;8837:64:55;474:2431:2;5142:14:55;474:2431:2;;;4805:1:55;474:2431:2;;5142:14:55;474:2431:2;4979:67:55;474:2431:2;;;;8837:64:55;474:2431:2;4979:67:55;;;4851:91;4908:23;474:2431:2;4908:23:55;474:2431:2;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;474:2431:2;;;;;;;;;;;;;1782:71:54;474:2431:2;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;2429:56;474:2431;;;:::i;:::-;;;;;;;2382:19;;474:2431;;2382:19;;;;;;:::i;:::-;474:2431;;2429:56;;;;;474:2431;2429:56;;474:2431;2429:56;;;:::i;:::-;;:21;474:2431;2429:21;474:2431;2429:56;;;;;;474:2431;2429:56;474:2431;2429:56;;;474:2431;;;;;;;;;;2429:56;;;;474:2431;2429:56;474:2431;2429:56;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;474:2431;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;1902:56;474:2431;;;;;1856:18;474:2431;1856:18;;474:2431;;1856:18;;;;;;:::i;474:2431::-;;;;;;;;;;;1782:71:54;474:2431:2;;;;;4698:71:54;;;474:2431:2;;4698:71:54;474:2431:2;;;;;;;;4698:71:54;474:2431:2;;4698:71:54;;474:2431:2;;;;;;;;;;;;;:::i;:::-;;1782:71:54;474:2431:2;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;474:2431:2;4355:110:54;474:2431:2;4411:43:54;;474:2431:2;4411:43:54;474:2431:2;;;;;4411:43:54;4254:92;4302:33;474:2431:2;4302:33:54;966:10:57;474:2431:2;;;;4302:33:54;474:2431:2;;;;;;;;;;;;5115:6:56;474:2431:2;5106:4:56;5098:23;5094:145;;474:2431:2;;;811:66:68;474:2431:2;;;5094:145:56;5199:29;474:2431:2;5199:29:56;474:2431:2;;5199:29:56;474:2431:2;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;474:2431:2;4683:4:56;;4675:23;:120;;;;;474:2431:2;4658:251:56;;;3058:30:102;474:2431:2;;3295:62:102;474:2431:2;;;;3058:30:102;;;;474:2431:2;3058:30:102;;474:2431:2;;3058:30:102;;474:2431:2;1893:10:102;474:2431:2;;;;3058:30:102;;;;;;;474:2431:2;3058:30:102;;;474:2431:2;1869:35:102;;1865:140;;474:2431:2;;;;;;;6156:52:56;;474:2431:2;6156:52:56;474:2431:2;6156:52:56;;;;474:2431:2;;6156:52:56;;;474:2431:2;-1:-1:-1;6152:437:56;;6518:60;;474:2431:2;6518:60:56;474:2431:2;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;474:2431:2;;811:66:68;474:2431:2;;;811:66:68;474:2431:2;2407:36:68;474:2431:2;2407:36:68;;474:2431:2;;2458:15:68;:11;;474:2431:2;4049:25:75;;4091:55;4049:25;;;;;;474:2431:2;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;474:2431:2:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;474:2431:2;6159:70:68;6199:19;474:2431:2;6199:19:68;474:2431:2;;6199:19:68;1744:119;1805:47;474:2431:2;1805:47:68;474:2431:2;;;;1805:47:68;6246:120:56;6317:34;474:2431:2;6317:34:56;474:2431:2;;;;6317:34:56;6156:52;;;;474:2431:2;6156:52:56;;474:2431:2;6156:52:56;;;;;;474:2431:2;6156:52:56;;;:::i;:::-;;;474:2431:2;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;474:2431:2;;1927:67:102;;;474:2431:2;;1927:67:102;;520:1:100;474:2431:2;;520:1:100;;474:2431:2;520:1:100;3058:30:102;474:2431:2;;520:1:100;;;;;;1927:67:102;3058:30;;;474:2431:2;3058:30:102;;474:2431:2;3058:30:102;;;;;;474:2431:2;3058:30:102;;;:::i;:::-;;;474:2431:2;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;474:2431:2;;;811:66:68;474:2431:2;;4753:42:56;;4675:120;;;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;474:2431:2;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;474:2431:2;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;4964:220:54:-;474:2431:2;;5147:30:54;4964:220;474:2431:2;;;1782:71:54;474:2431:2;;;1782:71:54;474:2431:2;;;;;;5147:30:54;4964:220::o;7084:141:55:-;474:2431:2;8837:64:55;474:2431:2;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;474:2431:2;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;474:2431:2;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;474:2431:2;4917:24:75;;4862:1;4917:24;474:2431:2;4917:24:75;474:2431:2;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"103":[{"start":209,"length":32},{"start":1351,"length":32}],"43541":[{"start":2080,"length":32},{"start":2367,"length":32}]}},"methodIdentifiers":{"RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isAccessAllowedByAsset(address,uint256)":"a1a2dac6","isAccessAllowedByHolder(address,address)":"929cd2e0","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"isAccessAllowedByAsset\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isAccessAllowedByHolder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isAccessAllowedByAsset(address,uint256)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"assetId\":\"ID of the asset used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isAccessAllowedByHolder(address,address)\":{\"params\":{\"account\":\"Address of the account to verify.\",\"holder\":\"Address of the rights holder used as criteria.\"},\"returns\":{\"_0\":\"active True if the account has access; otherwise, false.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"isAccessAllowedByAsset(address,uint256)\":{\"notice\":\"Checks if an account has access to a specific asset ID.\"},\"isAccessAllowedByHolder(address,address)\":{\"notice\":\"Checks if an account has access rights based on a holder's criteria.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/AccessAgg.sol\":\"AccessAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/AccessAgg.sol\":{\"keccak256\":\"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8\",\"dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByAsset","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isAccessAllowedByHolder","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isAccessAllowedByAsset(address,uint256)":{"params":{"account":"Address of the account to verify.","assetId":"ID of the asset used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isAccessAllowedByHolder(address,address)":{"params":{"account":"Address of the account to verify.","holder":"Address of the rights holder used as criteria."},"returns":{"_0":"active True if the account has access; otherwise, false."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"isAccessAllowedByAsset(address,uint256)":{"notice":"Checks if an account has access to a specific asset ID."},"isAccessAllowedByHolder(address,address)":{"notice":"Checks if an account has access rights based on a holder's criteria."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/AccessAgg.sol":"AccessAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/AccessAgg.sol":{"keccak256":"0xac84fdeac803313a0de33ee07e3ec0b9f115b5aa80976f401b296c513774b28e","urls":["bzz-raw://ec0ac0b41d4bfb64700a638ebd4a47e883cb872dba088f2472f160ee70b57eb8","dweb:/ipfs/QmVFnvcMLTVbFxFEvDw7545vvnqZ7U4TiPU7Y8urQSyR56"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/AccessAgg.sol","id":203,"exportedSymbols":{"AccessAgg":[202],"AccessControlledUpgradeable":[51361],"IRightsPolicyManager":[50447],"Initializable":[43521],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:2874:2","nodes":[{"id":85,"nodeType":"PragmaDirective","src":"32:23:2","nodes":[],"literals":["solidity","0.8",".26"]},{"id":87,"nodeType":"ImportDirective","src":"57:98:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":86,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"66:13:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89,"nodeType":"ImportDirective","src":"156:102:2","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":88,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"165:15:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91,"nodeType":"ImportDirective","src":"260:115:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":90,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"269:27:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":93,"nodeType":"ImportDirective","src":"376:96:2","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":203,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":92,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"385:20:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":202,"nodeType":"ContractDefinition","src":"474:2431:2","nodes":[{"id":103,"nodeType":"VariableDeclaration","src":"628:59:2","nodes":[],"constant":false,"documentation":{"id":100,"nodeType":"StructuredDocumentation","src":"562:61:2","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"666:21:2","scope":202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"},"typeName":{"id":102,"nodeType":"UserDefinedTypeName","pathNode":{"id":101,"name":"IRightsPolicyManager","nameLocations":["628:20:2"],"nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"628:20:2"},"referencedDeclaration":50447,"src":"628:20:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":119,"nodeType":"FunctionDefinition","src":"747:345:2","nodes":[],"body":{"id":118,"nodeType":"Block","src":"788:304:2","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":109,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"988:20:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":110,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"988:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":111,"nodeType":"ExpressionStatement","src":"988:22:2"},{"expression":{"id":116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":112,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1020:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":114,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":106,"src":"1065:19:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":113,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"1044:20:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50447_$","typeString":"type(contract IRightsPolicyManager)"}},"id":115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1044:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"src":"1020:65:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":117,"nodeType":"ExpressionStatement","src":"1020:65:2"}]},"documentation":{"id":104,"nodeType":"StructuredDocumentation","src":"694:48:2","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":106,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"767:19:2","nodeType":"VariableDeclaration","scope":119,"src":"759:27:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":105,"name":"address","nodeType":"ElementaryTypeName","src":"759:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"758:29:2"},"returnParameters":{"id":108,"nodeType":"ParameterList","parameters":[],"src":"788:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":135,"nodeType":"FunctionDefinition","src":"1286:151:2","nodes":[],"body":{"id":134,"nodeType":"Block","src":"1348:89:2","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":127,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"1358:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1358:24:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":129,"nodeType":"ExpressionStatement","src":"1358:24:2"},{"expression":{"arguments":[{"id":131,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":122,"src":"1416:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":130,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"1392:23:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1392:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":133,"nodeType":"ExpressionStatement","src":"1392:38:2"}]},"documentation":{"id":120,"nodeType":"StructuredDocumentation","src":"1098:183:2","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":125,"kind":"modifierInvocation","modifierName":{"id":124,"name":"initializer","nameLocations":["1336:11:2"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"1336:11:2"},"nodeType":"ModifierInvocation","src":"1336:11:2"}],"name":"initialize","nameLocation":"1295:10:2","parameters":{"id":123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":122,"mutability":"mutable","name":"accessManager","nameLocation":"1314:13:2","nodeType":"VariableDeclaration","scope":135,"src":"1306:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":121,"name":"address","nodeType":"ElementaryTypeName","src":"1306:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1305:23:2"},"returnParameters":{"id":126,"nodeType":"ParameterList","parameters":[],"src":"1348:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":163,"nodeType":"FunctionDefinition","src":"1727:261:2","nodes":[],"body":{"id":162,"nodeType":"Block","src":"1822:166:2","nodes":[],"statements":[{"assignments":[146],"declarations":[{"constant":false,"id":146,"mutability":"mutable","name":"criteria","nameLocation":"1845:8:2","nodeType":"VariableDeclaration","scope":162,"src":"1832:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":145,"name":"bytes","nodeType":"ElementaryTypeName","src":"1832:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":151,"initialValue":{"arguments":[{"id":149,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"1867:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":147,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1856:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1860:6:2","memberName":"encode","nodeType":"MemberAccess","src":"1856:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1856:18:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"1832:42:2"},{"assignments":[153,null],"declarations":[{"constant":false,"id":153,"mutability":"mutable","name":"active","nameLocation":"1890:6:2","nodeType":"VariableDeclaration","scope":162,"src":"1885:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":152,"name":"bool","nodeType":"ElementaryTypeName","src":"1885:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":159,"initialValue":{"arguments":[{"id":156,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":138,"src":"1940:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":157,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":146,"src":"1949:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":154,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"1902:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50421,"src":"1902:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1902:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"1884:74:2"},{"expression":{"id":160,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":153,"src":"1975:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":144,"id":161,"nodeType":"Return","src":"1968:13:2"}]},"documentation":{"id":136,"nodeType":"StructuredDocumentation","src":"1443:279:2","text":"@notice Checks if an account has access rights based on a holder's criteria.\n @param account Address of the account to verify.\n @param holder Address of the rights holder used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"929cd2e0","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByHolder","nameLocation":"1736:23:2","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":138,"mutability":"mutable","name":"account","nameLocation":"1768:7:2","nodeType":"VariableDeclaration","scope":163,"src":"1760:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":137,"name":"address","nodeType":"ElementaryTypeName","src":"1760:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"holder","nameLocation":"1785:6:2","nodeType":"VariableDeclaration","scope":163,"src":"1777:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":139,"name":"address","nodeType":"ElementaryTypeName","src":"1777:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1759:33:2"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":163,"src":"1816:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":142,"name":"bool","nodeType":"ElementaryTypeName","src":"1816:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1815:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":191,"nodeType":"FunctionDefinition","src":"2253:262:2","nodes":[],"body":{"id":190,"nodeType":"Block","src":"2348:167:2","nodes":[],"statements":[{"assignments":[174],"declarations":[{"constant":false,"id":174,"mutability":"mutable","name":"criteria","nameLocation":"2371:8:2","nodeType":"VariableDeclaration","scope":190,"src":"2358:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":173,"name":"bytes","nodeType":"ElementaryTypeName","src":"2358:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":179,"initialValue":{"arguments":[{"id":177,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":168,"src":"2393:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":175,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2382:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":176,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2386:6:2","memberName":"encode","nodeType":"MemberAccess","src":"2382:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2382:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2358:43:2"},{"assignments":[181,null],"declarations":[{"constant":false,"id":181,"mutability":"mutable","name":"active","nameLocation":"2417:6:2","nodeType":"VariableDeclaration","scope":190,"src":"2412:11:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":180,"name":"bool","nodeType":"ElementaryTypeName","src":"2412:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":187,"initialValue":{"arguments":[{"id":184,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":166,"src":"2467:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":174,"src":"2476:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":182,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":103,"src":"2429:21:2","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2451:15:2","memberName":"getActivePolicy","nodeType":"MemberAccess","referencedDeclaration":50421,"src":"2429:37:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_bool_$_t_address_$","typeString":"function (address,bytes memory) view external returns (bool,address)"}},"id":186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2429:56:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_address_$","typeString":"tuple(bool,address)"}},"nodeType":"VariableDeclarationStatement","src":"2411:74:2"},{"expression":{"id":188,"name":"active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":181,"src":"2502:6:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":172,"id":189,"nodeType":"Return","src":"2495:13:2"}]},"documentation":{"id":164,"nodeType":"StructuredDocumentation","src":"1994:254:2","text":"@notice Checks if an account has access to a specific asset ID.\n @param account Address of the account to verify.\n @param assetId ID of the asset used as criteria.\n @return active True if the account has access; otherwise, false."},"functionSelector":"a1a2dac6","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowedByAsset","nameLocation":"2262:22:2","parameters":{"id":169,"nodeType":"ParameterList","parameters":[{"constant":false,"id":166,"mutability":"mutable","name":"account","nameLocation":"2293:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2285:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":165,"name":"address","nodeType":"ElementaryTypeName","src":"2285:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":168,"mutability":"mutable","name":"assetId","nameLocation":"2310:7:2","nodeType":"VariableDeclaration","scope":191,"src":"2302:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":167,"name":"uint256","nodeType":"ElementaryTypeName","src":"2302:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2284:34:2"},"returnParameters":{"id":172,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":191,"src":"2342:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":170,"name":"bool","nodeType":"ElementaryTypeName","src":"2342:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2341:6:2"},"scope":202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":201,"nodeType":"FunctionDefinition","src":"2819:84:2","nodes":[],"body":{"id":200,"nodeType":"Block","src":"2901:2:2","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":192,"nodeType":"StructuredDocumentation","src":"2521:293:2","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":198,"kind":"modifierInvocation","modifierName":{"id":197,"name":"onlyAdmin","nameLocations":["2891:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"2891:9:2"},"nodeType":"ModifierInvocation","src":"2891:9:2"}],"name":"_authorizeUpgrade","nameLocation":"2828:17:2","overrides":{"id":196,"nodeType":"OverrideSpecifier","overrides":[],"src":"2882:8:2"},"parameters":{"id":195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":194,"mutability":"mutable","name":"newImplementation","nameLocation":"2854:17:2","nodeType":"VariableDeclaration","scope":201,"src":"2846:25:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":193,"name":"address","nodeType":"ElementaryTypeName","src":"2846:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2845:27:2"},"returnParameters":{"id":199,"nodeType":"ParameterList","parameters":[],"src":"2901:0:2"},"scope":202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":94,"name":"Initializable","nameLocations":["496:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"496:13:2"},"id":95,"nodeType":"InheritanceSpecifier","src":"496:13:2"},{"baseName":{"id":96,"name":"UUPSUpgradeable","nameLocations":["511:15:2"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"511:15:2"},"id":97,"nodeType":"InheritanceSpecifier","src":"511:15:2"},{"baseName":{"id":98,"name":"AccessControlledUpgradeable","nameLocations":["528:27:2"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"528:27:2"},"id":99,"nodeType":"InheritanceSpecifier","src":"528:27:2"}],"canonicalName":"AccessAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[202,51361,43267,43871,43749,43703,44440,43521],"name":"AccessAgg","nameLocation":"483:9:2","scope":203,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[43292,43838,44413]}],"license":"MIT"},"id":2} \ No newline at end of file diff --git a/src/config/abi/AccessWorkflow.json b/src/config/abi/AccessWorkflow.json index 49ecb6484..2c7461dc6 100644 --- a/src/config/abi/AccessWorkflow.json +++ b/src/config/abi/AccessWorkflow.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"agreementManager","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"AGREEMENT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgreementManager"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerAccessAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AccessAgreementCreated","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61156c38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516113b490816101b882396080518181816105fd01526106fe015260a05181818160c00152610c66015260c051818181610d820152611121015260e051818181610b400152610cd20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;1218:3646:6;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;1218:3646:6;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;1218:3646:6;;;;2527:65;1218:3646;;;2602:55;;1218:3646;2667:17;;1218:3646;;;;;;;;1163:13:56;1218:3646:6;;;;;;;;;;2527:65;1218:3646;;;;;;;;;;2602:55;1218:3646;;;;;;;;;;2667:17;1218:3646;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;1218:3646:6;-1:-1:-1;;;;;1218:3646:6;;;8837:64:55;1218:3646:6;;;;;;8087:29:55;;1218:3646:6;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;1218:3646:6;-1:-1:-1;1218:3646:6;;;;;;-1:-1:-1;1218:3646:6;;;;;-1:-1:-1;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1414:59;1218:3646;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;8837:64:55;1218:3646:6;;;;;;4301:16:55;1218:3646:6;;;;4726:16:55;;:34;;;;1218:3646:6;4805:1:55;4790:16;:50;;;;1218:3646:6;4855:13:55;:30;;;;1218:3646:6;4851:91:55;;;1218:3646:6;;4805:1:55;1218:3646:6;;;;;8837:64:55;1218:3646:6;4979:67:55;;1218:3646:6;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;1218:3646:6;;3295:62:102;1218:3646:6;;;3295:62:102;1218:3646:6;5066:101:55;;1218:3646:6;5066:101:55;1218:3646:6;8837:64:55;1218:3646:6;;8837:64:55;1218:3646:6;5142:14:55;1218:3646:6;;;4805:1:55;1218:3646:6;;5142:14:55;1218:3646:6;4979:67:55;1218:3646:6;;;;8837:64:55;1218:3646:6;4979:67:55;;;4851:91;4908:23;1218:3646:6;4908:23:55;1218:3646:6;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;1782:71:54;1218:3646:6;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;1782:71:54;1218:3646:6;;;;;4698:71:54;;;1218:3646:6;;4698:71:54;1218:3646:6;;;;;;;;4698:71:54;1218:3646:6;;4698:71:54;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;1782:71:54;1218:3646:6;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1218:3646:6;4355:110:54;1218:3646:6;4411:43:54;;1218:3646:6;4411:43:54;1218:3646:6;;;;;4411:43:54;4254:92;4302:33;1218:3646:6;4302:33:54;966:10:57;1218:3646:6;;;;4302:33:54;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;5115:6:56;1218:3646:6;5106:4:56;5098:23;5094:145;;1218:3646:6;;;811:66:68;1218:3646:6;;;5094:145:56;5199:29;1218:3646:6;5199:29:56;1218:3646:6;;5199:29:56;1218:3646:6;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;1218:3646:6;4683:4:56;;4675:23;:120;;;;;1218:3646:6;4658:251:56;;;3058:30:102;1218:3646:6;;3295:62:102;1218:3646:6;;;;3058:30:102;;;;1218:3646:6;3058:30:102;;1218:3646:6;;3058:30:102;;1218:3646:6;1893:10:102;1218:3646:6;;;;3058:30:102;;;;;;;1218:3646:6;3058:30:102;;;1218:3646:6;1869:35:102;;1865:140;;1218:3646:6;;;;;;;6156:52:56;;1218:3646:6;6156:52:56;1218:3646:6;6156:52:56;;;;1218:3646:6;;6156:52:56;;;1218:3646:6;-1:-1:-1;6152:437:56;;6518:60;;1218:3646:6;6518:60:56;1218:3646:6;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;1218:3646:6;;811:66:68;1218:3646:6;;;811:66:68;1218:3646:6;2407:36:68;1218:3646:6;2407:36:68;;1218:3646:6;;2458:15:68;:11;;1218:3646:6;4049:25:75;;4091:55;4049:25;;;;;;1218:3646:6;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;1218:3646:6:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;1218:3646:6;6159:70:68;6199:19;1218:3646:6;6199:19:68;1218:3646:6;;6199:19:68;1744:119;1805:47;1218:3646:6;1805:47:68;1218:3646:6;;;;1805:47:68;6246:120:56;6317:34;1218:3646:6;6317:34:56;1218:3646:6;;;;6317:34:56;6156:52;;;;1218:3646:6;6156:52:56;;1218:3646:6;6156:52:56;;;;;;1218:3646:6;6156:52:56;;;:::i;:::-;;;1218:3646:6;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;1218:3646:6;;1927:67:102;;;1218:3646:6;;1927:67:102;;520:1:100;1218:3646:6;;520:1:100;;1218:3646:6;520:1:100;3058:30:102;1218:3646:6;;520:1:100;;;;;;1927:67:102;3058:30;;;1218:3646:6;3058:30:102;;1218:3646:6;3058:30:102;;;;;;1218:3646:6;3058:30:102;;;:::i;:::-;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;;1218:3646:6;;;;;;;;;4675:120:56;1218:3646:6;;;811:66:68;1218:3646:6;;4753:42:56;;4675:120;;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1669:27;1218:3646;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3796:10;;1218:3646;;3850:27;;1218:3646;;3929:18;;1218:3646;;4052:21;;1218:3646;4052:21;1218:3646;;;;4178:77;;;1218:3646;4178:77;;1218:3646;;;;4178:77;1218:3646;4178:77;;1218:3646;;4013:3;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:77;;:17;1218:3646;;4178:17;1218:3646;4178:77;;;;;;;1218:3646;4178:77;;;1218:3646;;;;;;;;4297:66;;;;1218:3646;4297:66;;;1218:3646;4297:66;;1218:3646;;;;;;;;;;;4297:66;;;;;;;1218:3646;4297:66;;;1218:3646;;4378:60;1218:3646;;;;;;;;;;;;4378:60;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1218:3646:6;;;;;;;;;;;;;4297:66;;;;;;1218:3646;4297:66;;;;;;:::i;:::-;;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:66:6;;;-1:-1:-1;4378:60:6;;-1:-1:-1;4297:66:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;4178:77;;;;1218:3646;4178:77;;1218:3646;4178:77;;;;;;1218:3646;4178:77;;;:::i;:::-;;;1218:3646;;;;;;4178:77;;1218:3646;4178:77;;;;;-1:-1:-1;4178:77:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;1545:52;1218:3646;1545:52;1218:3646;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;4964:220:54:-;1218:3646:6;;5147:30:54;4964:220;1218:3646:6;;;1782:71:54;1218:3646:6;;;1782:71:54;1218:3646:6;;;;;;5147:30:54;4964:220::o;7084:141:55:-;1218:3646:6;8837:64:55;1218:3646:6;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;1218:3646:6;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1218:3646:6;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1218:3646:6;4917:24:75;;4862:1;4917:24;1218:3646:6;4917:24:75;1218:3646:6;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"1087":[{"start":192,"length":32},{"start":3174,"length":32}],"1091":[{"start":3458,"length":32},{"start":4385,"length":32}],"1095":[{"start":2880,"length":32},{"start":3282,"length":32}],"43508":[{"start":1533,"length":32},{"start":1790,"length":32}]}},"methodIdentifiers":{"AGREEMENT_MANAGER()":"00efe0c3","MMC()":"44dea5a7","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","registerAccessAgreement(uint256,address,address,address[],bytes)":"290ed221","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of MMC tokens used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"attestationIds An array of registered attestations under the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"AGREEMENT_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"}},\"notice\":\"Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/AccessWorkflow.sol\":{\"keccak256\":\"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8\",\"dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"agreementManager","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AccessAgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AGREEMENT_MANAGER","outputs":[{"internalType":"contract IAgreementManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"details":"Encapsulates agreement creation and access policy registration into one cohesive workflow.","params":{"amount":"The amount of MMC tokens to be used in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."},"returns":{"_0":"attestationIds An array of registered attestations under the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new access agreement in a single transaction."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/facades/AccessWorkflow.sol":"AccessWorkflow"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/facades/AccessWorkflow.sol":{"keccak256":"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508","urls":["bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8","dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol":{"keccak256":"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67","urls":["bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff","dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/facades/AccessWorkflow.sol","id":1256,"exportedSymbols":{"AccessControlledUpgradeable":[51328],"AccessWorkflow":[1255],"FinancialOps":[50692],"IAgreementManager":[50202],"IERC20":[44863],"IPolicy":[50275],"IRightsPolicyManager":[50414],"Initializable":[43488],"LoopOps":[50712],"T":[51200],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:4833:6","nodes":[{"id":1053,"nodeType":"PragmaDirective","src":"32:23:6","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1055,"nodeType":"ImportDirective","src":"57:71:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":44398,"symbolAliases":[{"foreign":{"id":1054,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44863,"src":"66:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1057,"nodeType":"ImportDirective","src":"129:98:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":1056,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"138:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1059,"nodeType":"ImportDirective","src":"228:102:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":1058,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"237:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1061,"nodeType":"ImportDirective","src":"331:115:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":1060,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"340:27:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1063,"nodeType":"ImportDirective","src":"448:96:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50415,"symbolAliases":[{"foreign":{"id":1062,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"457:20:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1065,"nodeType":"ImportDirective","src":"545:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50693,"symbolAliases":[{"foreign":{"id":1064,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50692,"src":"554:12:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1067,"nodeType":"ImportDirective","src":"618:62:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50713,"symbolAliases":[{"foreign":{"id":1066,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50712,"src":"627:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1069,"nodeType":"ImportDirective","src":"681:93:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol","file":"@synaps3/core/interfaces/financial/IAgreementManager.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50203,"symbolAliases":[{"foreign":{"id":1068,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50202,"src":"690:17:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1071,"nodeType":"ImportDirective","src":"775:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":50276,"symbolAliases":[{"foreign":{"id":1070,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"784:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1073,"nodeType":"ImportDirective","src":"848:55:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1256,"sourceUnit":51201,"symbolAliases":[{"foreign":{"id":1072,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"857:1:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1255,"nodeType":"ContractDefinition","src":"1218:3646:6","nodes":[{"id":1083,"nodeType":"UsingForDirective","src":"1311:31:6","nodes":[],"global":false,"libraryName":{"id":1081,"name":"FinancialOps","nameLocations":["1317:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":50692,"src":"1317:12:6"},"typeName":{"id":1082,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":1087,"nodeType":"VariableDeclaration","src":"1414:59:6","nodes":[],"constant":false,"documentation":{"id":1084,"nodeType":"StructuredDocumentation","src":"1348:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1452:21:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"},"typeName":{"id":1086,"nodeType":"UserDefinedTypeName","pathNode":{"id":1085,"name":"IRightsPolicyManager","nameLocations":["1414:20:6"],"nodeType":"IdentifierPath","referencedDeclaration":50414,"src":"1414:20:6"},"referencedDeclaration":50414,"src":"1414:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":1091,"nodeType":"VariableDeclaration","src":"1545:52:6","nodes":[],"constant":false,"documentation":{"id":1088,"nodeType":"StructuredDocumentation","src":"1479:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"00efe0c3","mutability":"immutable","name":"AGREEMENT_MANAGER","nameLocation":"1580:17:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"},"typeName":{"id":1090,"nodeType":"UserDefinedTypeName","pathNode":{"id":1089,"name":"IAgreementManager","nameLocations":["1545:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":50202,"src":"1545:17:6"},"referencedDeclaration":50202,"src":"1545:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"visibility":"public"},{"id":1095,"nodeType":"VariableDeclaration","src":"1669:27:6","nodes":[],"constant":false,"documentation":{"id":1092,"nodeType":"StructuredDocumentation","src":"1603:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1693:3:6","scope":1255,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"},"typeName":{"id":1094,"nodeType":"UserDefinedTypeName","pathNode":{"id":1093,"name":"IERC20","nameLocations":["1669:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":44863,"src":"1669:6:6"},"referencedDeclaration":44863,"src":"1669:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"visibility":"public"},{"id":1106,"nodeType":"EventDefinition","src":"2041:115:6","nodes":[],"anonymous":false,"documentation":{"id":1096,"nodeType":"StructuredDocumentation","src":"1703:333:6","text":"@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement.\n @param amount The amount of MMC tokens used in the agreement."},"eventSelector":"8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc407789","name":"AccessAgreementCreated","nameLocation":"2047:22:6","parameters":{"id":1105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1098,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2086:6:6","nodeType":"VariableDeclaration","scope":1106,"src":"2070:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1097,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1100,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"2110:13:6","nodeType":"VariableDeclaration","scope":1106,"src":"2094:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1099,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1102,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2133:5:6","nodeType":"VariableDeclaration","scope":1106,"src":"2125:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1101,"name":"uint256","nodeType":"ElementaryTypeName","src":"2125:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1104,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2148:6:6","nodeType":"VariableDeclaration","scope":1106,"src":"2140:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1103,"name":"uint256","nodeType":"ElementaryTypeName","src":"2140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2069:86:6"}},{"id":1138,"nodeType":"FunctionDefinition","src":"2215:476:6","nodes":[],"body":{"id":1137,"nodeType":"Block","src":"2295:396:6","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1116,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"2495:20:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1118,"nodeType":"ExpressionStatement","src":"2495:22:6"},{"expression":{"id":1123,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1119,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"2527:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1121,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1109,"src":"2572:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1120,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50414,"src":"2551:20:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50414_$","typeString":"type(contract IRightsPolicyManager)"}},"id":1122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"src":"2527:65:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":1124,"nodeType":"ExpressionStatement","src":"2527:65:6"},{"expression":{"id":1129,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1125,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"2602:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1127,"name":"agreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1111,"src":"2640:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1126,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50202,"src":"2622:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAgreementManager_$50202_$","typeString":"type(contract IAgreementManager)"}},"id":1128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2622:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"src":"2602:55:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"id":1130,"nodeType":"ExpressionStatement","src":"2602:55:6"},{"expression":{"id":1135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1131,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"2667:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1133,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1113,"src":"2680:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1132,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44863,"src":"2673:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$44863_$","typeString":"type(contract IERC20)"}},"id":1134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"src":"2667:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}},"id":1136,"nodeType":"ExpressionStatement","src":"2667:17:6"}]},"documentation":{"id":1107,"nodeType":"StructuredDocumentation","src":"2162:48:6","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1114,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1109,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"2235:19:6","nodeType":"VariableDeclaration","scope":1138,"src":"2227:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1108,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1111,"mutability":"mutable","name":"agreementManager","nameLocation":"2264:16:6","nodeType":"VariableDeclaration","scope":1138,"src":"2256:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1110,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1113,"mutability":"mutable","name":"mmc","nameLocation":"2290:3:6","nodeType":"VariableDeclaration","scope":1138,"src":"2282:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1112,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:68:6"},"returnParameters":{"id":1115,"nodeType":"ParameterList","parameters":[],"src":"2295:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1154,"nodeType":"FunctionDefinition","src":"2742:151:6","nodes":[],"body":{"id":1153,"nodeType":"Block","src":"2804:89:6","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1146,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"2814:22:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2814:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1148,"nodeType":"ExpressionStatement","src":"2814:24:6"},{"expression":{"arguments":[{"id":1150,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1141,"src":"2872:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1149,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"2848:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1152,"nodeType":"ExpressionStatement","src":"2848:38:6"}]},"documentation":{"id":1139,"nodeType":"StructuredDocumentation","src":"2697:40:6","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1144,"kind":"modifierInvocation","modifierName":{"id":1143,"name":"initializer","nameLocations":["2792:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"2792:11:6"},"nodeType":"ModifierInvocation","src":"2792:11:6"}],"name":"initialize","nameLocation":"2751:10:6","parameters":{"id":1142,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1141,"mutability":"mutable","name":"accessManager","nameLocation":"2770:13:6","nodeType":"VariableDeclaration","scope":1154,"src":"2762:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1140,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2761:23:6"},"returnParameters":{"id":1145,"nodeType":"ParameterList","parameters":[],"src":"2804:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1244,"nodeType":"FunctionDefinition","src":"3558:916:6","nodes":[],"body":{"id":1243,"nodeType":"Block","src":"3778:696:6","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1173,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"3796:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3796:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e742063616e6e6f74206265207a65726f","id":1176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:23:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""},"value":"Amount cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""}],"id":1172,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3788:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1178,"nodeType":"ExpressionStatement","src":"3788:44:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1180,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"3850:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3875:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3867:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1181,"name":"address","nodeType":"ElementaryTypeName","src":"3867:7:6","typeDescriptions":{}}},"id":1184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3850:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616464726573732063616e6e6f74206265207a65726f","id":1186,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3879:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""},"value":"Policy address cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""}],"id":1179,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3842:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1188,"nodeType":"ExpressionStatement","src":"3842:69:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1190,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"3929:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3937:6:6","memberName":"length","nodeType":"MemberAccess","src":"3929:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3946:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3929:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172746965732063616e6e6f7420626520656d707479","id":1194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3949:25:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""},"value":"Parties cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""}],"id":1189,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3921:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:54:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1196,"nodeType":"ExpressionStatement","src":"3921:54:6"},{"assignments":[1198],"declarations":[{"constant":false,"id":1198,"mutability":"mutable","name":"currency","nameLocation":"3994:8:6","nodeType":"VariableDeclaration","scope":1243,"src":"3986:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1197,"name":"address","nodeType":"ElementaryTypeName","src":"3986:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1203,"initialValue":{"arguments":[{"id":1201,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1095,"src":"4013:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$44863","typeString":"contract IERC20"}],"id":1200,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4005:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1199,"name":"address","nodeType":"ElementaryTypeName","src":"4005:7:6","typeDescriptions":{}}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3986:31:6"},{"assignments":[1205],"declarations":[{"constant":false,"id":1205,"mutability":"mutable","name":"broker","nameLocation":"4035:6:6","nodeType":"VariableDeclaration","scope":1243,"src":"4027:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1204,"name":"address","nodeType":"ElementaryTypeName","src":"4027:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1210,"initialValue":{"arguments":[{"id":1208,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"4052:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}],"id":1207,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4044:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1206,"name":"address","nodeType":"ElementaryTypeName","src":"4044:7:6","typeDescriptions":{}}},"id":1209,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4027:47:6"},{"assignments":[1212],"declarations":[{"constant":false,"id":1212,"mutability":"mutable","name":"proof","nameLocation":"4170:5:6","nodeType":"VariableDeclaration","scope":1243,"src":"4162:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1211,"name":"uint256","nodeType":"ElementaryTypeName","src":"4162:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1221,"initialValue":{"arguments":[{"id":1215,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"4212:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1216,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1198,"src":"4220:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1217,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"4230:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1218,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1164,"src":"4238:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1219,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1166,"src":"4247:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1213,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1091,"src":"4178:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50202","typeString":"contract IAgreementManager"}},"id":1214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4196:15:6","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":50183,"src":"4178:33:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4162:93:6"},{"assignments":[1226],"declarations":[{"constant":false,"id":1226,"mutability":"mutable","name":"attestations","nameLocation":"4282:12:6","nodeType":"VariableDeclaration","scope":1243,"src":"4265:29:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1224,"name":"uint256","nodeType":"ElementaryTypeName","src":"4265:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1225,"nodeType":"ArrayTypeName","src":"4265:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":1233,"initialValue":{"arguments":[{"id":1229,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"4334:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1230,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"4341:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1231,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"4349:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1227,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1087,"src":"4297:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50414","typeString":"contract IRightsPolicyManager"}},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:14:6","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":50413,"src":"4297:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address) external returns (uint256[] memory)"}},"id":1232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:66:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4265:98:6"},{"eventCall":{"arguments":[{"id":1235,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"4401:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1236,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1161,"src":"4409:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1237,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1212,"src":"4424:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1238,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"4431:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1234,"name":"AccessAgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1106,"src":"4378:22:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:60:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1240,"nodeType":"EmitStatement","src":"4373:65:6"},{"expression":{"id":1241,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1226,"src":"4455:12:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1171,"id":1242,"nodeType":"Return","src":"4448:19:6"}]},"documentation":{"id":1155,"nodeType":"StructuredDocumentation","src":"2899:654:6","text":"@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return attestationIds An array of registered attestations under the agreement."},"functionSelector":"290ed221","implemented":true,"kind":"function","modifiers":[],"name":"registerAccessAgreement","nameLocation":"3567:23:6","parameters":{"id":1167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"amount","nameLocation":"3608:6:6","nodeType":"VariableDeclaration","scope":1244,"src":"3600:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"holder","nameLocation":"3632:6:6","nodeType":"VariableDeclaration","scope":1244,"src":"3624:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"3624:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1161,"mutability":"mutable","name":"policyAddress","nameLocation":"3656:13:6","nodeType":"VariableDeclaration","scope":1244,"src":"3648:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1160,"name":"address","nodeType":"ElementaryTypeName","src":"3648:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1164,"mutability":"mutable","name":"parties","nameLocation":"3698:7:6","nodeType":"VariableDeclaration","scope":1244,"src":"3679:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1162,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1163,"nodeType":"ArrayTypeName","src":"3679:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1166,"mutability":"mutable","name":"payload","nameLocation":"3730:7:6","nodeType":"VariableDeclaration","scope":1244,"src":"3715:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1165,"name":"bytes","nodeType":"ElementaryTypeName","src":"3715:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:153:6"},"returnParameters":{"id":1171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1170,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1244,"src":"3760:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1168,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1169,"nodeType":"ArrayTypeName","src":"3760:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3759:18:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1254,"nodeType":"FunctionDefinition","src":"4778:84:6","nodes":[],"body":{"id":1253,"nodeType":"Block","src":"4860:2:6","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":1245,"nodeType":"StructuredDocumentation","src":"4480:293:6","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1251,"kind":"modifierInvocation","modifierName":{"id":1250,"name":"onlyAdmin","nameLocations":["4850:9:6"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"4850:9:6"},"nodeType":"ModifierInvocation","src":"4850:9:6"}],"name":"_authorizeUpgrade","nameLocation":"4787:17:6","overrides":{"id":1249,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:6"},"parameters":{"id":1248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1247,"mutability":"mutable","name":"newImplementation","nameLocation":"4813:17:6","nodeType":"VariableDeclaration","scope":1254,"src":"4805:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1246,"name":"address","nodeType":"ElementaryTypeName","src":"4805:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4804:27:6"},"returnParameters":{"id":1252,"nodeType":"ParameterList","parameters":[],"src":"4860:0:6"},"scope":1255,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1075,"name":"Initializable","nameLocations":["1245:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"1245:13:6"},"id":1076,"nodeType":"InheritanceSpecifier","src":"1245:13:6"},{"baseName":{"id":1077,"name":"UUPSUpgradeable","nameLocations":["1260:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"1260:15:6"},"id":1078,"nodeType":"InheritanceSpecifier","src":"1260:15:6"},{"baseName":{"id":1079,"name":"AccessControlledUpgradeable","nameLocations":["1277:27:6"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"1277:27:6"},"id":1080,"nodeType":"InheritanceSpecifier","src":"1277:27:6"}],"canonicalName":"AccessWorkflow","contractDependencies":[],"contractKind":"contract","documentation":{"id":1074,"nodeType":"StructuredDocumentation","src":"905:313:6","text":"@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\n @dev This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management."},"fullyImplemented":true,"linearizedBaseContracts":[1255,51328,43234,43838,43716,43670,44407,43488],"name":"AccessWorkflow","nameLocation":"1227:14:6","scope":1256,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[1106,43259,43805,44380]}],"license":"MIT"},"id":6} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyManager","type":"address","internalType":"address"},{"name":"agreementManager","type":"address","internalType":"address"},{"name":"mmc","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"AGREEMENT_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAgreementManager"}],"stateMutability":"view"},{"type":"function","name":"MMC","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerAccessAgreement","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"holder","type":"address","internalType":"address"},{"name":"policyAddress","type":"address","internalType":"address"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AccessAgreementCreated","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"policyAddress","type":"address","indexed":true,"internalType":"address"},{"name":"proof","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x6101003461018b57601f61156c38819003918201601f19168301916001600160401b0383118484101761018f5780849260609460405283398101031261018b57610048816101a3565b90610061604061005a602084016101a3565b92016101a3565b91306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c1661017c576002600160401b03196001600160401b03821601610113575b506001600160a01b0390811660a05290811660c0521660e0526040516113b490816101b882396080518181816105fd01526106fe015260a05181818160c00152610c66015260c051818181610d820152611121015260e051818181610b400152610cd20152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f6100ac565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361018b5756fe6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;1218:3646:6;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;1218:3646:6;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;1218:3646:6;;;;2527:65;1218:3646;;;2602:55;;1218:3646;2667:17;;1218:3646;;;;;;;;1163:13:56;1218:3646:6;;;;;;;;;;2527:65;1218:3646;;;;;;;;;;2602:55;1218:3646;;;;;;;;;;2667:17;1218:3646;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;1218:3646:6;-1:-1:-1;;;;;1218:3646:6;;;8837:64:55;1218:3646:6;;;;;;8087:29:55;;1218:3646:6;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;1218:3646:6;-1:-1:-1;1218:3646:6;;;;;;-1:-1:-1;1218:3646:6;;;;;-1:-1:-1;1218:3646:6;;;;-1:-1:-1;;;;;1218:3646:6;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c908162efe0c3146110f757508063290ed22114610b6457806344dea5a714610b145780634f1ef2861461067557806352d1902d146105d65780637a9e5e4b146104ff5780638fb360371461046c578063ad3cb1cc146103d8578063bf7e214f14610386578063c4d66de8146100e85763f1bdc45214610094575f80fd5b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100e45760206003193601126100e457610101611145565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161037e575b6001149081610374575b15908161036b575b5061034357818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556102ee575b506101c461128e565b6101cc61128e565b6101d461128e565b6101dc61128e565b6101e5816111e3565b6101ed61128e565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561025b57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055836101bb565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610152565b303b15915061014a565b849150610140565b346100e4575f6003193601126100e457602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100e4575f6003193601126100e45760408051906103f78183611168565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346100e4575f6003193601126100e4577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156104f75760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6104cd565b346100e45760206003193601126100e457610518611145565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036105aa57803b1561056857610566906111e3565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100e4575f6003193601126100e45773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016300361064d5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60406003193601126100e457610689611145565b6024359067ffffffffffffffff82116100e457366023830112156100e4578160040135906106b6826111a9565b916106c46040519384611168565b808352602083019336602483830101116100e457815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610ad2575b5061064d576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610ac7575f91610a7a575b50156109f65773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f91816109c2575b5061083557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8692036109975750823b1561096c57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561093a575f8091610566945190845af43d15610932573d91610916836111a9565b926109246040519485611168565b83523d5f602085013e6112e5565b6060916112e5565b5050503461094457005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d6020116109ee575b816109de60209383611168565b810103126100e457519086610804565b3d91506109d1565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610abf575b81610a9560409383611168565b810103126100e45780519081151582036100e4576020015163ffffffff8116036100e457846107af565b3d9150610a88565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610729565b346100e4575f6003193601126100e457602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100e45760a06003193601126100e45760043560243573ffffffffffffffffffffffffffffffffffffffff81168091036100e4576044359073ffffffffffffffffffffffffffffffffffffffff82168092036100e4576064359267ffffffffffffffff84116100e457366023850112156100e45783600401359067ffffffffffffffff82116100e4573660248360051b870101116100e4576084359467ffffffffffffffff86116100e457366023870112156100e457856004013567ffffffffffffffff81116100e45736602482890101116100e457821561109957851561103b578315610fdd57959273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016966040519485927f3f5d1b6f0000000000000000000000000000000000000000000000000000000084528060a4850187600487015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001660248701528b604487015260a0606487015252602460c485019501905f905b808210610f9d57505050837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f846020979560248896600319888c9a0301608489015282875201878601375f8682860101520116010301815f73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af1918215610ac7575f92610f67575b505f80956064604051809881937f9f7434f40000000000000000000000000000000000000000000000000000000083528760048401528860248401528960448401525af1948515610ac7575f95610e79575b507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899160409182519182526020820152a36040518091602082016020835281518091526020604084019201905f5b818110610e60575050500390f35b8251845285945060209384019390920191600101610e52565b9094503d805f833e610e8b8183611168565b8101906020818303126100e45780519067ffffffffffffffff82116100e457019080601f830112156100e45781519167ffffffffffffffff8311610f3a578260051b9060405193610edf6020840186611168565b84526020808501928201019283116100e457602001905b828210610f2a5750919591507f8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc4077899050610e04565b8151815260209182019101610ef6565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b9491506020853d602011610f95575b81610f8360209383611168565b810103126100e457935190935f610db2565b3d9150610f76565b9195909293945085359073ffffffffffffffffffffffffffffffffffffffff82168092036100e45760208160019382935201960192018794939291610d11565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f506172746965732063616e6e6f7420626520656d7074790000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f506f6c69637920616464726573732063616e6e6f74206265207a65726f0000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f416d6f756e742063616e6e6f74206265207a65726f00000000000000000000006044820152fd5b346100e4575f6003193601126100e45760209073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100e457565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f3a57604052565b67ffffffffffffffff8111610f3a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c16156112bd57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9061132257508051156112fa57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611375575b611333575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561132b56fea26469706673582212205820754a04ca0b0a3942409cfe71d6906ffd4bbcc7ea28d600bd6aadded56c0764736f6c634300081a0033","sourceMap":"1218:3646:6:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1414:59;1218:3646;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;8837:64:55;1218:3646:6;;;;;;4301:16:55;1218:3646:6;;;;4726:16:55;;:34;;;;1218:3646:6;4805:1:55;4790:16;:50;;;;1218:3646:6;4855:13:55;:30;;;;1218:3646:6;4851:91:55;;;1218:3646:6;;4805:1:55;1218:3646:6;;;;;8837:64:55;1218:3646:6;4979:67:55;;1218:3646:6;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;1218:3646:6;;3295:62:102;1218:3646:6;;;3295:62:102;1218:3646:6;5066:101:55;;1218:3646:6;5066:101:55;1218:3646:6;8837:64:55;1218:3646:6;;8837:64:55;1218:3646:6;5142:14:55;1218:3646:6;;;4805:1:55;1218:3646:6;;5142:14:55;1218:3646:6;4979:67:55;1218:3646:6;;;;8837:64:55;1218:3646:6;4979:67:55;;;4851:91;4908:23;1218:3646:6;4908:23:55;1218:3646:6;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;1782:71:54;1218:3646:6;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;1782:71:54;1218:3646:6;;;;;4698:71:54;;;1218:3646:6;;4698:71:54;1218:3646:6;;;;;;;;4698:71:54;1218:3646:6;;4698:71:54;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;1782:71:54;1218:3646:6;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1218:3646:6;4355:110:54;1218:3646:6;4411:43:54;;1218:3646:6;4411:43:54;1218:3646:6;;;;;4411:43:54;4254:92;4302:33;1218:3646:6;4302:33:54;966:10:57;1218:3646:6;;;;4302:33:54;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;5115:6:56;1218:3646:6;5106:4:56;5098:23;5094:145;;1218:3646:6;;;811:66:68;1218:3646:6;;;5094:145:56;5199:29;1218:3646:6;5199:29:56;1218:3646:6;;5199:29:56;1218:3646:6;;-1:-1:-1;;1218:3646:6;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:56;1218:3646:6;4683:4:56;;4675:23;:120;;;;;1218:3646:6;4658:251:56;;;3058:30:102;1218:3646:6;;3295:62:102;1218:3646:6;;;;3058:30:102;;;;1218:3646:6;3058:30:102;;1218:3646:6;;3058:30:102;;1218:3646:6;1893:10:102;1218:3646:6;;;;3058:30:102;;;;;;;1218:3646:6;3058:30:102;;;1218:3646:6;1869:35:102;;1865:140;;1218:3646:6;;;;;;;6156:52:56;;1218:3646:6;6156:52:56;1218:3646:6;6156:52:56;;;;1218:3646:6;;6156:52:56;;;1218:3646:6;-1:-1:-1;6152:437:56;;6518:60;;1218:3646:6;6518:60:56;1218:3646:6;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;1218:3646:6;;811:66:68;1218:3646:6;;;811:66:68;1218:3646:6;2407:36:68;1218:3646:6;2407:36:68;;1218:3646:6;;2458:15:68;:11;;1218:3646:6;4049:25:75;;4091:55;4049:25;;;;;;1218:3646:6;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;4091:55:75;:::i;1218:3646:6:-;;;4091:55:75;:::i;2454:148:68:-;6163:9;;;;6159:70;;1218:3646:6;6159:70:68;6199:19;1218:3646:6;6199:19:68;1218:3646:6;;6199:19:68;1744:119;1805:47;1218:3646:6;1805:47:68;1218:3646:6;;;;1805:47:68;6246:120:56;6317:34;1218:3646:6;6317:34:56;1218:3646:6;;;;6317:34:56;6156:52;;;;1218:3646:6;6156:52:56;;1218:3646:6;6156:52:56;;;;;;1218:3646:6;6156:52:56;;;:::i;:::-;;;1218:3646:6;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;1218:3646:6;;1927:67:102;;;1218:3646:6;;1927:67:102;;520:1:100;1218:3646:6;;520:1:100;;1218:3646:6;520:1:100;3058:30:102;1218:3646:6;;520:1:100;;;;;;1927:67:102;3058:30;;;1218:3646:6;3058:30:102;;1218:3646:6;3058:30:102;;;;;;1218:3646:6;3058:30:102;;;:::i;:::-;;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;;1218:3646:6;;;;;;;;;4675:120:56;1218:3646:6;;;811:66:68;1218:3646:6;;4753:42:56;;4675:120;;;1218:3646:6;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;1669:27;1218:3646;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3796:10;;1218:3646;;3850:27;;1218:3646;;3929:18;;1218:3646;;4052:21;;1218:3646;4052:21;1218:3646;;;;4178:77;;;1218:3646;4178:77;;1218:3646;;;;4178:77;1218:3646;4178:77;;1218:3646;;4013:3;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;;;;;;;;;;;;;;;;;;;;;;4178:77;;:17;1218:3646;;4178:17;1218:3646;4178:77;;;;;;;1218:3646;4178:77;;;1218:3646;;;;;;;;4297:66;;;;1218:3646;4297:66;;;1218:3646;4297:66;;1218:3646;;;;;;;;;;;4297:66;;;;;;;1218:3646;4297:66;;;1218:3646;;4378:60;1218:3646;;;;;;;;;;;;4378:60;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1218:3646:6;;;;;;;;;;;;;4297:66;;;;;;1218:3646;4297:66;;;;;;:::i;:::-;;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4297:66:6;;;-1:-1:-1;4378:60:6;;-1:-1:-1;4297:66:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;4178:77;;;;1218:3646;4178:77;;1218:3646;4178:77;;;;;;1218:3646;4178:77;;;:::i;:::-;;;1218:3646;;;;;;4178:77;;1218:3646;4178:77;;;;;-1:-1:-1;4178:77:6;;1218:3646;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1218:3646:6;;;;;;1545:52;1218:3646;1545:52;1218:3646;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;4964:220:54:-;1218:3646:6;;5147:30:54;4964:220;1218:3646:6;;;1782:71:54;1218:3646:6;;;1782:71:54;1218:3646:6;;;;;;5147:30:54;4964:220::o;7084:141:55:-;1218:3646:6;8837:64:55;1218:3646:6;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;1218:3646:6;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1218:3646:6;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1218:3646:6;4917:24:75;;4862:1;4917:24;1218:3646:6;4917:24:75;1218:3646:6;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"1120":[{"start":192,"length":32},{"start":3174,"length":32}],"1124":[{"start":3458,"length":32},{"start":4385,"length":32}],"1128":[{"start":2880,"length":32},{"start":3282,"length":32}],"43541":[{"start":1533,"length":32},{"start":1790,"length":32}]}},"methodIdentifiers":{"AGREEMENT_MANAGER()":"00efe0c3","MMC()":"44dea5a7","RIGHTS_POLICY_MANAGER()":"f1bdc452","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","registerAccessAgreement(uint256,address,address,address[],bytes)":"290ed221","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"agreementManager\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"mmc\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proof\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"AccessAgreementCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"AGREEMENT_MANAGER\",\"outputs\":[{\"internalType\":\"contract IAgreementManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MMC\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"policyAddress\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"name\":\"registerAccessAgreement\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"details\":\"This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"params\":{\"amount\":\"The amount of MMC tokens used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"policyAddress\":\"The address of the registered policy.\",\"proof\":\"The unique identifier of the agreement.\"}},\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"details\":\"Encapsulates agreement creation and access policy registration into one cohesive workflow.\",\"params\":{\"amount\":\"The amount of MMC tokens to be used in the agreement.\",\"holder\":\"The address of the rights holder.\",\"parties\":\"An array of addresses representing the parties involved in the agreement.\",\"payload\":\"Additional data required for the agreement creation.\",\"policyAddress\":\"The address of the policy contract being used.\"},\"returns\":{\"_0\":\"attestationIds An array of registered attestations under the agreement.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"AGREEMENT_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"MMC\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_MANAGER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"title\":\"AccessWorkflow\",\"version\":1},\"userdoc\":{\"events\":{\"AccessAgreementCreated(address,address,uint256,uint256)\":{\"notice\":\"Emitted when a policy agreement workflow is successfully completed.\"}},\"kind\":\"user\",\"methods\":{\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"registerAccessAgreement(uint256,address,address,address[],bytes)\":{\"notice\":\"Creates and registers a new access agreement in a single transaction.\"}},\"notice\":\"Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/facades/AccessWorkflow.sol\":\"AccessWorkflow\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/facades/AccessWorkflow.sol\":{\"keccak256\":\"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8\",\"dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol\":{\"keccak256\":\"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff\",\"dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyManager","type":"address"},{"internalType":"address","name":"agreementManager","type":"address"},{"internalType":"address","name":"mmc","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"policyAddress","type":"address","indexed":true},{"internalType":"uint256","name":"proof","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"AccessAgreementCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"AGREEMENT_MANAGER","outputs":[{"internalType":"contract IAgreementManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MMC","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"policyAddress","type":"address"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"registerAccessAgreement","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"details":"Encapsulates agreement creation and access policy registration into one cohesive workflow.","params":{"amount":"The amount of MMC tokens to be used in the agreement.","holder":"The address of the rights holder.","parties":"An array of addresses representing the parties involved in the agreement.","payload":"Additional data required for the agreement creation.","policyAddress":"The address of the policy contract being used."},"returns":{"_0":"attestationIds An array of registered attestations under the agreement."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address)":{"notice":"Initializes the proxy state."},"registerAccessAgreement(uint256,address,address,address[],bytes)":{"notice":"Creates and registers a new access agreement in a single transaction."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/facades/AccessWorkflow.sol":"AccessWorkflow"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/facades/AccessWorkflow.sol":{"keccak256":"0x7307825991759923678ba86a8ce58e6522e2b13c44db19ebb4574aeef8417508","urls":["bzz-raw://df7e3bcf83697db234dcc22b9b13b7ac653b2e87ad1cb70a772f417cc59fd0a8","dweb:/ipfs/QmTVJo6Q4QnUtbu97uE531EjZLUZoVsRnZTKYgiwKUMe3T"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol":{"keccak256":"0xd6e6eecd11819f0031962e653d55ad529f616f0e4b57751623c2c7481bc4fa67","urls":["bzz-raw://cfe472eae18ebebe8bdb62247dd951143742b963c196d863173d431a27e175ff","dweb:/ipfs/QmTMYXFTcLvim8KS3wwc15uwCDjjWXhDCcdmPQPWnq4qGk"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/facades/AccessWorkflow.sol","id":1289,"exportedSymbols":{"AccessControlledUpgradeable":[51361],"AccessWorkflow":[1288],"FinancialOps":[50725],"IAgreementManager":[50235],"IERC20":[44896],"IPolicy":[50308],"IRightsPolicyManager":[50447],"Initializable":[43521],"LoopOps":[50745],"T":[51233],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:4833:6","nodes":[{"id":1086,"nodeType":"PragmaDirective","src":"32:23:6","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1088,"nodeType":"ImportDirective","src":"57:71:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol","file":"@openzeppelin/contracts/interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":44431,"symbolAliases":[{"foreign":{"id":1087,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44896,"src":"66:6:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1090,"nodeType":"ImportDirective","src":"129:98:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":1089,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"138:13:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1092,"nodeType":"ImportDirective","src":"228:102:6","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":1091,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"237:15:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1094,"nodeType":"ImportDirective","src":"331:115:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":1093,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"340:27:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1096,"nodeType":"ImportDirective","src":"448:96:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyManager.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50448,"symbolAliases":[{"foreign":{"id":1095,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"457:20:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1098,"nodeType":"ImportDirective","src":"545:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50726,"symbolAliases":[{"foreign":{"id":1097,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50725,"src":"554:12:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1100,"nodeType":"ImportDirective","src":"618:62:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50746,"symbolAliases":[{"foreign":{"id":1099,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50745,"src":"627:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1102,"nodeType":"ImportDirective","src":"681:93:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/financial/IAgreementManager.sol","file":"@synaps3/core/interfaces/financial/IAgreementManager.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50236,"symbolAliases":[{"foreign":{"id":1101,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50235,"src":"690:17:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1104,"nodeType":"ImportDirective","src":"775:72:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":50309,"symbolAliases":[{"foreign":{"id":1103,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"784:7:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1106,"nodeType":"ImportDirective","src":"848:55:6","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1289,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":1105,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"857:1:6","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1288,"nodeType":"ContractDefinition","src":"1218:3646:6","nodes":[{"id":1116,"nodeType":"UsingForDirective","src":"1311:31:6","nodes":[],"global":false,"libraryName":{"id":1114,"name":"FinancialOps","nameLocations":["1317:12:6"],"nodeType":"IdentifierPath","referencedDeclaration":50725,"src":"1317:12:6"},"typeName":{"id":1115,"name":"address","nodeType":"ElementaryTypeName","src":"1334:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":1120,"nodeType":"VariableDeclaration","src":"1414:59:6","nodes":[],"constant":false,"documentation":{"id":1117,"nodeType":"StructuredDocumentation","src":"1348:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f1bdc452","mutability":"immutable","name":"RIGHTS_POLICY_MANAGER","nameLocation":"1452:21:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"},"typeName":{"id":1119,"nodeType":"UserDefinedTypeName","pathNode":{"id":1118,"name":"IRightsPolicyManager","nameLocations":["1414:20:6"],"nodeType":"IdentifierPath","referencedDeclaration":50447,"src":"1414:20:6"},"referencedDeclaration":50447,"src":"1414:20:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"visibility":"public"},{"id":1124,"nodeType":"VariableDeclaration","src":"1545:52:6","nodes":[],"constant":false,"documentation":{"id":1121,"nodeType":"StructuredDocumentation","src":"1479:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"00efe0c3","mutability":"immutable","name":"AGREEMENT_MANAGER","nameLocation":"1580:17:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"},"typeName":{"id":1123,"nodeType":"UserDefinedTypeName","pathNode":{"id":1122,"name":"IAgreementManager","nameLocations":["1545:17:6"],"nodeType":"IdentifierPath","referencedDeclaration":50235,"src":"1545:17:6"},"referencedDeclaration":50235,"src":"1545:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"visibility":"public"},{"id":1128,"nodeType":"VariableDeclaration","src":"1669:27:6","nodes":[],"constant":false,"documentation":{"id":1125,"nodeType":"StructuredDocumentation","src":"1603:61:6","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"44dea5a7","mutability":"immutable","name":"MMC","nameLocation":"1693:3:6","scope":1288,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"},"typeName":{"id":1127,"nodeType":"UserDefinedTypeName","pathNode":{"id":1126,"name":"IERC20","nameLocations":["1669:6:6"],"nodeType":"IdentifierPath","referencedDeclaration":44896,"src":"1669:6:6"},"referencedDeclaration":44896,"src":"1669:6:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"visibility":"public"},{"id":1139,"nodeType":"EventDefinition","src":"2041:115:6","nodes":[],"anonymous":false,"documentation":{"id":1129,"nodeType":"StructuredDocumentation","src":"1703:333:6","text":"@notice Emitted when a policy agreement workflow is successfully completed.\n @param holder The address of the rights holder.\n @param policyAddress The address of the registered policy.\n @param proof The unique identifier of the agreement.\n @param amount The amount of MMC tokens used in the agreement."},"eventSelector":"8cd9a647baec62fb1bd2494f394b09cfbf79545a0b3ba82a6ce7b934fc407789","name":"AccessAgreementCreated","nameLocation":"2047:22:6","parameters":{"id":1138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1131,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2086:6:6","nodeType":"VariableDeclaration","scope":1139,"src":"2070:22:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1130,"name":"address","nodeType":"ElementaryTypeName","src":"2070:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1133,"indexed":true,"mutability":"mutable","name":"policyAddress","nameLocation":"2110:13:6","nodeType":"VariableDeclaration","scope":1139,"src":"2094:29:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1132,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1135,"indexed":false,"mutability":"mutable","name":"proof","nameLocation":"2133:5:6","nodeType":"VariableDeclaration","scope":1139,"src":"2125:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1134,"name":"uint256","nodeType":"ElementaryTypeName","src":"2125:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1137,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2148:6:6","nodeType":"VariableDeclaration","scope":1139,"src":"2140:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1136,"name":"uint256","nodeType":"ElementaryTypeName","src":"2140:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2069:86:6"}},{"id":1171,"nodeType":"FunctionDefinition","src":"2215:476:6","nodes":[],"body":{"id":1170,"nodeType":"Block","src":"2295:396:6","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1149,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"2495:20:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1150,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2495:22:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1151,"nodeType":"ExpressionStatement","src":"2495:22:6"},{"expression":{"id":1156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1152,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"2527:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1154,"name":"rightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1142,"src":"2572:19:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1153,"name":"IRightsPolicyManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50447,"src":"2551:20:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyManager_$50447_$","typeString":"type(contract IRightsPolicyManager)"}},"id":1155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2551:41:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"src":"2527:65:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":1157,"nodeType":"ExpressionStatement","src":"2527:65:6"},{"expression":{"id":1162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1158,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"2602:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1160,"name":"agreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1144,"src":"2640:16:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1159,"name":"IAgreementManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50235,"src":"2622:17:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAgreementManager_$50235_$","typeString":"type(contract IAgreementManager)"}},"id":1161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2622:35:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"src":"2602:55:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"id":1163,"nodeType":"ExpressionStatement","src":"2602:55:6"},{"expression":{"id":1168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1164,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"2667:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1166,"name":"mmc","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1146,"src":"2680:3:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1165,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44896,"src":"2673:6:6","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20_$44896_$","typeString":"type(contract IERC20)"}},"id":1167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2673:11:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"src":"2667:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}},"id":1169,"nodeType":"ExpressionStatement","src":"2667:17:6"}]},"documentation":{"id":1140,"nodeType":"StructuredDocumentation","src":"2162:48:6","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1147,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1142,"mutability":"mutable","name":"rightsPolicyManager","nameLocation":"2235:19:6","nodeType":"VariableDeclaration","scope":1171,"src":"2227:27:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1141,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1144,"mutability":"mutable","name":"agreementManager","nameLocation":"2264:16:6","nodeType":"VariableDeclaration","scope":1171,"src":"2256:24:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1143,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1146,"mutability":"mutable","name":"mmc","nameLocation":"2290:3:6","nodeType":"VariableDeclaration","scope":1171,"src":"2282:11:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1145,"name":"address","nodeType":"ElementaryTypeName","src":"2282:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:68:6"},"returnParameters":{"id":1148,"nodeType":"ParameterList","parameters":[],"src":"2295:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1187,"nodeType":"FunctionDefinition","src":"2742:151:6","nodes":[],"body":{"id":1186,"nodeType":"Block","src":"2804:89:6","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":1179,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"2814:22:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":1180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2814:24:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1181,"nodeType":"ExpressionStatement","src":"2814:24:6"},{"expression":{"arguments":[{"id":1183,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1174,"src":"2872:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1182,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"2848:23:6","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2848:38:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1185,"nodeType":"ExpressionStatement","src":"2848:38:6"}]},"documentation":{"id":1172,"nodeType":"StructuredDocumentation","src":"2697:40:6","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":1177,"kind":"modifierInvocation","modifierName":{"id":1176,"name":"initializer","nameLocations":["2792:11:6"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"2792:11:6"},"nodeType":"ModifierInvocation","src":"2792:11:6"}],"name":"initialize","nameLocation":"2751:10:6","parameters":{"id":1175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1174,"mutability":"mutable","name":"accessManager","nameLocation":"2770:13:6","nodeType":"VariableDeclaration","scope":1187,"src":"2762:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1173,"name":"address","nodeType":"ElementaryTypeName","src":"2762:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2761:23:6"},"returnParameters":{"id":1178,"nodeType":"ParameterList","parameters":[],"src":"2804:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1277,"nodeType":"FunctionDefinition","src":"3558:916:6","nodes":[],"body":{"id":1276,"nodeType":"Block","src":"3778:696:6","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1206,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"3796:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1207,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3805:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3796:10:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"416d6f756e742063616e6e6f74206265207a65726f","id":1209,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3808:23:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""},"value":"Amount cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8beea76deddeff1012d90e1e8da369393f885b0575eb094a33da9912cc4bbb8b","typeString":"literal_string \"Amount cannot be zero\""}],"id":1205,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3788:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1210,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:44:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1211,"nodeType":"ExpressionStatement","src":"3788:44:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1213,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"3850:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3875:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3867:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1214,"name":"address","nodeType":"ElementaryTypeName","src":"3867:7:6","typeDescriptions":{}}},"id":1217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3867:10:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3850:27:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506f6c69637920616464726573732063616e6e6f74206265207a65726f","id":1219,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3879:31:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""},"value":"Policy address cannot be zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8a6661da13a8d67bc98e42ccc9fa9bc111e1eed8bd8a52fe22b2daae01e33d93","typeString":"literal_string \"Policy address cannot be zero\""}],"id":1212,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3842:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:69:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1221,"nodeType":"ExpressionStatement","src":"3842:69:6"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1223,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"3929:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3937:6:6","memberName":"length","nodeType":"MemberAccess","src":"3929:14:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3946:1:6","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"3929:18:6","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"506172746965732063616e6e6f7420626520656d707479","id":1227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3949:25:6","typeDescriptions":{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""},"value":"Parties cannot be empty"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_d35ccab2b07909e583991ce966a16acaa97b44c1d919c7f20eecf9f30f3804ae","typeString":"literal_string \"Parties cannot be empty\""}],"id":1222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18,-18],"referencedDeclaration":-18,"src":"3921:7:6","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":1228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3921:54:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1229,"nodeType":"ExpressionStatement","src":"3921:54:6"},{"assignments":[1231],"declarations":[{"constant":false,"id":1231,"mutability":"mutable","name":"currency","nameLocation":"3994:8:6","nodeType":"VariableDeclaration","scope":1276,"src":"3986:16:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1230,"name":"address","nodeType":"ElementaryTypeName","src":"3986:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1236,"initialValue":{"arguments":[{"id":1234,"name":"MMC","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1128,"src":"4013:3:6","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$44896","typeString":"contract IERC20"}],"id":1233,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4005:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1232,"name":"address","nodeType":"ElementaryTypeName","src":"4005:7:6","typeDescriptions":{}}},"id":1235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:12:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3986:31:6"},{"assignments":[1238],"declarations":[{"constant":false,"id":1238,"mutability":"mutable","name":"broker","nameLocation":"4035:6:6","nodeType":"VariableDeclaration","scope":1276,"src":"4027:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1237,"name":"address","nodeType":"ElementaryTypeName","src":"4027:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1243,"initialValue":{"arguments":[{"id":1241,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"4052:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}],"id":1240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4044:7:6","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1239,"name":"address","nodeType":"ElementaryTypeName","src":"4044:7:6","typeDescriptions":{}}},"id":1242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4044:30:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4027:47:6"},{"assignments":[1245],"declarations":[{"constant":false,"id":1245,"mutability":"mutable","name":"proof","nameLocation":"4170:5:6","nodeType":"VariableDeclaration","scope":1276,"src":"4162:13:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1244,"name":"uint256","nodeType":"ElementaryTypeName","src":"4162:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1254,"initialValue":{"arguments":[{"id":1248,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4212:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1249,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1231,"src":"4220:8:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1250,"name":"broker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1238,"src":"4230:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1251,"name":"parties","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1197,"src":"4238:7:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},{"id":1252,"name":"payload","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1199,"src":"4247:7:6","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"},{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"expression":{"id":1246,"name":"AGREEMENT_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1124,"src":"4178:17:6","typeDescriptions":{"typeIdentifier":"t_contract$_IAgreementManager_$50235","typeString":"contract IAgreementManager"}},"id":1247,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4196:15:6","memberName":"createAgreement","nodeType":"MemberAccess","referencedDeclaration":50216,"src":"4178:33:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_uint256_$","typeString":"function (uint256,address,address,address[] memory,bytes memory) external returns (uint256)"}},"id":1253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4178:77:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4162:93:6"},{"assignments":[1259],"declarations":[{"constant":false,"id":1259,"mutability":"mutable","name":"attestations","nameLocation":"4282:12:6","nodeType":"VariableDeclaration","scope":1276,"src":"4265:29:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1257,"name":"uint256","nodeType":"ElementaryTypeName","src":"4265:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1258,"nodeType":"ArrayTypeName","src":"4265:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":1266,"initialValue":{"arguments":[{"id":1262,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"4334:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1263,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"4341:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1264,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"4349:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":1260,"name":"RIGHTS_POLICY_MANAGER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1120,"src":"4297:21:6","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyManager_$50447","typeString":"contract IRightsPolicyManager"}},"id":1261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4319:14:6","memberName":"registerPolicy","nodeType":"MemberAccess","referencedDeclaration":50446,"src":"4297:36:6","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_address_$_t_address_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256,address,address) external returns (uint256[] memory)"}},"id":1265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4297:66:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"4265:98:6"},{"eventCall":{"arguments":[{"id":1268,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1192,"src":"4401:6:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1269,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1194,"src":"4409:13:6","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1270,"name":"proof","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1245,"src":"4424:5:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1271,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1190,"src":"4431:6:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1267,"name":"AccessAgreementCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1139,"src":"4378:22:6","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256,uint256)"}},"id":1272,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4378:60:6","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1273,"nodeType":"EmitStatement","src":"4373:65:6"},{"expression":{"id":1274,"name":"attestations","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1259,"src":"4455:12:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1204,"id":1275,"nodeType":"Return","src":"4448:19:6"}]},"documentation":{"id":1188,"nodeType":"StructuredDocumentation","src":"2899:654:6","text":"@notice Creates and registers a new access agreement in a single transaction.\n @dev Encapsulates agreement creation and access policy registration into one cohesive workflow.\n @param amount The amount of MMC tokens to be used in the agreement.\n @param holder The address of the rights holder.\n @param policyAddress The address of the policy contract being used.\n @param parties An array of addresses representing the parties involved in the agreement.\n @param payload Additional data required for the agreement creation.\n @return attestationIds An array of registered attestations under the agreement."},"functionSelector":"290ed221","implemented":true,"kind":"function","modifiers":[],"name":"registerAccessAgreement","nameLocation":"3567:23:6","parameters":{"id":1200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1190,"mutability":"mutable","name":"amount","nameLocation":"3608:6:6","nodeType":"VariableDeclaration","scope":1277,"src":"3600:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1189,"name":"uint256","nodeType":"ElementaryTypeName","src":"3600:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1192,"mutability":"mutable","name":"holder","nameLocation":"3632:6:6","nodeType":"VariableDeclaration","scope":1277,"src":"3624:14:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1191,"name":"address","nodeType":"ElementaryTypeName","src":"3624:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1194,"mutability":"mutable","name":"policyAddress","nameLocation":"3656:13:6","nodeType":"VariableDeclaration","scope":1277,"src":"3648:21:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1193,"name":"address","nodeType":"ElementaryTypeName","src":"3648:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1197,"mutability":"mutable","name":"parties","nameLocation":"3698:7:6","nodeType":"VariableDeclaration","scope":1277,"src":"3679:26:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1195,"name":"address","nodeType":"ElementaryTypeName","src":"3679:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1196,"nodeType":"ArrayTypeName","src":"3679:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":1199,"mutability":"mutable","name":"payload","nameLocation":"3730:7:6","nodeType":"VariableDeclaration","scope":1277,"src":"3715:22:6","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1198,"name":"bytes","nodeType":"ElementaryTypeName","src":"3715:5:6","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3590:153:6"},"returnParameters":{"id":1204,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1203,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1277,"src":"3760:16:6","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1201,"name":"uint256","nodeType":"ElementaryTypeName","src":"3760:7:6","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1202,"nodeType":"ArrayTypeName","src":"3760:9:6","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"3759:18:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1287,"nodeType":"FunctionDefinition","src":"4778:84:6","nodes":[],"body":{"id":1286,"nodeType":"Block","src":"4860:2:6","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":1278,"nodeType":"StructuredDocumentation","src":"4480:293:6","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":1284,"kind":"modifierInvocation","modifierName":{"id":1283,"name":"onlyAdmin","nameLocations":["4850:9:6"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"4850:9:6"},"nodeType":"ModifierInvocation","src":"4850:9:6"}],"name":"_authorizeUpgrade","nameLocation":"4787:17:6","overrides":{"id":1282,"nodeType":"OverrideSpecifier","overrides":[],"src":"4841:8:6"},"parameters":{"id":1281,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1280,"mutability":"mutable","name":"newImplementation","nameLocation":"4813:17:6","nodeType":"VariableDeclaration","scope":1287,"src":"4805:25:6","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1279,"name":"address","nodeType":"ElementaryTypeName","src":"4805:7:6","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4804:27:6"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[],"src":"4860:0:6"},"scope":1288,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":1108,"name":"Initializable","nameLocations":["1245:13:6"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"1245:13:6"},"id":1109,"nodeType":"InheritanceSpecifier","src":"1245:13:6"},{"baseName":{"id":1110,"name":"UUPSUpgradeable","nameLocations":["1260:15:6"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"1260:15:6"},"id":1111,"nodeType":"InheritanceSpecifier","src":"1260:15:6"},{"baseName":{"id":1112,"name":"AccessControlledUpgradeable","nameLocations":["1277:27:6"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"1277:27:6"},"id":1113,"nodeType":"InheritanceSpecifier","src":"1277:27:6"}],"canonicalName":"AccessWorkflow","contractDependencies":[],"contractKind":"contract","documentation":{"id":1107,"nodeType":"StructuredDocumentation","src":"905:313:6","text":"@title AccessWorkflow\n @notice Handles comprehensive workflows for access management, including agreement creation, policy registration, and related operations.\n @dev This contract provides a unified interface to interact with multiple core protocol components involved in access and policy management."},"fullyImplemented":true,"linearizedBaseContracts":[1288,51361,43267,43871,43749,43703,44440,43521],"name":"AccessWorkflow","nameLocation":"1227:14:6","scope":1289,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[1139,43292,43838,44413]}],"license":"MIT"},"id":6} \ No newline at end of file diff --git a/src/config/abi/LedgerVault.json b/src/config/abi/LedgerVault.json index 33c6606f8..9994dc0b1 100644 --- a/src/config/abi/LedgerVault.json +++ b/src/config/abi/LedgerVault.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"lock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsClaimed","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReleased","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsTransferred","inputs":[{"name":"sender","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NoFundsToLock","inputs":[]},{"type":"error","name":"NoFundsToRelease","inputs":[]},{"type":"error","name":"NoFundsToTransfer","inputs":[]},{"type":"error","name":"NoFundsToWithdraw","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161203f90816100ed8239608051818181610bcf0152610cee0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146112115780634bbc170a146110c05780634f1ef28614610c4757806352d1902d14610b8a57806369328dec14610a075780637a9e5e4b146109125780638fb36037146108615780639e96a26014610776578063ad3cb1cc146106c4578063bf7e214f14610654578063c4d66de814610380578063d949b844146102b6578063dbba0f011461019d578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112fb565b3061194d565b604051908152f35b5f80fd5b3461010857602061016073ffffffffffffffffffffffffffffffffffffffff7fdf4dcf17030d087ed1d90ed3c90719c7260706c1c4a88505dd2d0a982887cf436101553661131e565b809492959133611c9c565b9361016c8486836117c4565b6040805186815273ffffffffffffffffffffffffffffffffffffffff959095166020860152911692a2604051908152f35b34610108576101ab3661131e565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061028e578261020c6020948433611833565b6102178184846117c4565b7fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be773ffffffffffffffffffffffffffffffffffffffff604051931692806102833394878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a3604051908152f35b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102ed6112fb565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761036a73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103b76112fb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161064c575b6001149081610642575b159081610639575b5061061157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105bc575b5061047a611c45565b610482611c45565b61048a611c45565b610492611c45565b61049a611c45565b6104a2611c45565b6104aa611c45565b6104b3816118a2565b6104bb611c45565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561052957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610471565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610408565b303b159150610400565b8491506103f6565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906107018183611390565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b34610108576107843661131e565b61078e3633611438565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610839576107e38183602095611764565b6107ee8183336117c4565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561090a5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108e0565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576109496112fb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109db57803b1561099957610997906118a2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461010857610a153661131e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b625760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f205410610b3a5782610ac06020948433611833565b610acb818484611a64565b7fe9171aeff46c37ab955b8aff908e14ae9732bd06634fa131226cfe5c25bfd2fb8473ffffffffffffffffffffffffffffffffffffffff806040519487865216941692a35f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c1f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c796112fb565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610ca6826113fe565b91610cb46040519384611390565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561107e575b50610c1f576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611073575f91611043575b5015610fbf5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f8b575b50610e2557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f605750823b15610f3557807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610f03575f8091610997945190845af4610efd6119fe565b91611ee9565b50505034610f0d57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610fb7575b81610fa760209383611390565b8101031261010857519086610df4565b3d9150610f9a565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b611065915060403d60401161106c575b61105d8183611390565b810190611a3a565b5084610d9f565b503d611053565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610d19565b34610108576110ce3661131e565b6110d83633611438565b61111f8373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111e95773ffffffffffffffffffffffffffffffffffffffff836111698385602097611833565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061119e8482546117b7565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761121f3661131e565b6112293633611438565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112d35761128a828486611285838360209a611764565b6117c4565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113d157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113d157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff00000000000000000000000000000000000000000000000000000000833516606482015260648152611507608482611390565b5190895afa6115146119fe565b906116cc575b5015611528575b5050505050565b63ffffffff16156116a0577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561107357611690575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611521565b5f61169a91611390565b5f61161f565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116f45750506020806116ec938301019101611a3a565b905b5f61151a565b9190926020811015611708575b50506116ee565b81925090602091810103126101085760206117239101611a2d565b5f80611701565b9190820391821161173757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b9055565b9190820180921161173757565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f209182546117b7565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119f85773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611073575f916119c9575090565b90506020813d6020116119f0575b816119e460209383611390565b81010312610108575190565b3d91506119d7565b90503190565b3d15611a28573d90611a0f826113fe565b91611a1d6040519384611390565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a5183611a2d565b92015163ffffffff811681036101085790565b90918215611be75782611a77823061194d565b10611b895773ffffffffffffffffffffffffffffffffffffffff168015611afc57611afa9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611af5606483611390565b611f82565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b236119fe565b5015611b2b57565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c7457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611e035773ffffffffffffffffffffffffffffffffffffffff8216918215611d9857611ccd9082611e61565b8311611d3a57611d379173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611af5608483611390565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611da55790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ee35773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611073575f916119c9575090565b50503490565b90611f265750805115611efe57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f79575b611f37575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f2f565b905f602091828151910182855af115611073575f513d612000575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fbe5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611fb756fea2646970667358221220bba30d0deb0a0c146aeabd8453744ea5f617f51b1b601e6e80e776efe9d67cf964736f6c634300081a0033","sourceMap":"1210:9129:54:-:0;;;;;;;1171:4:93;1163:13;;8837:64:92;1210:9129:54;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;1210:9129:54;;7985:34:92;7981:146;;-1:-1:-1;1210:9129:54;;;;;;;;1163:13:93;1210:9129:54;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;1210:9129:54;-1:-1:-1;;;;;1210:9129:54;;;8837:64:92;1210:9129:54;;;8087:29:92;;1210:9129:54;;8087:29:92;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;1210:9129:54;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146112115780634bbc170a146110c05780634f1ef28614610c4757806352d1902d14610b8a57806369328dec14610a075780637a9e5e4b146109125780638fb36037146108615780639e96a26014610776578063ad3cb1cc146106c4578063bf7e214f14610654578063c4d66de814610380578063d949b844146102b6578063dbba0f011461019d578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112fb565b3061194d565b604051908152f35b5f80fd5b3461010857602061016073ffffffffffffffffffffffffffffffffffffffff7fdf4dcf17030d087ed1d90ed3c90719c7260706c1c4a88505dd2d0a982887cf436101553661131e565b809492959133611c9c565b9361016c8486836117c4565b6040805186815273ffffffffffffffffffffffffffffffffffffffff959095166020860152911692a2604051908152f35b34610108576101ab3661131e565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061028e578261020c6020948433611833565b6102178184846117c4565b7fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be773ffffffffffffffffffffffffffffffffffffffff604051931692806102833394878390929173ffffffffffffffffffffffffffffffffffffffff6020916040840195845216910152565b0390a3604051908152f35b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102ed6112fb565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761036a73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103b76112fb565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161064c575b6001149081610642575b159081610639575b5061061157818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556105bc575b5061047a611c45565b610482611c45565b61048a611c45565b610492611c45565b61049a611c45565b6104a2611c45565b6104aa611c45565b6104b3816118a2565b6104bb611c45565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005561052957005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610471565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b90501584610408565b303b159150610400565b8491506103f6565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906107018183611390565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b34610108576107843661131e565b61078e3633611438565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610839576107e38183602095611764565b6107ee8183336117c4565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff161561090a5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108e0565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576109496112fb565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109db57803b1561099957610997906118a2565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461010857610a153661131e565b917f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b625760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f205410610b3a5782610ac06020948433611833565b610acb818484611a64565b7fe9171aeff46c37ab955b8aff908e14ae9732bd06634fa131226cfe5c25bfd2fb8473ffffffffffffffffffffffffffffffffffffffff806040519487865216941692a35f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c1f5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c796112fb565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610ca6826113fe565b91610cb46040519384611390565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001680301490811561107e575b50610c1f576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611073575f91611043575b5015610fbf5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f8b575b50610e2557847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f605750823b15610f3557807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610f03575f8091610997945190845af4610efd6119fe565b91611ee9565b50505034610f0d57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610fb7575b81610fa760209383611390565b8101031261010857519086610df4565b3d9150610f9a565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b611065915060403d60401161106c575b61105d8183611390565b810190611a3a565b5084610d9f565b503d611053565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610d19565b34610108576110ce3661131e565b6110d83633611438565b61111f8373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111e95773ffffffffffffffffffffffffffffffffffffffff836111698385602097611833565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061119e8482546117b7565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761121f3661131e565b6112293633611438565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112d35761128a828486611285838360209a611764565b6117c4565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113d157604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113d157601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff00000000000000000000000000000000000000000000000000000000833516606482015260648152611507608482611390565b5190895afa6115146119fe565b906116cc575b5015611528575b5050505050565b63ffffffff16156116a0577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561107357611690575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611521565b5f61169a91611390565b5f61161f565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116f45750506020806116ec938301019101611a3a565b905b5f61151a565b9190926020811015611708575b50506116ee565b81925090602091810103126101085760206117239101611a2d565b5f80611701565b9190820391821161173757565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b9055565b9190820180921161173757565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f209182546117b7565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f526020526117b360405f2091825461172a565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119f85773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611073575f916119c9575090565b90506020813d6020116119f0575b816119e460209383611390565b81010312610108575190565b3d91506119d7565b90503190565b3d15611a28573d90611a0f826113fe565b91611a1d6040519384611390565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a5183611a2d565b92015163ffffffff811681036101085790565b90918215611be75782611a77823061194d565b10611b895773ffffffffffffffffffffffffffffffffffffffff168015611afc57611afa9273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611af5606483611390565b611f82565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b236119fe565b5015611b2b57565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c7457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611e035773ffffffffffffffffffffffffffffffffffffffff8216918215611d9857611ccd9082611e61565b8311611d3a57611d379173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611af5608483611390565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611da55790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ee35773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611073575f916119c9575090565b50503490565b90611f265750805115611efe57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f79575b611f37575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f2f565b905f602091828151910182855af115611073575f513d612000575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fbe5750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611fb756fea2646970667358221220bba30d0deb0a0c146aeabd8453744ea5f617f51b1b601e6e80e776efe9d67cf964736f6c634300081a0033","sourceMap":"1210:9129:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:33:45;1210:9129:54;;:::i;:::-;1904:4:45;1896:33;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;2371:40:45;1210:9129:54;4291:46;1210:9129;;;:::i;:::-;2371:10:45;;;;;;:40;:::i;:::-;2459:8;;;;;;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;;;;4291:46;1210:9129;;;;;;;;;;;;;:::i;:::-;3927:10:45;;1210:9129:54;;4178:54:47;1210:9129:54;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;3910:47:45;3906:79;;3927:10;4031:8;1210:9129:54;3927:10:45;;;4031:8;:::i;:::-;4085;;;;;:::i;:::-;5768:60:54;1210:9129;;;;;3927:10:45;;5768:60:54;3927:10:45;5768:60:54;;;1210:9129;;;;;;;;;;;;;;;;;5768:60;;;;1210:9129;;;;;;3906:79:45;3966:19;1210:9129:54;3966:19:45;1210:9129:54;;3966:19:45;1210:9129:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:47;1210:9129:54;1469:18:47;1210:9129:54;;;;4178:54:47;1210:9129:54;;;;;;;1469:18:47;:28;1210:9129:54;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:92;1210:9129:54;;;;;;4301:16:92;1210:9129:54;;;;4726:16:92;;:34;;;;1210:9129:54;4805:1:92;4790:16;:50;;;;1210:9129:54;4855:13:92;:30;;;;1210:9129:54;4851:91:92;;;1210:9129:54;;4805:1:92;1210:9129:54;;;;;8837:64:92;1210:9129:54;4979:67:92;;1210:9129:54;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;1210:9129:54;;3295:62:44;1210:9129:54;;;3295:62:44;1210:9129:54;5066:101:92;;1210:9129:54;5066:101:92;1210:9129:54;8837:64:92;1210:9129:54;;8837:64:92;1210:9129:54;5142:14:92;1210:9129:54;;;4805:1:92;1210:9129:54;;5142:14:92;1210:9129:54;4979:67:92;1210:9129:54;;;;8837:64:92;1210:9129:54;4979:67:92;;;4851:91;4908:23;1210:9129:54;4908:23:92;1210:9129:54;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;1210:9129:54;;;;;;;;;;;;;1782:71:90;1210:9129:54;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;7975:44;7971:73;;8088:8;;;1210:9129;8088:8;;:::i;:::-;8146;966:10:96;;;8146:8:54;:::i;:::-;1210:9129;;;;;;;;966:10:96;8170:42:54;966:10:96;;8170:42:54;;1210:9129;;;;;;7971:73;8028:16;1210:9129;8028:16;1210:9129;;8028:16;1210:9129;;;;;;;;;;;1782:71:90;1210:9129:54;;;;;4698:71:90;;;1210:9129:54;;4698:71:90;1210:9129:54;;;;;;;;4698:71:90;1210:9129:54;;4698:71:90;;1210:9129:54;;;;;;;;;;;;;:::i;:::-;;1782:71:90;1210:9129:54;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1210:9129:54;4355:110:90;1210:9129:54;4411:43:90;;1210:9129:54;4411:43:90;1210:9129:54;;;;;4411:43:90;4254:92;4302:33;1210:9129:54;4302:33:90;966:10:96;1210:9129:54;;;;4302:33:90;1210:9129:54;;;;;;;:::i;:::-;3321:69:161;757:66:99;3321:69:161;1706:93:99;;1917:4;757:66;3550:68:161;3060:10:45;1210:9129:54;;4178:54:47;1210:9129:54;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;3043:47:45;3039:79;;3060:10;3164:8;1210:9129:54;3060:10:45;;;3164:8;:::i;:::-;3210;;;;;:::i;:::-;5035:46:54;1210:9129;;;;;;;;;;;;5035:46;;1210:9129;757:66:99;3550:68:161;1210:9129:54;;;;;;3039:79:45;3099:19;1210:9129:54;3099:19:45;1210:9129:54;;3099:19:45;1706:93:99;1758:30;1210:9129:54;1758:30:99;1210:9129:54;;1758:30:99;1210:9129:54;;;;;;;;;;;;5115:6:93;1210:9129:54;5106:4:93;5098:23;5094:145;;1210:9129:54;;;811:66:130;1210:9129:54;;;5094:145:93;5199:29;1210:9129:54;5199:29:93;1210:9129:54;;5199:29:93;1210:9129:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;1210:9129:54;4683:4:93;;4675:23;:120;;;;;1210:9129:54;4658:251:93;;;3058:30:44;1210:9129:54;;3295:62:44;1210:9129:54;;;;3058:30:44;;;;1210:9129:54;3058:30:44;;1210:9129:54;;3058:30:44;;1210:9129:54;1893:10:44;1210:9129:54;;;;3058:30:44;;;;;;;1210:9129:54;3058:30:44;;;1210:9129:54;1869:35:44;;1865:140;;1210:9129:54;;;;;;;6156:52:93;;1210:9129:54;6156:52:93;1210:9129:54;6156:52:93;;;;1210:9129:54;;6156:52:93;;;1210:9129:54;-1:-1:-1;6152:437:93;;6518:60;;1210:9129:54;6518:60:93;1210:9129:54;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;1210:9129:54;;811:66:130;1210:9129:54;;;811:66:130;1210:9129:54;2407:36:130;1210:9129:54;2407:36:130;;1210:9129:54;;2458:15:130;:11;;1210:9129:54;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;1210:9129:54;6159:70:130;6199:19;1210:9129:54;6199:19:130;1210:9129:54;;6199:19:130;1744:119;1805:47;1210:9129:54;1805:47:130;1210:9129:54;;;;1805:47:130;6246:120:93;6317:34;1210:9129:54;6317:34:93;1210:9129:54;;;;6317:34:93;6156:52;;;;1210:9129:54;6156:52:93;;1210:9129:54;6156:52:93;;;;;;1210:9129:54;6156:52:93;;;:::i;:::-;;;1210:9129:54;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;1210:9129:54;;1927:67:44;;;1210:9129:54;;1927:67:44;;520:1:42;1210:9129:54;;520:1:42;;1210:9129:54;520:1:42;3058:30:44;1210:9129:54;;520:1:42;;;;;;1927:67:44;3058:30;;;;1210:9129:54;3058:30:44;1210:9129:54;3058:30:44;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1210:9129:54;;;;;;;;;4675:120:93;1210:9129:54;;;811:66:130;1210:9129:54;;4753:42:93;;4675:120;;;1210:9129:54;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1469:18:47;;1210:9129:54;;;;4178:54:47;1210:9129:54;;;;;;;1469:18:47;1210:9129:54;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;6450:44;6446:72;;1210:9129;6561:8;;;;1210:9129;6561:8;;:::i;:::-;1210:9129;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;-1:-1:-1;1210:9129:54;9313:36;1210:9129;;;9313:36;:::i;:::-;1210:9129;;6638:38;1210:9129;;;;;;;;;6638:38;;1210:9129;;;;;;6446:72;6503:15;1210:9129;6503:15;1210:9129;;6503:15;1210:9129;;;;;;;:::i;:::-;3871:10:90;1210:9129:54;966:10:96;3871::90;:::i;:::-;1210:9129:54;;;;;;;;;;;;;;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;7143:44;7139:75;;7310:8;7258;;;;;;1210:9129;7258:8;;:::i;:::-;7310;:::i;:::-;7334:40;1210:9129;;;;;;;;;7334:40;;1210:9129;;;;;;7139:75;7196:18;1210:9129;7196:18;1210:9129;;7196:18;1210:9129;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1210:9129:54;;;;;-1:-1:-1;1210:9129:54;;;;;;;;;;;;;;:::o;5359:667:90:-;;1782:71;1210:9129:54;;;;;;;5679:1:90;1210:9129:54;;;;;;;;;856:62:105;1210:9129:54;856:62:105;;;;;;;1210:9129:54;856:62:105;;;;;1210:9129:54;5646:4:90;1210:9129:54;;;;;;;;;;;;;856:62:105;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:90;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1210:9129:54;;5736:9:90;1210:9129:54;;;;;;1782:71:90;1210:9129:54;5810:60:90;;;;;856:62:105;1210:9129:54;;;;;;;;;5810:60:90;;;;;;;1210:9129:54;5810:60:90;;5679:1;5810:60;;1210:9129:54;;856:62:105;1210:9129:54;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:90;;;;;;;;;;;5732:278;1210:9129:54;;1782:71:90;1210:9129:54;;1782:71:90;1210:9129:54;5702:318:90;;;;;;;5810:60;1210:9129:54;5810:60:90;;;:::i;:::-;1210:9129:54;5810:60:90;;5732:278;5962:33;;1210:9129:54;5962:33:90;5679:1;1210:9129:54;856:62:105;1210:9129:54;5962:33:90;938:248:105;1210:9129:54;;;;;;969:19:105;;1210:9129:54;;1029:32:105;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1210:9129:54;;;;856:62:105;1210:9129:54;1137:24:105;;1210:9129:54;:::i;:::-;1082:94:105;;;;1210:9129:54;;;;;;;;;;:::o;:::-;;;;;;;;;;8664:138;1210:9129;8664:138;;;;1210:9129;8759:7;1210:9129;8759:7;1210:9129;;;;8759:7;1210:9129;8759:26;1210:9129;-1:-1:-1;1210:9129:54;;;8759:36;1210:9129;-1:-1:-1;1210:9129:54;;;;8759:36;:::i;:::-;1210:9129;;8664:138::o;1210:9129::-;;;;;;;;;;:::o;3116:195:47:-;1210:9129:54;3116:195:47;;;;1210:9129:54;-1:-1:-1;1210:9129:54;4178:54:47;1210:9129:54;;;;-1:-1:-1;1210:9129:54;3266:28:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;3266:38:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;;3266:38:47;:::i;3743:195::-;1210:9129:54;3743:195:47;;;;1210:9129:54;-1:-1:-1;1210:9129:54;4178:54:47;1210:9129:54;;;;-1:-1:-1;1210:9129:54;3893:28:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;3893:38:47;1210:9129:54;-1:-1:-1;1210:9129:54;;;;3893:38:47;:::i;4964:220:90:-;1210:9129:54;;5147:30:90;4964:220;1210:9129:54;;;1782:71:90;1210:9129:54;;;1782:71:90;1210:9129:54;;;;;;5147:30:90;4964:220::o;4674:193:39:-;;1210:9129:54;;4770:19:39;;;4766:46;;1210:9129:54;4829:31:39;1210:9129:54;;;;4829:31:39;;;;;1210:9129:54;4829:31:39;;1210:9129:54;4829:31:39;;;1210:9129:54;4829:31:39;;;;;;;1210:9129:54;4829:31:39;;;4822:38;4674:193;:::o;4829:31::-;;;1210:9129:54;4829:31:39;;1210:9129:54;4829:31:39;;;;;;1210:9129:54;4829:31:39;;;:::i;:::-;;;1210:9129:54;;;;;4674:193:39;:::o;4829:31::-;;;-1:-1:-1;4829:31:39;;4766:46;4798:14;;;4791:21;:::o;1210:9129:54:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1210:9129:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;5233:383:39:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1210:9129:54;;5511:19:39;;5507:59;;1380:43:144;1210:9129:54;;;;1380:43:144;1210:9129:54;1380:43:144;;;;1210:9129:54;1380:43:144;;;1210:9129:54;;;;;;1380:43:144;;;;;;:::i;:::-;;:::i;:::-;5233:383:39:o;5507:59::-;1210:9129:54;5327:1:39;1210:9129:54;;;;;;;904:37:39;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1210:9129:54;;972:37:39;;;1210:9129:54;972:37:39;;;1210:9129:54;;;;;;;;;;;972:37:39;5401:96;5454:43;1210:9129:54;;5454:43:39;;;1210:9129:54;5454:43:39;;;1210:9129:54;;;;;;;;;;;5454:43:39;5313:78;5337:54;1210:9129:54;;5337:54:39;;;1210:9129:54;5337:54:39;;;1210:9129:54;;;;;;;;;;;5337:54:39;7084:141:92;1210:9129:54;8837:64:92;1210:9129:54;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;3539:881:39;;;;3646:11;;3642:65;;1210:9129:54;;;3721:19:39;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:144;1210:9129:54;;;;1797:53:144;1210:9129:54;1797:53:144;;;;1210:9129:54;1797:53:144;;;1210:9129:54;4376:4:39;1210:9129:54;;;;;;;;;;1797:53:144;;;;;;:::i;:::-;3539:881:39;:::o;3957:90::-;4001:46;1210:9129:54;;4001:46:39;;;1210:9129:54;4001:46:39;;;1210:9129:54;;;;;;;;;;;4001:46:39;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1210:9129:54;;3787:44:39;;;1210:9129:54;3787:44:39;;;1210:9129:54;;;;;;;;;;;3787:44:39;3642:65;3666:41;1210:9129:54;;3666:41:39;;;1210:9129:54;3666:41:39;;;1210:9129:54;;;;;;;;;;;3666:41:39;2841:201;;1210:9129:54;;2936:19:39;;;2932:41;;1210:9129:54;2990:45:39;1210:9129:54;;;;2990:45:39;;;;;1210:9129:54;2990:45:39;;1210:9129:54;2990:45:39;;;1210:9129:54;3029:4:39;1210:9129:54;;;;2990:45:39;;;;;;;1210:9129:54;2990:45:39;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;4421:582:151:-;;4593:8;;-1:-1:-1;1210:9129:54;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1210:9129:54;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1210:9129:54;4917:24:151;;4862:1;4917:24;1210:9129:54;4917:24:151;1210:9129:54;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;;7738:720:144;;-1:-1:-1;7875:421:144;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:144;;8310:15;;1210:9129:54;;;;8328:26:144;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1210:9129:54;8401:40:144;;-1:-1:-1;8401:40:144;1210:9129:54;8401:40:144;1210:9129:54;;-1:-1:-1;8401:40:144;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"50429":[{"start":3023,"length":32},{"start":3310,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","claim(address,uint256,address)":"9e96a260","deposit(address,uint256,address)":"f45346dc","getBalance(address)":"f8b2cb4f","getLedgerBalance(address,address)":"d949b844","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","lock(address,uint256,address)":"4bbc170a","proxiableUUID()":"52d1902d","release(address,uint256,address)":"15f41501","setAuthority(address)":"7a9e5e4b","transfer(address,uint256,address)":"dbba0f01","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsDeposited(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account receiving the funds.\",\"sender\":\"The address of the account initiating the transfer.\"}},\"FundsWithdrawn(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"details\":\"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\",\"params\":{\"amount\":\"The amount of currency to transfer.\",\"currency\":\"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"details\":\"This function withdraws funds from the caller's balance and transfers them to the recipient.\",\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsDeposited(address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the pool for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers a specified amount of currency from the caller's balance to a given recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x2baafe714d20951c6fb389dd827dc3f793298c1cc61e49896658aec0515dfa7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://015ca20d63c0041a774628c689760a7369e32c0d48294e924ba581024b9aebe3\",\"dweb:/ipfs/QmVef34ChNkL18NaJsphtF6AGwH8coBiwTFA4BWtpGXw45\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0xb7629d4c7a93a9a03bef8c62de9985096b333a4424838f2ea3d3172dd48cc512\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ce84ab8b6ad690c5043b464bece76f7d8382ad366d678ae23221ae8fd47e5fc1\",\"dweb:/ipfs/QmPirxfFYwYqj64uKLBebotEdbVfhvaHUwRTKx2yuP1Qc7\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0x9cb29e589708e49cf0728ad61506427b3b316e5f609e2bbf2ade666c402dd942\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a69d796cc3528572477eb8f7d6bb92429392744e1aa1781f01310110fde1d7ca\",\"dweb:/ipfs/QmZBusX6yoVM87JBqHk6h3Fx2nqznTxnEBeKmaz3JmDwzp\"]},\"contracts/core/interfaces/base/IBalanceVerifiable.sol\":{\"keccak256\":\"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40\",\"dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0x0eb16584b8c2e73a6baba08ff477da808da9477a9b61d9278b5103942ecc8b0d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://720a7878ed3550272a4469f9197f8944142dc7ae93d6865aae022fe63f9b9b6e\",\"dweb:/ipfs/Qme1DbQEL6WbiKR5z6jkhAiurgYMvN6uHkx2EWekYAhd4k\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403\",\"dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0xef1620a235fa0b4e79ddddae5ad4e37b573eb2c41d362a5ec96052ba4578f466\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8ce1fa81679a8d2f0024bcb59b2434bc1f6d3fcb26e3e2f805dd4f9c2765f324\",\"dweb:/ipfs/QmdvjBzJFHFPmr1LL2SdJJph97RD4swMopKiB68ELFW1aG\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NoFundsToLock"},{"inputs":[],"type":"error","name":"NoFundsToRelease"},{"inputs":[],"type":"error","name":"NoFundsToTransfer"},{"inputs":[],"type":"error","name":"NoFundsToWithdraw"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsClaimed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"sender","type":"address","indexed":true},{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"claim(address,uint256,address)":{"details":"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.","params":{"account":"The address of the account whose funds are being claimed.","amount":"The amount of funds to claim.","currency":"The currency to associate claim with. Use address(0) for the native coin."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"deposit(address,uint256,address)":{"params":{"amount":"The amount of currency to deposit.","currency":"The address of the ERC20 token to deposit.","recipient":"The address of the account to credit with the deposit."}},"getBalance(address)":{"details":"The function checks the balance for both native and ERC-20 tokens.","params":{"currency":"The address of the currency to check the balance of."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"lock(address,uint256,address)":{"details":"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.","params":{"account":"The address of the account for which the funds will be locked.","amount":"The amount of funds to lock.","currency":"The currency to associate lock with. Use address(0) for the native coin."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"release(address,uint256,address)":{"params":{"account":"The address of the account for which the funds will be released.","amount":"The amount of funds to release.","currency":"The currency to associate release with. Use address(0) for the native coin."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"transfer(address,uint256,address)":{"details":"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.","params":{"amount":"The amount of currency to transfer.","currency":"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.","recipient":"The address of the account to credit with the transfer."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(address,uint256,address)":{"details":"This function withdraws funds from the caller's balance and transfers them to the recipient.","params":{"amount":"The amount of tokens to withdraw.","currency":"The currency to associate fees with. Use address(0) for the native coin.","recipient":"The address that will receive the withdrawn tokens."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address,uint256,address)":{"notice":"Claims a specific amount of locked funds on behalf of a claimer."},"deposit(address,uint256,address)":{"notice":"Deposits a specified amount of currency into the pool for a given recipient."},"getBalance(address)":{"notice":"Returns the general's balance for the specified currency."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"lock(address,uint256,address)":{"notice":"Locks a specific amount of funds for a given account."},"release(address,uint256,address)":{"notice":"Release a specific amount of funds from locked pool."},"transfer(address,uint256,address)":{"notice":"Transfers a specified amount of currency from the caller's balance to a given recipient."},"withdraw(address,uint256,address)":{"notice":"Withdraws tokens from the contract to a specified recipient's address."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/financial/LedgerVault.sol":"LedgerVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x2baafe714d20951c6fb389dd827dc3f793298c1cc61e49896658aec0515dfa7a","urls":["bzz-raw://015ca20d63c0041a774628c689760a7369e32c0d48294e924ba581024b9aebe3","dweb:/ipfs/QmVef34ChNkL18NaJsphtF6AGwH8coBiwTFA4BWtpGXw45"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0xb7629d4c7a93a9a03bef8c62de9985096b333a4424838f2ea3d3172dd48cc512","urls":["bzz-raw://ce84ab8b6ad690c5043b464bece76f7d8382ad366d678ae23221ae8fd47e5fc1","dweb:/ipfs/QmPirxfFYwYqj64uKLBebotEdbVfhvaHUwRTKx2yuP1Qc7"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0x9cb29e589708e49cf0728ad61506427b3b316e5f609e2bbf2ade666c402dd942","urls":["bzz-raw://a69d796cc3528572477eb8f7d6bb92429392744e1aa1781f01310110fde1d7ca","dweb:/ipfs/QmZBusX6yoVM87JBqHk6h3Fx2nqznTxnEBeKmaz3JmDwzp"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceVerifiable.sol":{"keccak256":"0xe14a3a0d0f0355f8a0cc62f4292e38d041c5ef67d39f090d140562886fb08c80","urls":["bzz-raw://a48c127e7ef1edd636d33cc8d892ec30d92066357a7d0a36b73d27d294ad8e40","dweb:/ipfs/QmWaMMg9kqJhjoD48tuzbVTwR3YjkRt7tuxY88uLNCS4vw"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0x0eb16584b8c2e73a6baba08ff477da808da9477a9b61d9278b5103942ecc8b0d","urls":["bzz-raw://720a7878ed3550272a4469f9197f8944142dc7ae93d6865aae022fe63f9b9b6e","dweb:/ipfs/Qme1DbQEL6WbiKR5z6jkhAiurgYMvN6uHkx2EWekYAhd4k"],"license":"MIT"},"contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol":{"keccak256":"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f","urls":["bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403","dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1"],"license":"MIT"},"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"},"contracts/financial/LedgerVault.sol":{"keccak256":"0xef1620a235fa0b4e79ddddae5ad4e37b573eb2c41d362a5ec96052ba4578f466","urls":["bzz-raw://8ce1fa81679a8d2f0024bcb59b2434bc1f6d3fcb26e3e2f805dd4f9c2765f324","dweb:/ipfs/QmdvjBzJFHFPmr1LL2SdJJph97RD4swMopKiB68ELFW1aG"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":4718,"contract":"contracts/financial/LedgerVault.sol:LedgerVault","label":"_locked","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/financial/LedgerVault.sol","id":5078,"exportedSymbols":{"AccessControlledUpgradeable":[2672],"BalanceOperatorUpgradeable":[2836],"FinancialOps":[2036],"Initializable":[50409],"LedgerVault":[5077],"LoopOps":[2056],"ReentrancyGuardTransientUpgradeable":[52500],"UUPSUpgradeable":[50591]},"nodeType":"SourceUnit","src":"124:10216:54","nodes":[{"id":4683,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":4685,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":50410,"symbolAliases":[{"foreign":{"id":4684,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4687,"nodeType":"ImportDirective","src":"248:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":50592,"symbolAliases":[{"foreign":{"id":4686,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50591,"src":"257:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4689,"nodeType":"ImportDirective","src":"396:136:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":52501,"symbolAliases":[{"foreign":{"id":4688,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52500,"src":"405:35:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4691,"nodeType":"ImportDirective","src":"533:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2673,"symbolAliases":[{"foreign":{"id":4690,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"542:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4693,"nodeType":"ImportDirective","src":"649:113:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2837,"symbolAliases":[{"foreign":{"id":4692,"name":"BalanceOperatorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2836,"src":"658:26:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4695,"nodeType":"ImportDirective","src":"764:72:54","nodes":[],"absolutePath":"contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2037,"symbolAliases":[{"foreign":{"id":4694,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2036,"src":"773:12:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4697,"nodeType":"ImportDirective","src":"837:62:54","nodes":[],"absolutePath":"contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":5078,"sourceUnit":2057,"symbolAliases":[{"foreign":{"id":4696,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2056,"src":"846:7:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5077,"nodeType":"ContractDefinition","src":"1210:9129:54","nodes":[{"id":4711,"nodeType":"UsingForDirective","src":"1385:31:54","nodes":[],"global":false,"libraryName":{"id":4709,"name":"FinancialOps","nameLocations":["1391:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":2036,"src":"1391:12:54"},"typeName":{"id":4710,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4718,"nodeType":"VariableDeclaration","src":"1484:55:54","nodes":[],"constant":false,"documentation":{"id":4712,"nodeType":"StructuredDocumentation","src":"1422:57:54","text":"@dev Holds the registry of locked funds for accounts."},"mutability":"mutable","name":"_locked","nameLocation":"1532:7:54","scope":5077,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4717,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4713,"name":"address","nodeType":"ElementaryTypeName","src":"1492:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1484:47:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4716,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4714,"name":"address","nodeType":"ElementaryTypeName","src":"1511:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1503:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4715,"name":"uint256","nodeType":"ElementaryTypeName","src":"1522:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":4727,"nodeType":"EventDefinition","src":"1826:85:54","nodes":[],"anonymous":false,"documentation":{"id":4719,"nodeType":"StructuredDocumentation","src":"1546:275:54","text":"@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62","name":"FundsLocked","nameLocation":"1832:11:54","parameters":{"id":4726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4721,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1860:7:54","nodeType":"VariableDeclaration","scope":4727,"src":"1844:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4720,"name":"address","nodeType":"ElementaryTypeName","src":"1844:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4723,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1877:6:54","nodeType":"VariableDeclaration","scope":4727,"src":"1869:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4722,"name":"uint256","nodeType":"ElementaryTypeName","src":"1869:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4725,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1901:8:54","nodeType":"VariableDeclaration","scope":4727,"src":"1885:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4724,"name":"address","nodeType":"ElementaryTypeName","src":"1885:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1843:67:54"}},{"id":4736,"nodeType":"EventDefinition","src":"2207:87:54","nodes":[],"anonymous":false,"documentation":{"id":4728,"nodeType":"StructuredDocumentation","src":"1917:285:54","text":"@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc","name":"FundsReleased","nameLocation":"2213:13:54","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4730,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2243:7:54","nodeType":"VariableDeclaration","scope":4736,"src":"2227:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4729,"name":"address","nodeType":"ElementaryTypeName","src":"2227:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4732,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2260:6:54","nodeType":"VariableDeclaration","scope":4736,"src":"2252:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4731,"name":"uint256","nodeType":"ElementaryTypeName","src":"2252:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4734,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2284:8:54","nodeType":"VariableDeclaration","scope":4736,"src":"2268:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4733,"name":"address","nodeType":"ElementaryTypeName","src":"2268:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2226:67:54"}},{"id":4745,"nodeType":"EventDefinition","src":"2573:86:54","nodes":[],"anonymous":false,"documentation":{"id":4737,"nodeType":"StructuredDocumentation","src":"2300:268:54","text":"@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed."},"eventSelector":"07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563","name":"FundsClaimed","nameLocation":"2579:12:54","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4739,"indexed":true,"mutability":"mutable","name":"claimer","nameLocation":"2608:7:54","nodeType":"VariableDeclaration","scope":4745,"src":"2592:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4738,"name":"address","nodeType":"ElementaryTypeName","src":"2592:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4741,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2625:6:54","nodeType":"VariableDeclaration","scope":4745,"src":"2617:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4740,"name":"uint256","nodeType":"ElementaryTypeName","src":"2617:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4743,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2649:8:54","nodeType":"VariableDeclaration","scope":4745,"src":"2633:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4742,"name":"address","nodeType":"ElementaryTypeName","src":"2633:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2591:67:54"}},{"id":4748,"nodeType":"ErrorDefinition","src":"2820:22:54","nodes":[],"documentation":{"id":4746,"nodeType":"StructuredDocumentation","src":"2665:150:54","text":"@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available."},"errorSelector":"a9e575de","name":"NoFundsToLock","nameLocation":"2826:13:54","parameters":{"id":4747,"nodeType":"ParameterList","parameters":[],"src":"2839:2:54"}},{"id":4751,"nodeType":"ErrorDefinition","src":"3036:23:54","nodes":[],"documentation":{"id":4749,"nodeType":"StructuredDocumentation","src":"2848:183:54","text":"@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient."},"errorSelector":"dff46e2b","name":"NoFundsToClaim","nameLocation":"3042:14:54","parameters":{"id":4750,"nodeType":"ParameterList","parameters":[],"src":"3056:2:54"}},{"id":4754,"nodeType":"ErrorDefinition","src":"3248:25:54","nodes":[],"documentation":{"id":4752,"nodeType":"StructuredDocumentation","src":"3065:178:54","text":"@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient."},"errorSelector":"b7cc22bc","name":"NoFundsToRelease","nameLocation":"3254:16:54","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[],"src":"3270:2:54"}},{"id":4762,"nodeType":"FunctionDefinition","src":"3332:243:54","nodes":[],"body":{"id":4761,"nodeType":"Block","src":"3346:229:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4758,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50377,"src":"3546:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4759,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3546:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4760,"nodeType":"ExpressionStatement","src":"3546:22:54"}]},"documentation":{"id":4755,"nodeType":"StructuredDocumentation","src":"3279:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"3343:2:54"},"returnParameters":{"id":4757,"nodeType":"ParameterList","parameters":[],"src":"3346:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4783,"nodeType":"FunctionDefinition","src":"3581:228:54","nodes":[],"body":{"id":4782,"nodeType":"Block","src":"3643:166:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4769,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50463,"src":"3653:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3653:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4771,"nodeType":"ExpressionStatement","src":"3653:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4772,"name":"__BalanceOperator_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2702,"src":"3687:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3687:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4774,"nodeType":"ExpressionStatement","src":"3687:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4775,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52449,"src":"3721:31:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3721:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4777,"nodeType":"ExpressionStatement","src":"3721:33:54"},{"expression":{"arguments":[{"id":4779,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4764,"src":"3788:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4778,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"3764:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4780,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3764:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4781,"nodeType":"ExpressionStatement","src":"3764:38:54"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":4767,"kind":"modifierInvocation","modifierName":{"id":4766,"name":"initializer","nameLocations":["3631:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":50263,"src":"3631:11:54"},"nodeType":"ModifierInvocation","src":"3631:11:54"}],"name":"initialize","nameLocation":"3590:10:54","parameters":{"id":4765,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4764,"mutability":"mutable","name":"accessManager","nameLocation":"3609:13:54","nodeType":"VariableDeclaration","scope":4783,"src":"3601:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4763,"name":"address","nodeType":"ElementaryTypeName","src":"3601:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3600:23:54"},"returnParameters":{"id":4768,"nodeType":"ParameterList","parameters":[],"src":"3643:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4812,"nodeType":"FunctionDefinition","src":"4112:258:54","nodes":[],"body":{"id":4811,"nodeType":"Block","src":"4209:161:54","nodes":[],"statements":[{"assignments":[4796],"declarations":[{"constant":false,"id":4796,"mutability":"mutable","name":"confirmed","nameLocation":"4227:9:54","nodeType":"VariableDeclaration","scope":4811,"src":"4219:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4795,"name":"uint256","nodeType":"ElementaryTypeName","src":"4219:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4802,"initialValue":{"arguments":[{"id":4798,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4786,"src":"4248:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4799,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4788,"src":"4259:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4800,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"4267:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4797,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2756,"src":"4239:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4801,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4239:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4219:57:54"},{"eventCall":{"arguments":[{"id":4804,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4786,"src":"4306:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4805,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"4317:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4806,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4790,"src":"4328:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4803,"name":"FundsDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":932,"src":"4291:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4807,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4291:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4808,"nodeType":"EmitStatement","src":"4286:51:54"},{"expression":{"id":4809,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4796,"src":"4354:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4794,"id":4810,"nodeType":"Return","src":"4347:16:54"}]},"baseFunctions":[944],"documentation":{"id":4784,"nodeType":"StructuredDocumentation","src":"3815:292:54","text":"@notice Deposits a specified amount of currency into the pool for a given recipient.\n @param recipient The address of the account to credit with the deposit.\n @param amount The amount of currency to deposit.\n @param currency The address of the ERC20 token to deposit."},"functionSelector":"f45346dc","implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"4121:7:54","parameters":{"id":4791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4786,"mutability":"mutable","name":"recipient","nameLocation":"4137:9:54","nodeType":"VariableDeclaration","scope":4812,"src":"4129:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4785,"name":"address","nodeType":"ElementaryTypeName","src":"4129:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4788,"mutability":"mutable","name":"amount","nameLocation":"4156:6:54","nodeType":"VariableDeclaration","scope":4812,"src":"4148:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4787,"name":"uint256","nodeType":"ElementaryTypeName","src":"4148:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4790,"mutability":"mutable","name":"currency","nameLocation":"4172:8:54","nodeType":"VariableDeclaration","scope":4812,"src":"4164:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4789,"name":"address","nodeType":"ElementaryTypeName","src":"4164:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4128:53:54"},"returnParameters":{"id":4794,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4793,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4812,"src":"4200:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4792,"name":"uint256","nodeType":"ElementaryTypeName","src":"4200:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4199:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4843,"nodeType":"FunctionDefinition","src":"4841:273:54","nodes":[],"body":{"id":4842,"nodeType":"Block","src":"4952:162:54","nodes":[],"statements":[{"assignments":[4827],"declarations":[{"constant":false,"id":4827,"mutability":"mutable","name":"confirmed","nameLocation":"4970:9:54","nodeType":"VariableDeclaration","scope":4842,"src":"4962:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4826,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4833,"initialValue":{"arguments":[{"id":4829,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"4992:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4830,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5003:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4831,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"5011:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4828,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2796,"src":"4982:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4832,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4982:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4962:58:54"},{"eventCall":{"arguments":[{"id":4835,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4815,"src":"5050:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4836,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"5061:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4837,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4819,"src":"5072:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4834,"name":"FundsWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1016,"src":"5035:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4838,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5035:46:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4839,"nodeType":"EmitStatement","src":"5030:51:54"},{"expression":{"id":4840,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"5098:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4825,"id":4841,"nodeType":"Return","src":"5091:16:54"}]},"baseFunctions":[1030],"documentation":{"id":4813,"nodeType":"StructuredDocumentation","src":"4418:418:54","text":"@notice Withdraws tokens from the contract to a specified recipient's address.\n @dev This function withdraws funds from the caller's balance and transfers them to the recipient.\n @param recipient The address that will receive the withdrawn tokens.\n @param amount The amount of tokens to withdraw.\n @param currency The currency to associate fees with. Use address(0) for the native coin."},"functionSelector":"69328dec","implemented":true,"kind":"function","modifiers":[{"id":4822,"kind":"modifierInvocation","modifierName":{"id":4821,"name":"nonReentrant","nameLocations":["4921:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":52443,"src":"4921:12:54"},"nodeType":"ModifierInvocation","src":"4921:12:54"}],"name":"withdraw","nameLocation":"4850:8:54","parameters":{"id":4820,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4815,"mutability":"mutable","name":"recipient","nameLocation":"4867:9:54","nodeType":"VariableDeclaration","scope":4843,"src":"4859:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4814,"name":"address","nodeType":"ElementaryTypeName","src":"4859:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4817,"mutability":"mutable","name":"amount","nameLocation":"4886:6:54","nodeType":"VariableDeclaration","scope":4843,"src":"4878:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4878:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4819,"mutability":"mutable","name":"currency","nameLocation":"4902:8:54","nodeType":"VariableDeclaration","scope":4843,"src":"4894:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4818,"name":"address","nodeType":"ElementaryTypeName","src":"4894:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4858:53:54"},"returnParameters":{"id":4825,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4824,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4843,"src":"4943:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4823,"name":"uint256","nodeType":"ElementaryTypeName","src":"4943:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4942:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4874,"nodeType":"FunctionDefinition","src":"5587:274:54","nodes":[],"body":{"id":4873,"nodeType":"Block","src":"5685:176:54","nodes":[],"statements":[{"assignments":[4856],"declarations":[{"constant":false,"id":4856,"mutability":"mutable","name":"confirmed","nameLocation":"5703:9:54","nodeType":"VariableDeclaration","scope":4873,"src":"5695:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4855,"name":"uint256","nodeType":"ElementaryTypeName","src":"5695:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4862,"initialValue":{"arguments":[{"id":4858,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"5725:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4859,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5736:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4860,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"5744:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4857,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2835,"src":"5715:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5715:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5695:58:54"},{"eventCall":{"arguments":[{"expression":{"id":4864,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5785:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5789:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5785:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4866,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4846,"src":"5797:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4867,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4856,"src":"5808:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4868,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4850,"src":"5819:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4863,"name":"FundsTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":977,"src":"5768:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4869,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5768:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4870,"nodeType":"EmitStatement","src":"5763:65:54"},{"expression":{"id":4871,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4856,"src":"5845:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4854,"id":4872,"nodeType":"Return","src":"5838:16:54"}]},"baseFunctions":[991],"documentation":{"id":4844,"nodeType":"StructuredDocumentation","src":"5120:462:54","text":"@notice Transfers a specified amount of currency from the caller's balance to a given recipient.\n @dev Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\n @param recipient The address of the account to credit with the transfer.\n @param amount The amount of currency to transfer.\n @param currency The address of the ERC20 token to transfer. Use `address(0)` for native tokens."},"functionSelector":"dbba0f01","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"5596:8:54","parameters":{"id":4851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4846,"mutability":"mutable","name":"recipient","nameLocation":"5613:9:54","nodeType":"VariableDeclaration","scope":4874,"src":"5605:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4845,"name":"address","nodeType":"ElementaryTypeName","src":"5605:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4848,"mutability":"mutable","name":"amount","nameLocation":"5632:6:54","nodeType":"VariableDeclaration","scope":4874,"src":"5624:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4847,"name":"uint256","nodeType":"ElementaryTypeName","src":"5624:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4850,"mutability":"mutable","name":"currency","nameLocation":"5648:8:54","nodeType":"VariableDeclaration","scope":4874,"src":"5640:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4849,"name":"address","nodeType":"ElementaryTypeName","src":"5640:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5604:53:54"},"returnParameters":{"id":4854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4874,"src":"5676:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4852,"name":"uint256","nodeType":"ElementaryTypeName","src":"5676:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5675:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4919,"nodeType":"FunctionDefinition","src":"6333:373:54","nodes":[],"body":{"id":4918,"nodeType":"Block","src":"6436:270:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4893,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4889,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6467:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4890,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6476:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4888,"name":"getLedgerBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3063,"src":"6450:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6450:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4892,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6488:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6450:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4897,"nodeType":"IfStatement","src":"6446:72:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4894,"name":"NoFundsToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4748,"src":"6503:13:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6503:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4896,"nodeType":"RevertStatement","src":"6496:22:54"}},{"expression":{"arguments":[{"id":4899,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6544:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4900,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6553:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4901,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6561:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4898,"name":"_subLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3158,"src":"6528:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4902,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6528:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4903,"nodeType":"ExpressionStatement","src":"6528:42:54"},{"expression":{"arguments":[{"id":4905,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6597:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4906,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6606:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4907,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6614:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4904,"name":"_sumLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5049,"src":"6580:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6580:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4909,"nodeType":"ExpressionStatement","src":"6580:43:54"},{"eventCall":{"arguments":[{"id":4911,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4877,"src":"6650:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4912,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6659:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4913,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4881,"src":"6667:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4910,"name":"FundsLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4727,"src":"6638:11:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4914,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6638:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4915,"nodeType":"EmitStatement","src":"6633:43:54"},{"expression":{"id":4916,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4879,"src":"6693:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4887,"id":4917,"nodeType":"Return","src":"6686:13:54"}]},"documentation":{"id":4875,"nodeType":"StructuredDocumentation","src":"5867:461:54","text":"@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin."},"functionSelector":"4bbc170a","implemented":true,"kind":"function","modifiers":[{"id":4884,"kind":"modifierInvocation","modifierName":{"id":4883,"name":"restricted","nameLocations":["6407:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"6407:10:54"},"nodeType":"ModifierInvocation","src":"6407:10:54"}],"name":"lock","nameLocation":"6342:4:54","parameters":{"id":4882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4877,"mutability":"mutable","name":"account","nameLocation":"6355:7:54","nodeType":"VariableDeclaration","scope":4919,"src":"6347:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4876,"name":"address","nodeType":"ElementaryTypeName","src":"6347:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4879,"mutability":"mutable","name":"amount","nameLocation":"6372:6:54","nodeType":"VariableDeclaration","scope":4919,"src":"6364:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4878,"name":"uint256","nodeType":"ElementaryTypeName","src":"6364:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4881,"mutability":"mutable","name":"currency","nameLocation":"6388:8:54","nodeType":"VariableDeclaration","scope":4919,"src":"6380:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4880,"name":"address","nodeType":"ElementaryTypeName","src":"6380:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6346:51:54"},"returnParameters":{"id":4887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4886,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4919,"src":"6427:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4885,"name":"uint256","nodeType":"ElementaryTypeName","src":"6427:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6426:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4964,"nodeType":"FunctionDefinition","src":"7023:381:54","nodes":[],"body":{"id":4963,"nodeType":"Block","src":"7129:275:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4938,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4934,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7160:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4935,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7169:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4933,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7143:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4936,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7143:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7181:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7143:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4942,"nodeType":"IfStatement","src":"7139:75:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4939,"name":"NoFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4754,"src":"7196:16:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4940,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7196:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4941,"nodeType":"RevertStatement","src":"7189:25:54"}},{"expression":{"arguments":[{"id":4944,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7241:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4945,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7250:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4946,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7258:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4943,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"7224:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7224:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4948,"nodeType":"ExpressionStatement","src":"7224:43:54"},{"expression":{"arguments":[{"id":4950,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7293:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4951,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7302:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4952,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7310:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4949,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"7277:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7277:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4954,"nodeType":"ExpressionStatement","src":"7277:42:54"},{"eventCall":{"arguments":[{"id":4956,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4922,"src":"7348:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4957,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7357:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4958,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4926,"src":"7365:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4955,"name":"FundsReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"7334:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7334:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4960,"nodeType":"EmitStatement","src":"7329:45:54"},{"expression":{"id":4961,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4924,"src":"7391:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4932,"id":4962,"nodeType":"Return","src":"7384:13:54"}]},"documentation":{"id":4920,"nodeType":"StructuredDocumentation","src":"6712:306:54","text":"@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin."},"functionSelector":"15f41501","implemented":true,"kind":"function","modifiers":[{"id":4929,"kind":"modifierInvocation","modifierName":{"id":4928,"name":"restricted","nameLocations":["7100:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"7100:10:54"},"nodeType":"ModifierInvocation","src":"7100:10:54"}],"name":"release","nameLocation":"7032:7:54","parameters":{"id":4927,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4922,"mutability":"mutable","name":"account","nameLocation":"7048:7:54","nodeType":"VariableDeclaration","scope":4964,"src":"7040:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4921,"name":"address","nodeType":"ElementaryTypeName","src":"7040:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4924,"mutability":"mutable","name":"amount","nameLocation":"7065:6:54","nodeType":"VariableDeclaration","scope":4964,"src":"7057:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4923,"name":"uint256","nodeType":"ElementaryTypeName","src":"7057:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4926,"mutability":"mutable","name":"currency","nameLocation":"7081:8:54","nodeType":"VariableDeclaration","scope":4964,"src":"7073:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4925,"name":"address","nodeType":"ElementaryTypeName","src":"7073:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7039:51:54"},"returnParameters":{"id":4932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4931,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4964,"src":"7120:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4930,"name":"uint256","nodeType":"ElementaryTypeName","src":"7120:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7119:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5011,"nodeType":"FunctionDefinition","src":"7857:385:54","nodes":[],"body":{"id":5010,"nodeType":"Block","src":"7961:281:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4979,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4967,"src":"7992:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4980,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8001:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4978,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5066,"src":"7975:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7975:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4982,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8013:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7975:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4987,"nodeType":"IfStatement","src":"7971:73:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4984,"name":"NoFundsToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4751,"src":"8028:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8028:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4986,"nodeType":"RevertStatement","src":"8021:23:54"}},{"expression":{"arguments":[{"id":4989,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4967,"src":"8071:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4990,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8080:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4991,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8088:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4988,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5030,"src":"8054:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4992,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4993,"nodeType":"ExpressionStatement","src":"8054:43:54"},{"expression":{"arguments":[{"expression":{"id":4995,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8126:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8130:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8126:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4997,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8138:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4998,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8146:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4994,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3131,"src":"8110:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4999,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8110:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5000,"nodeType":"ExpressionStatement","src":"8110:45:54"},{"eventCall":{"arguments":[{"expression":{"id":5002,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8183:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":5003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8187:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8183:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":5004,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8195:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":5005,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4971,"src":"8203:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":5001,"name":"FundsClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4745,"src":"8170:12:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":5006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8170:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5007,"nodeType":"EmitStatement","src":"8165:47:54"},{"expression":{"id":5008,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4969,"src":"8229:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4977,"id":5009,"nodeType":"Return","src":"8222:13:54"}]},"documentation":{"id":4965,"nodeType":"StructuredDocumentation","src":"7410:442:54","text":"@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin."},"functionSelector":"9e96a260","implemented":true,"kind":"function","modifiers":[{"id":4974,"kind":"modifierInvocation","modifierName":{"id":4973,"name":"restricted","nameLocations":["7932:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47863,"src":"7932:10:54"},"nodeType":"ModifierInvocation","src":"7932:10:54"}],"name":"claim","nameLocation":"7866:5:54","parameters":{"id":4972,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4967,"mutability":"mutable","name":"account","nameLocation":"7880:7:54","nodeType":"VariableDeclaration","scope":5011,"src":"7872:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4966,"name":"address","nodeType":"ElementaryTypeName","src":"7872:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4969,"mutability":"mutable","name":"amount","nameLocation":"7897:6:54","nodeType":"VariableDeclaration","scope":5011,"src":"7889:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4968,"name":"uint256","nodeType":"ElementaryTypeName","src":"7889:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4971,"mutability":"mutable","name":"currency","nameLocation":"7913:8:54","nodeType":"VariableDeclaration","scope":5011,"src":"7905:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4970,"name":"address","nodeType":"ElementaryTypeName","src":"7905:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7871:51:54"},"returnParameters":{"id":4977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5011,"src":"7952:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4975,"name":"uint256","nodeType":"ElementaryTypeName","src":"7952:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7951:9:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5030,"nodeType":"FunctionDefinition","src":"8664:138:54","nodes":[],"body":{"id":5029,"nodeType":"Block","src":"8749:53:54","nodes":[],"statements":[{"expression":{"id":5027,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5021,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"8759:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5024,"indexExpression":{"id":5022,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5014,"src":"8767:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8759:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5025,"indexExpression":{"id":5023,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5018,"src":"8776:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8759:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5026,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5016,"src":"8789:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8759:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5028,"nodeType":"ExpressionStatement","src":"8759:36:54"}]},"documentation":{"id":5012,"nodeType":"StructuredDocumentation","src":"8248:411:54","text":"@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced."},"implemented":true,"kind":"function","modifiers":[],"name":"_subLockedAmount","nameLocation":"8673:16:54","parameters":{"id":5019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5014,"mutability":"mutable","name":"account","nameLocation":"8698:7:54","nodeType":"VariableDeclaration","scope":5030,"src":"8690:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5013,"name":"address","nodeType":"ElementaryTypeName","src":"8690:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5016,"mutability":"mutable","name":"amount","nameLocation":"8715:6:54","nodeType":"VariableDeclaration","scope":5030,"src":"8707:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5015,"name":"uint256","nodeType":"ElementaryTypeName","src":"8707:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5018,"mutability":"mutable","name":"currency","nameLocation":"8731:8:54","nodeType":"VariableDeclaration","scope":5030,"src":"8723:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5017,"name":"address","nodeType":"ElementaryTypeName","src":"8723:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8689:51:54"},"returnParameters":{"id":5020,"nodeType":"ParameterList","parameters":[],"src":"8749:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5049,"nodeType":"FunctionDefinition","src":"9218:138:54","nodes":[],"body":{"id":5048,"nodeType":"Block","src":"9303:53:54","nodes":[],"statements":[{"expression":{"id":5046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5040,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"9313:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5043,"indexExpression":{"id":5041,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5033,"src":"9321:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9313:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5044,"indexExpression":{"id":5042,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5037,"src":"9330:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9313:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5045,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5035,"src":"9343:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9313:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5047,"nodeType":"ExpressionStatement","src":"9313:36:54"}]},"documentation":{"id":5031,"nodeType":"StructuredDocumentation","src":"8808:405:54","text":"@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased."},"implemented":true,"kind":"function","modifiers":[],"name":"_sumLockedAmount","nameLocation":"9227:16:54","parameters":{"id":5038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5033,"mutability":"mutable","name":"account","nameLocation":"9252:7:54","nodeType":"VariableDeclaration","scope":5049,"src":"9244:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5032,"name":"address","nodeType":"ElementaryTypeName","src":"9244:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5035,"mutability":"mutable","name":"amount","nameLocation":"9269:6:54","nodeType":"VariableDeclaration","scope":5049,"src":"9261:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5034,"name":"uint256","nodeType":"ElementaryTypeName","src":"9261:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5037,"mutability":"mutable","name":"currency","nameLocation":"9285:8:54","nodeType":"VariableDeclaration","scope":5049,"src":"9277:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5036,"name":"address","nodeType":"ElementaryTypeName","src":"9277:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9243:51:54"},"returnParameters":{"id":5039,"nodeType":"ParameterList","parameters":[],"src":"9303:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5066,"nodeType":"FunctionDefinition","src":"9807:142:54","nodes":[],"body":{"id":5065,"nodeType":"Block","src":"9899:50:54","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5059,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4718,"src":"9916:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5061,"indexExpression":{"id":5060,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5052,"src":"9924:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9916:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5063,"indexExpression":{"id":5062,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5054,"src":"9933:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9916:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5058,"id":5064,"nodeType":"Return","src":"9909:33:54"}]},"documentation":{"id":5050,"nodeType":"StructuredDocumentation","src":"9362:440:54","text":"@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_getLockedAmount","nameLocation":"9816:16:54","parameters":{"id":5055,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5052,"mutability":"mutable","name":"account","nameLocation":"9841:7:54","nodeType":"VariableDeclaration","scope":5066,"src":"9833:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5051,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5054,"mutability":"mutable","name":"currency","nameLocation":"9858:8:54","nodeType":"VariableDeclaration","scope":5066,"src":"9850:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5053,"name":"address","nodeType":"ElementaryTypeName","src":"9850:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9832:35:54"},"returnParameters":{"id":5058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5057,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5066,"src":"9890:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5056,"name":"uint256","nodeType":"ElementaryTypeName","src":"9890:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9889:9:54"},"scope":5077,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5076,"nodeType":"FunctionDefinition","src":"10253:84:54","nodes":[],"body":{"id":5075,"nodeType":"Block","src":"10335:2:54","nodes":[],"statements":[]},"baseFunctions":[50545],"documentation":{"id":5067,"nodeType":"StructuredDocumentation","src":"9955:293:54","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":5073,"kind":"modifierInvocation","modifierName":{"id":5072,"name":"onlyAdmin","nameLocations":["10325:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"10325:9:54"},"nodeType":"ModifierInvocation","src":"10325:9:54"}],"name":"_authorizeUpgrade","nameLocation":"10262:17:54","overrides":{"id":5071,"nodeType":"OverrideSpecifier","overrides":[],"src":"10316:8:54"},"parameters":{"id":5070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5069,"mutability":"mutable","name":"newImplementation","nameLocation":"10288:17:54","nodeType":"VariableDeclaration","scope":5076,"src":"10280:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5068,"name":"address","nodeType":"ElementaryTypeName","src":"10280:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10279:27:54"},"returnParameters":{"id":5074,"nodeType":"ParameterList","parameters":[],"src":"10335:0:54"},"scope":5077,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":4699,"name":"Initializable","nameLocations":["1238:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":50409,"src":"1238:13:54"},"id":4700,"nodeType":"InheritanceSpecifier","src":"1238:13:54"},{"baseName":{"id":4701,"name":"UUPSUpgradeable","nameLocations":["1257:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":50591,"src":"1257:15:54"},"id":4702,"nodeType":"InheritanceSpecifier","src":"1257:15:54"},{"baseName":{"id":4703,"name":"AccessControlledUpgradeable","nameLocations":["1278:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2672,"src":"1278:27:54"},"id":4704,"nodeType":"InheritanceSpecifier","src":"1278:27:54"},{"baseName":{"id":4705,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1311:35:54"],"nodeType":"IdentifierPath","referencedDeclaration":52500,"src":"1311:35:54"},"id":4706,"nodeType":"InheritanceSpecifier","src":"1311:35:54"},{"baseName":{"id":4707,"name":"BalanceOperatorUpgradeable","nameLocations":["1352:26:54"],"nodeType":"IdentifierPath","referencedDeclaration":2836,"src":"1352:26:54"},"id":4708,"nodeType":"InheritanceSpecifier","src":"1352:26:54"}],"canonicalName":"LedgerVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":4698,"nodeType":"StructuredDocumentation","src":"901:309:54","text":"@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management."},"fullyImplemented":true,"linearizedBaseContracts":[5077,2836,963,992,945,1031,3168,1045,52500,2672,48036,53533,52201,50591,59161,50409],"name":"LedgerVault","nameLocation":"1219:11:54","scope":5078,"usedErrors":[979,1018,1774,1778,2572,4748,4751,4754,50172,50175,50436,50441,52432,53504,53510,53514,59356,59369,60946,61652,61944],"usedEvents":[932,977,1016,4727,4736,4745,50180,53500,59083]}],"license":"MIT"},"id":54} +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"claim","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"deposit","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getBalance","inputs":[{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getLedgerBalance","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"lock","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"release","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transfer","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"withdraw","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsClaimed","inputs":[{"name":"claimer","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsLocked","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsReleased","inputs":[{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsTransferred","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FundsWithdrawn","inputs":[{"name":"recipient","type":"address","indexed":true,"internalType":"address"},{"name":"origin","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"currency","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailDuringDeposit","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailDuringTransfer","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NoFundsToClaim","inputs":[]},{"type":"error","name":"NoFundsToLock","inputs":[]},{"type":"error","name":"NoFundsToRelease","inputs":[]},{"type":"error","name":"NoFundsToTransfer","inputs":[]},{"type":"error","name":"NoFundsToWithdraw","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60a080604052346100e857306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c166100d9576002600160401b03196001600160401b03821601610073575b60405161202590816100ed8239608051818181610bb50152610cd40152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005581527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f80610054565b63f92ee8a960e01b5f5260045ffd5b5f80fdfe60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033","sourceMap":"1146:9161:54:-:0;;;;;;;1171:4:93;1163:13;;8837:64:92;1146:9161:54;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;1146:9161:54;;7985:34:92;7981:146;;-1:-1:-1;1146:9161:54;;;;;;;;1163:13:93;1146:9161:54;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;1146:9161:54;-1:-1:-1;;;;;1146:9161:54;;;8837:64:92;1146:9161:54;;;8087:29:92;;1146:9161:54;;8087:29:92;7981:146;;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;1146:9161:54;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c806315f41501146111f75780634bbc170a146110a65780634f1ef28614610c2d57806352d1902d14610b7057806369328dec146109d85780637a9e5e4b146108e35780638fb36037146108325780639e96a26014610747578063ad3cb1cc14610695578063bf7e214f14610625578063c4d66de814610351578063d949b84414610287578063dbba0f0114610190578063f45346dc1461010c5763f8b2cb4f146100be575f80fd5b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760206101006100fa6112e1565b30611933565b604051908152f35b5f80fd5b3461010857602061012861011f36611304565b80939133611c82565b916101348184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917f2d26b12df00031a51cbd91c763887ccf6992992e54b2701fbe5bd7b2c738a4e291819081015b0390a3604051908152f35b346101085761019e36611304565b91335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff84165f526020528160405f20541061025f57826101ff6020948433611819565b61020a8184846117aa565b6040805184815273ffffffffffffffffffffffffffffffffffffffff92831660208201523393909216917fe93251c2a6f732155f1cd84502a2c66884e81835c0d4768a10d81fcd79510be79181908101610185565b7fd1df6ed0000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576102be6112e1565b6024359073ffffffffffffffffffffffffffffffffffffffff821682036101085761033b73ffffffffffffffffffffffffffffffffffffffff9173ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b91165f52602052602060405f2054604051908152f35b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108576103886112e1565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff82168015908161061d575b6001149081610613575b15908161060a575b506105e257818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561058d575b5061044b611c2b565b610453611c2b565b61045b611c2b565b610463611c2b565b61046b611c2b565b610473611c2b565b61047b611c2b565b61048481611888565b61048c611c2b565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556104fa57005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610442565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846103d9565b303b1591506103d1565b8491506103c7565b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085760408051906106d28183611376565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b346101085761075536611304565b61075f363361141e565b73ffffffffffffffffffffffffffffffffffffffff83165f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f20541061080a576107b4818360209561174a565b6107bf8183336117aa565b73ffffffffffffffffffffffffffffffffffffffff6040519183835216907f07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563843392a3604051908152f35b7fdff46e2b000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610108577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156108db5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f6108b1565b346101085760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085761091a6112e1565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036109ac57803b1561096a5761096890611888565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b34610108576109e636611304565b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005c610b485760017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d335f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2073ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f205410610b2057602092610a90828433611819565b610a9b828483611a4a565b73ffffffffffffffffffffffffffffffffffffffff6040519284845216917f823b7dcdbd5806d97a2a3c64fe281a8d31155b2a7dade87fdaa7437c79c12b118573ffffffffffffffffffffffffffffffffffffffff33941692a45f7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f005d604051908152f35b7f67e3990d000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f3ee5aeb5000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610108575f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101085773ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163003610c055760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b60407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261010857610c5f6112e1565b6024359067ffffffffffffffff8211610108573660238301121561010857816004013590610c8c826113e4565b91610c9a6040519384611376565b8083526020830193366024838301011161010857815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115611064575b50610c05576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115611059575f91611029575b5015610fa55773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610f71575b50610e0b57847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610f465750823b15610f1b57807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610ee9575f8091610968945190845af4610ee36119e4565b91611ecf565b50505034610ef357005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610f9d575b81610f8d60209383611376565b8101031261010857519086610dda565b3d9150610f80565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b61104b915060403d604011611052575b6110438183611376565b810190611a20565b5084610d85565b503d611039565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610cff565b34610108576110b436611304565b6110be363361141e565b6111058373ffffffffffffffffffffffffffffffffffffffff165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205260405f2090565b73ffffffffffffffffffffffffffffffffffffffff82165f526020528160405f2054106111cf5773ffffffffffffffffffffffffffffffffffffffff8361114f8385602097611819565b16805f525f845260405f2073ffffffffffffffffffffffffffffffffffffffff83165f52845260405f2061118484825461179d565b90557fa372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f628473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fa9e575de000000000000000000000000000000000000000000000000000000005f5260045ffd5b346101085761120536611304565b61120f363361141e565b73ffffffffffffffffffffffffffffffffffffffff8316805f525f60205260405f2073ffffffffffffffffffffffffffffffffffffffff83165f526020528260405f2054106112b95761127082848661126b838360209a61174a565b6117aa565b7f29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc8473ffffffffffffffffffffffffffffffffffffffff604051948686521693a3604051908152f35b7fb7cc22bc000000000000000000000000000000000000000000000000000000005f5260045ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361010857565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60609101126101085760043573ffffffffffffffffffffffffffffffffffffffff8116810361010857906024359060443573ffffffffffffffffffffffffffffffffffffffff811681036101085790565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176113b757604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff81116113b757601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b907ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00549173ffffffffffffffffffffffffffffffffffffffff83169282600411610108575f805f806040519573ffffffffffffffffffffffffffffffffffffffff60208801917fb700961300000000000000000000000000000000000000000000000000000000835216968760248201523060448201527fffffffff000000000000000000000000000000000000000000000000000000008335166064820152606481526114ed608482611376565b5190895afa6114fa6119e4565b906116b2575b501561150e575b5050505050565b63ffffffff1615611686577fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055823b15610108577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0925f92836064601f94604051978896879586937f94c7d7ee00000000000000000000000000000000000000000000000000000000855260048501526040602485015280604485015280868686013785858286010152011681010301925af1801561105957611676575b507fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0054167ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00555f80808080611507565b5f61168091611376565b5f611605565b507f068ca9d8000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b8051929091604084106116da5750506020806116d2938301019101611a20565b905b5f611500565b91909260208110156116ee575b50506116d4565b81925090602091810103126101085760206117099101611a13565b5f806116e7565b9190820391821161171d57565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b73ffffffffffffffffffffffffffffffffffffffff90929192165f525f60205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b9055565b9190820180921161171d57565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f2091825461179d565b73ffffffffffffffffffffffffffffffffffffffff90929192165f527fcb711bda070b7bbcc2b711ef3993cc17677144f4419b29e303bef375c5f40f0060205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205261179960405f20918254611710565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b9073ffffffffffffffffffffffffffffffffffffffff169081156119de5773ffffffffffffffffffffffffffffffffffffffff602460209260405194859384927f70a082310000000000000000000000000000000000000000000000000000000084521660048301525afa908115611059575f916119af575090565b90506020813d6020116119d6575b816119ca60209383611376565b81010312610108575190565b3d91506119bd565b90503190565b3d15611a0e573d906119f5826113e4565b91611a036040519384611376565b82523d5f602084013e565b606090565b5190811515820361010857565b9190826040910312610108576020611a3783611a13565b92015163ffffffff811681036101085790565b90918215611bcd5782611a5d8230611933565b10611b6f5773ffffffffffffffffffffffffffffffffffffffff168015611ae257611ae09273ffffffffffffffffffffffffffffffffffffffff604051937fa9059cbb000000000000000000000000000000000000000000000000000000006020860152166024840152604483015260448252611adb606483611376565b611f68565b565b505f80809373ffffffffffffffffffffffffffffffffffffffff8294165af1611b096119e4565b5015611b1157565b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f5472616e73666572206661696c656400000000000000000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f496e73756666696369656e742062616c616e63652e00000000000000000000006044820152fd5b60646040517f9cf1483d00000000000000000000000000000000000000000000000000000000815260206004820152602060248201527f496e76616c6964207a65726f20616d6f756e7420746f207472616e736665722e6044820152fd5b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c1615611c5a57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b9190918215611de95773ffffffffffffffffffffffffffffffffffffffff8216918215611d7e57611cb39082611e47565b8311611d2057611d1d9173ffffffffffffffffffffffffffffffffffffffff604051927f23b872dd00000000000000000000000000000000000000000000000000000000602085015216602483015230604483015283606483015260648252611adb608483611376565b90565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f416d6f756e74206578636565647320616c6c6f77616e63652e000000000000006044820152fd5b505050348111611d8b5790565b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f416d6f756e7420657863656564732062616c616e63652e0000000000000000006044820152fd5b60646040517f23c7565800000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e76616c6964207a65726f20616d6f756e742e0000000000000000000000006044820152fd5b9073ffffffffffffffffffffffffffffffffffffffff16908115611ec95773ffffffffffffffffffffffffffffffffffffffff604460209260405194859384927fdd62ed3e0000000000000000000000000000000000000000000000000000000084521660048301523060248301525afa908115611059575f916119af575090565b50503490565b90611f0c5750805115611ee457805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b81511580611f5f575b611f1d575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b15611f15565b905f602091828151910182855af115611059575f513d611fe6575073ffffffffffffffffffffffffffffffffffffffff81163b155b611fa45750565b73ffffffffffffffffffffffffffffffffffffffff907f5274afe7000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b60011415611f9d56fea26469706673582212209c9a1eda87eb80f8aaecb5fc01f998c3f9bbb320844e92b87497d7da9cc15c6464736f6c634300081a0033","sourceMap":"1146:9161:54:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1896:33:45;1146:9161:54;;:::i;:::-;1904:4:45;1896:33;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;2371:40:45;1146:9161:54;;;:::i;:::-;2371:10:45;;;;:40;:::i;:::-;2459:8;;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;2371:10:45;;1146:9161:54;;;;4235:58;;1146:9161;;;;4235:58;;;;1146:9161;;;;;;;;;;;;;:::i;:::-;3927:10:45;;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3910:47:45;3906:79;;3927:10;4031:8;1146:9161:54;3927:10:45;;;4031:8;:::i;:::-;4085;;;;;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;3927:10:45;;1146:9161:54;;;;5736:60;;1146:9161;;;;5736:60;1146:9161;3906:79:45;3966:19;1146:9161:54;3966:19:45;1146:9161:54;;3966:19:45;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;1469:18:47;1146:9161:54;1469:18:47;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;:28;1146:9161:54;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8837:64:92;1146:9161:54;;;;;;4301:16:92;1146:9161:54;;;;4726:16:92;;:34;;;;1146:9161:54;4805:1:92;4790:16;:50;;;;1146:9161:54;4855:13:92;:30;;;;1146:9161:54;4851:91:92;;;1146:9161:54;;4805:1:92;1146:9161:54;;;;;8837:64:92;1146:9161:54;4979:67:92;;1146:9161:54;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;1146:9161:54;;3295:62:44;1146:9161:54;;;3295:62:44;1146:9161:54;5066:101:92;;1146:9161:54;5066:101:92;1146:9161:54;8837:64:92;1146:9161:54;;8837:64:92;1146:9161:54;5142:14:92;1146:9161:54;;;4805:1:92;1146:9161:54;;5142:14:92;1146:9161:54;4979:67:92;1146:9161:54;;;;8837:64:92;1146:9161:54;4979:67:92;;;4851:91;4908:23;1146:9161:54;4908:23:92;1146:9161:54;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;1146:9161:54;;;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7943:44;7939:73;;8056:8;;;1146:9161;8056:8;;:::i;:::-;8114;966:10:96;;;8114:8:54;:::i;:::-;1146:9161;;;;;;;;966:10:96;8138:42:54;966:10:96;;8138:42:54;;1146:9161;;;;;;7939:73;7996:16;1146:9161;7996:16;1146:9161;;7996:16;1146:9161;;;;;;;;;;;1782:71:90;1146:9161:54;;;;;4698:71:90;;;1146:9161:54;;4698:71:90;1146:9161:54;;;;;;;;4698:71:90;1146:9161:54;;4698:71:90;;1146:9161:54;;;;;;;;;;;;;:::i;:::-;;1782:71:90;1146:9161:54;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;1146:9161:54;4355:110:90;1146:9161:54;4411:43:90;;1146:9161:54;4411:43:90;1146:9161:54;;;;;4411:43:90;4254:92;4302:33;1146:9161:54;4302:33:90;966:10:96;1146:9161:54;;;;4302:33:90;1146:9161:54;;;;;;;:::i;:::-;757:66:99;3321:69:160;1706:93:99;;1917:4;757:66;3550:68:160;3060:10:45;1146:9161:54;;4178:54:47;1146:9161:54;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;3043:47:45;3039:79;;1146:9161:54;3060:10:45;3164:8;3060:10;;;3164:8;:::i;:::-;3210;;;;;:::i;:::-;1146:9161:54;;;;;;;;3060:10:45;4991:58:54;3060:10:45;1146:9161:54;3060:10:45;1146:9161:54;;4991:58;;1146:9161;757:66:99;3550:68:160;1146:9161:54;;;;;;3039:79:45;3099:19;1146:9161:54;3099:19:45;1146:9161:54;;3099:19:45;1706:93:99;1758:30;1146:9161:54;1758:30:99;1146:9161:54;;1758:30:99;1146:9161:54;;;;;;;;;;;;5115:6:93;1146:9161:54;5106:4:93;5098:23;5094:145;;1146:9161:54;;;811:66:130;1146:9161:54;;;5094:145:93;5199:29;1146:9161:54;5199:29:93;1146:9161:54;;5199:29:93;1146:9161:54;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;1146:9161:54;4683:4:93;;4675:23;:120;;;;;1146:9161:54;4658:251:93;;;3058:30:44;1146:9161:54;;3295:62:44;1146:9161:54;;;;3058:30:44;;;;1146:9161:54;3058:30:44;;1146:9161:54;;3058:30:44;;1146:9161:54;1893:10:44;1146:9161:54;;;;3058:30:44;;;;;;;1146:9161:54;3058:30:44;;;1146:9161:54;1869:35:44;;1865:140;;1146:9161:54;;;;;;;6156:52:93;;1146:9161:54;6156:52:93;1146:9161:54;6156:52:93;;;;1146:9161:54;;6156:52:93;;;1146:9161:54;-1:-1:-1;6152:437:93;;6518:60;;1146:9161:54;6518:60:93;1146:9161:54;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;1146:9161:54;;811:66:130;1146:9161:54;;;811:66:130;1146:9161:54;2407:36:130;1146:9161:54;2407:36:130;;1146:9161:54;;2458:15:130;:11;;1146:9161:54;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;1146:9161:54;6159:70:130;6199:19;1146:9161:54;6199:19:130;1146:9161:54;;6199:19:130;1744:119;1805:47;1146:9161:54;1805:47:130;1146:9161:54;;;;1805:47:130;6246:120:93;6317:34;1146:9161:54;6317:34:93;1146:9161:54;;;;6317:34:93;6156:52;;;;1146:9161:54;6156:52:93;;1146:9161:54;6156:52:93;;;;;;1146:9161:54;6156:52:93;;;:::i;:::-;;;1146:9161:54;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;1146:9161:54;;1927:67:44;;;1146:9161:54;;1927:67:44;;520:1:42;1146:9161:54;;520:1:42;;1146:9161:54;520:1:42;3058:30:44;1146:9161:54;;520:1:42;;;;;;1927:67:44;3058:30;;;;1146:9161:54;3058:30:44;1146:9161:54;3058:30:44;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;1146:9161:54;;;;;;;;;4675:120:93;1146:9161:54;;;811:66:130;1146:9161:54;;4753:42:93;;4675:120;;;1146:9161:54;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1469:18:47;;1146:9161:54;;;;4178:54:47;1146:9161:54;;;;;;;1469:18:47;1146:9161:54;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;6418:44;6414:72;;1146:9161;6529:8;;;;1146:9161;6529:8;;:::i;:::-;1146:9161;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;-1:-1:-1;1146:9161:54;9281:36;1146:9161;;;9281:36;:::i;:::-;1146:9161;;6606:38;1146:9161;;;;;;;;;6606:38;;1146:9161;;;;;;6414:72;6471:15;1146:9161;6471:15;1146:9161;;6471:15;1146:9161;;;;;;;:::i;:::-;3871:10:90;1146:9161:54;966:10:96;3871::90;:::i;:::-;1146:9161:54;;;;;;;;;;;;;;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;7111:44;7107:75;;7278:8;7226;;;;;;1146:9161;7226:8;;:::i;:::-;7278;:::i;:::-;7302:40;1146:9161;;;;;;;;;7302:40;;1146:9161;;;;;;7107:75;7164:18;1146:9161;7164:18;1146:9161;;7164:18;1146:9161;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1146:9161:54;;;;;-1:-1:-1;1146:9161:54;;;;;;;;;;;;;;:::o;5359:667:90:-;;1782:71;1146:9161:54;;;;;;;5679:1:90;1146:9161:54;;;;;;;;;856:62:105;1146:9161:54;856:62:105;;;;;;;1146:9161:54;856:62:105;;;;;1146:9161:54;5646:4:90;1146:9161:54;;;;;;;;;;;;;856:62:105;;;;;;:::i;:::-;822:106;;;;;;;:::i;:::-;938:248;;;5359:667:90;5706:10;;5702:318;;5359:667;;;;;;:::o;5702:318::-;1146:9161:54;;5736:9:90;1146:9161:54;;;;;;1782:71:90;1146:9161:54;5810:60:90;;;;;856:62:105;1146:9161:54;;;;;;;;;5810:60:90;;;;;;;1146:9161:54;5810:60:90;;5679:1;5810:60;;1146:9161:54;;856:62:105;1146:9161:54;;;;;;;;;;;;;;;;;;;;;;;;;5810:60:90;;;;;;;;;;;5732:278;1146:9161:54;;1782:71:90;1146:9161:54;;1782:71:90;1146:9161:54;5702:318:90;;;;;;;5810:60;1146:9161:54;5810:60:90;;;:::i;:::-;1146:9161:54;5810:60:90;;5732:278;5962:33;;1146:9161:54;5962:33:90;5679:1;1146:9161:54;856:62:105;1146:9161:54;5962:33:90;938:248:105;1146:9161:54;;;;;;969:19:105;;1146:9161:54;;1029:32:105;;856:62;1029:32;;;;;;;;;:::i;:::-;1008:53;965:211;938:248;;;965:211;1086:19;;;856:62;1086:19;;;1082:94;;965:211;;;;;1082:94;1137:24;;;;856:62;1137:24;;;1146:9161:54;;;;856:62:105;1146:9161:54;1137:24:105;;1146:9161:54;:::i;:::-;1082:94:105;;;;1146:9161:54;;;;;;;;;;:::o;:::-;;;;;;;;;;8632:138;1146:9161;8632:138;;;;1146:9161;8727:7;1146:9161;8727:7;1146:9161;;;;8727:7;1146:9161;8727:26;1146:9161;-1:-1:-1;1146:9161:54;;;8727:36;1146:9161;-1:-1:-1;1146:9161:54;;;;8727:36;:::i;:::-;1146:9161;;8632:138::o;1146:9161::-;;;;;;;;;;:::o;3116:195:47:-;1146:9161:54;3116:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3266:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3266:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3266:38:47;:::i;3743:195::-;1146:9161:54;3743:195:47;;;;1146:9161:54;-1:-1:-1;1146:9161:54;4178:54:47;1146:9161:54;;;;-1:-1:-1;1146:9161:54;3893:28:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;3893:38:47;1146:9161:54;-1:-1:-1;1146:9161:54;;;;3893:38:47;:::i;4964:220:90:-;1146:9161:54;;5147:30:90;4964:220;1146:9161:54;;;1782:71:90;1146:9161:54;;;1782:71:90;1146:9161:54;;;;;;5147:30:90;4964:220::o;4674:193:39:-;;1146:9161:54;;4770:19:39;;;4766:46;;1146:9161:54;4829:31:39;1146:9161:54;;;;4829:31:39;;;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;1146:9161:54;4829:31:39;;;;;;;1146:9161:54;4829:31:39;;;4822:38;4674:193;:::o;4829:31::-;;;1146:9161:54;4829:31:39;;1146:9161:54;4829:31:39;;;;;;1146:9161:54;4829:31:39;;;:::i;:::-;;;1146:9161:54;;;;;4674:193:39;:::o;4829:31::-;;;-1:-1:-1;4829:31:39;;4766:46;4798:14;;;4791:21;:::o;1146:9161:54:-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;1146:9161:54;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::o;5233:383:39:-;;;5317:11;;5313:78;;5423:4;5405:31;5423:4;;5405:31;:::i;:::-;:40;5401:96;;1146:9161:54;;5511:19:39;;5507:59;;1380:43:144;1146:9161:54;;;;1380:43:144;1146:9161:54;1380:43:144;;;;1146:9161:54;1380:43:144;;;1146:9161:54;;;;;;1380:43:144;;;;;;:::i;:::-;;:::i;:::-;5233:383:39:o;5507:59::-;1146:9161:54;5327:1:39;1146:9161:54;;;;;;;904:37:39;;;;:::i;:::-;;955:8;951:58;;5532:34::o;951:58::-;972:37;1146:9161:54;;972:37:39;;;1146:9161:54;972:37:39;;;1146:9161:54;;;;;;;;;;;972:37:39;5401:96;5454:43;1146:9161:54;;5454:43:39;;;1146:9161:54;5454:43:39;;;1146:9161:54;;;;;;;;;;;5454:43:39;5313:78;5337:54;1146:9161:54;;5337:54:39;;;1146:9161:54;5337:54:39;;;1146:9161:54;;;;;;;;;;;5337:54:39;7084:141:92;1146:9161:54;8837:64:92;1146:9161:54;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;3539:881:39;;;;3646:11;;3642:65;;1146:9161:54;;;3721:19:39;;;3717:230;;3970:22;;;;:::i;:::-;3961:31;;3957:90;;1797:53:144;1146:9161:54;;;;1797:53:144;1146:9161:54;1797:53:144;;;;1146:9161:54;1797:53:144;;;1146:9161:54;4376:4:39;1146:9161:54;;;;;;;;;;1797:53:144;;;;;;:::i;:::-;3539:881:39;:::o;3957:90::-;4001:46;1146:9161:54;;4001:46:39;;;1146:9161:54;4001:46:39;;;1146:9161:54;;;;;;;;;;;4001:46:39;3717:230;3769:9;;;;3760:18;;3756:75;;3923:13;:::o;3756:75::-;3787:44;1146:9161:54;;3787:44:39;;;1146:9161:54;3787:44:39;;;1146:9161:54;;;;;;;;;;;3787:44:39;3642:65;3666:41;1146:9161:54;;3666:41:39;;;1146:9161:54;3666:41:39;;;1146:9161:54;;;;;;;;;;;3666:41:39;2841:201;;1146:9161:54;;2936:19:39;;;2932:41;;1146:9161:54;2990:45:39;1146:9161:54;;;;2990:45:39;;;;;1146:9161:54;2990:45:39;;1146:9161:54;2990:45:39;;;1146:9161:54;3029:4:39;1146:9161:54;;;;2990:45:39;;;;;;;1146:9161:54;2990:45:39;;;2983:52;2841:201;:::o;2932:41::-;2964:9;;;2957:16;:::o;4421:582:151:-;;4593:8;;-1:-1:-1;1146:9161:54;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;1146:9161:54;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;1146:9161:54;4917:24:151;;4862:1;4917:24;1146:9161:54;4917:24:151;1146:9161:54;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;;7738:720:144;;-1:-1:-1;7875:421:144;7738:720;7875:421;;;;;;;;;;;;-1:-1:-1;7875:421:144;;8310:15;;1146:9161:54;;;;8328:26:144;:31;8310:68;8306:146;;7738:720;:::o;8306:146::-;1146:9161:54;8401:40:144;;-1:-1:-1;8401:40:144;1146:9161:54;8401:40:144;1146:9161:54;;-1:-1:-1;8401:40:144;8310:68;8377:1;8362:16;;8310:68;","linkReferences":{},"immutableReferences":{"50482":[{"start":2997,"length":32},{"start":3284,"length":32}]}},"methodIdentifiers":{"UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","claim(address,uint256,address)":"9e96a260","deposit(address,uint256,address)":"f45346dc","getBalance(address)":"f8b2cb4f","getLedgerBalance(address,address)":"d949b844","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","lock(address,uint256,address)":"4bbc170a","proxiableUUID()":"52d1902d","release(address,uint256,address)":"15f41501","setAuthority(address)":"7a9e5e4b","transfer(address,uint256,address)":"dbba0f01","upgradeToAndCall(address,bytes)":"4f1ef286","withdraw(address,uint256,address)":"69328dec"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringDeposit\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"FailDuringTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToClaim\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToLock\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToRelease\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToTransfer\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoFundsToWithdraw\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"}],\"name\":\"SafeERC20FailedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"claimer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsClaimed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsDeposited\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsLocked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsReleased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"origin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"FundsWithdrawn\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"claim\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"deposit\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"getLedgerBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"lock\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"release\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"transfer\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"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\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"}],\"name\":\"withdraw\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"This contract includes administrative methods (`restricted`) and general user methods. Supports operations such as deposits, withdrawals, transfers, and locked funds management.\",\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailDuringTransfer(string)\":[{\"params\":{\"reason\":\"The reason for the transfer failure.\"}}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NoFundsToClaim()\":[{\"details\":\"This error occurs if an account or claimer tries to claim funds that are not locked or insufficient.\"}],\"NoFundsToLock()\":[{\"details\":\"This error occurs if an account attempts to lock more funds than available.\"}],\"NoFundsToRelease()\":[{\"details\":\"This error occurs if an operator tries to releases funds that are not locked or insufficient.\"}],\"NoFundsToTransfer()\":[{\"details\":\"This error is triggered when a transfer is attempted but the sender has insufficient funds or no balance.\"}],\"NoFundsToWithdraw()\":[{\"details\":\"This error is triggered when a withdrawal is attempted but the contract has insufficient funds.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}],\"SafeERC20FailedOperation(address)\":[{\"details\":\"An operation with an ERC-20 token failed.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"FundsClaimed(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds claimed.\",\"claimer\":\"The address of the entity claiming the funds.\",\"currency\":\"The address of the currency in which the funds were claimed.\"}},\"FundsDeposited(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency deposited.\",\"currency\":\"The address of the ERC20 token deposited.\",\"origin\":\"The address sending the deposit funds.\",\"recipient\":\"The address of the account credited with the deposit.\"}},\"FundsLocked(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were locked.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsReleased(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account whose funds were released.\",\"amount\":\"The amount of funds that were locked.\",\"currency\":\"The address of the currency in which the funds were locked.\"}},\"FundsTransferred(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency transferred.\",\"currency\":\"The address of the ERC20 token transferred. Use `address(0)` for native tokens.\",\"origin\":\"The address of the account initiating the transfer.\",\"recipient\":\"The address of the account receiving the funds.\"}},\"FundsWithdrawn(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount of funds being withdrawn.\",\"currency\":\"The currency used for the withdrawal.\",\"origin\":\"The address sending the withdrawn funds.\",\"recipient\":\"The address receiving the withdrawn funds.\"}},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"claim(address,uint256,address)\":{\"details\":\"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account whose funds are being claimed.\",\"amount\":\"The amount of funds to claim.\",\"currency\":\"The currency to associate claim with. Use address(0) for the native coin.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"deposit(address,uint256,address)\":{\"params\":{\"amount\":\"The amount of currency to deposit.\",\"currency\":\"The address of the ERC20 token to deposit.\",\"recipient\":\"The address of the account to credit with the deposit.\"}},\"getBalance(address)\":{\"details\":\"The function checks the balance for both native and ERC-20 tokens.\",\"params\":{\"currency\":\"The address of the currency to check the balance of.\"}},\"getLedgerBalance(address,address)\":{\"params\":{\"account\":\"The address of the account whose balance is being queried.\",\"currency\":\"The address of the currency to retrieve the balance for.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"lock(address,uint256,address)\":{\"details\":\"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.\",\"params\":{\"account\":\"The address of the account for which the funds will be locked.\",\"amount\":\"The amount of funds to lock.\",\"currency\":\"The currency to associate lock with. Use address(0) for the native coin.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"release(address,uint256,address)\":{\"params\":{\"account\":\"The address of the account for which the funds will be released.\",\"amount\":\"The amount of funds to release.\",\"currency\":\"The currency to associate release with. Use address(0) for the native coin.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"transfer(address,uint256,address)\":{\"details\":\"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\",\"params\":{\"amount\":\"The amount of currency to transfer.\",\"currency\":\"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.\",\"recipient\":\"The address of the account to credit with the transfer.\"}},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"withdraw(address,uint256,address)\":{\"details\":\"This function withdraws funds from the caller's balance and transfers them to the recipient.\",\"params\":{\"amount\":\"The amount of tokens to withdraw.\",\"currency\":\"The currency to associate fees with. Use address(0) for the native coin.\",\"recipient\":\"The address that will receive the withdrawn tokens.\"}}},\"stateVariables\":{\"_locked\":{\"details\":\"Holds the registry of locked funds for accounts.\"}},\"title\":\"LedgerVault\",\"version\":1},\"userdoc\":{\"errors\":{\"FailDuringTransfer(string)\":[{\"notice\":\"Error to be thrown when a transfer fails.\"}],\"NoFundsToClaim()\":[{\"notice\":\"Thrown when there are no locked funds available to claim.\"}],\"NoFundsToLock()\":[{\"notice\":\"Thrown when there are no available funds to lock.\"}],\"NoFundsToRelease()\":[{\"notice\":\"Thrown when there are no locked funds available to release.\"}],\"NoFundsToTransfer()\":[{\"notice\":\"Error indicating that there are no funds available to transfer.\"}],\"NoFundsToWithdraw()\":[{\"notice\":\"Error indicating that there are no funds available to withdraw.\"}]},\"events\":{\"FundsClaimed(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully claimed.\"},\"FundsDeposited(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully deposited into the pool.\"},\"FundsLocked(address,uint256,address)\":{\"notice\":\"Emitted when funds are locked in the ledger.\"},\"FundsReleased(address,uint256,address)\":{\"notice\":\"Emitted when locked funds are successfully released.\"},\"FundsTransferred(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are successfully transferred between accounts.\"},\"FundsWithdrawn(address,address,uint256,address)\":{\"notice\":\"Emitted when funds are withdrawn from the contract.\"}},\"kind\":\"user\",\"methods\":{\"claim(address,uint256,address)\":{\"notice\":\"Claims a specific amount of locked funds on behalf of a claimer.\"},\"deposit(address,uint256,address)\":{\"notice\":\"Deposits a specified amount of currency into the pool for a given recipient.\"},\"getBalance(address)\":{\"notice\":\"Returns the general's balance for the specified currency.\"},\"getLedgerBalance(address,address)\":{\"notice\":\"Retrieves the ledger balance of an account for a specific currency.\"},\"lock(address,uint256,address)\":{\"notice\":\"Locks a specific amount of funds for a given account.\"},\"release(address,uint256,address)\":{\"notice\":\"Release a specific amount of funds from locked pool.\"},\"transfer(address,uint256,address)\":{\"notice\":\"Transfers a specified amount of currency from the caller's balance to a given recipient.\"},\"withdraw(address,uint256,address)\":{\"notice\":\"Withdraws tokens from the contract to a specified recipient's address.\"}},\"notice\":\"A vault contract designed to store, lock, release, and manage funds securely.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/financial/LedgerVault.sol\":\"LedgerVault\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/base/IBalanceDepositor.sol\":{\"keccak256\":\"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2\",\"dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn\"]},\"contracts/core/interfaces/base/IBalanceOperator.sol\":{\"keccak256\":\"0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1\",\"dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx\"]},\"contracts/core/interfaces/base/IBalanceTransferable.sol\":{\"keccak256\":\"0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de\",\"dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ\"]},\"contracts/core/interfaces/base/IBalanceWithdrawable.sol\":{\"keccak256\":\"0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec\",\"dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7\"]},\"contracts/core/interfaces/base/ILedgerVerifiable.sol\":{\"keccak256\":\"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd\",\"dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG\"]},\"contracts/core/libraries/FinancialOps.sol\":{\"keccak256\":\"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215\",\"license\":\"GPL-3.0-or-later\",\"urls\":[\"bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d\",\"dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol\":{\"keccak256\":\"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403\",\"dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1\"]},\"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol\":{\"keccak256\":\"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2\",\"dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX\"]},\"contracts/financial/LedgerVault.sol\":{\"keccak256\":\"0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf\",\"dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol\":{\"keccak256\":\"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab\",\"dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol\":{\"keccak256\":\"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b\",\"dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol\":{\"keccak256\":\"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba\",\"dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db\",\"dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9\"]},\"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862\",\"dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol\":{\"keccak256\":\"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889\",\"dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringDeposit"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"FailDuringTransfer"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NoFundsToClaim"},{"inputs":[],"type":"error","name":"NoFundsToLock"},{"inputs":[],"type":"error","name":"NoFundsToRelease"},{"inputs":[],"type":"error","name":"NoFundsToTransfer"},{"inputs":[],"type":"error","name":"NoFundsToWithdraw"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"type":"error","name":"SafeERC20FailedOperation"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"claimer","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsClaimed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsDeposited","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsLocked","anonymous":false},{"inputs":[{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsReleased","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":false}],"type":"event","name":"FundsTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"recipient","type":"address","indexed":true},{"internalType":"address","name":"origin","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"currency","type":"address","indexed":true}],"type":"event","name":"FundsWithdrawn","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"claim","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"view","type":"function","name":"getLedgerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"lock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"release","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"claim(address,uint256,address)":{"details":"The claimer is authorized to process the funds from the account. Only operator role can handle this methods.","params":{"account":"The address of the account whose funds are being claimed.","amount":"The amount of funds to claim.","currency":"The currency to associate claim with. Use address(0) for the native coin."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"deposit(address,uint256,address)":{"params":{"amount":"The amount of currency to deposit.","currency":"The address of the ERC20 token to deposit.","recipient":"The address of the account to credit with the deposit."}},"getBalance(address)":{"details":"The function checks the balance for both native and ERC-20 tokens.","params":{"currency":"The address of the currency to check the balance of."}},"getLedgerBalance(address,address)":{"params":{"account":"The address of the account whose balance is being queried.","currency":"The address of the currency to retrieve the balance for."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"lock(address,uint256,address)":{"details":"The funds are immobilized and cannot be withdrawn or transferred until released or claimed. Only operator role can handle this methods.","params":{"account":"The address of the account for which the funds will be locked.","amount":"The amount of funds to lock.","currency":"The currency to associate lock with. Use address(0) for the native coin."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"release(address,uint256,address)":{"params":{"account":"The address of the account for which the funds will be released.","amount":"The amount of funds to release.","currency":"The currency to associate release with. Use address(0) for the native coin."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"transfer(address,uint256,address)":{"details":"Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.","params":{"amount":"The amount of currency to transfer.","currency":"The address of the ERC20 token to transfer. Use `address(0)` for native tokens.","recipient":"The address of the account to credit with the transfer."}},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"withdraw(address,uint256,address)":{"details":"This function withdraws funds from the caller's balance and transfers them to the recipient.","params":{"amount":"The amount of tokens to withdraw.","currency":"The currency to associate fees with. Use address(0) for the native coin.","recipient":"The address that will receive the withdrawn tokens."}}},"version":1},"userdoc":{"kind":"user","methods":{"claim(address,uint256,address)":{"notice":"Claims a specific amount of locked funds on behalf of a claimer."},"deposit(address,uint256,address)":{"notice":"Deposits a specified amount of currency into the pool for a given recipient."},"getBalance(address)":{"notice":"Returns the general's balance for the specified currency."},"getLedgerBalance(address,address)":{"notice":"Retrieves the ledger balance of an account for a specific currency."},"lock(address,uint256,address)":{"notice":"Locks a specific amount of funds for a given account."},"release(address,uint256,address)":{"notice":"Release a specific amount of funds from locked pool."},"transfer(address,uint256,address)":{"notice":"Transfers a specified amount of currency from the caller's balance to a given recipient."},"withdraw(address,uint256,address)":{"notice":"Withdraws tokens from the contract to a specified recipient's address."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/financial/LedgerVault.sol":"LedgerVault"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceDepositor.sol":{"keccak256":"0x5c52b09eb3ef3b077d02c9a989624b2dc1e2a00f026b65a04b6bc67206c751d8","urls":["bzz-raw://0945732e1b234e80dee53dfd566862640bba93e6bdc360637c9dc2e1446757d2","dweb:/ipfs/QmRGnSxbbDBFDcJiNkKyAj1K8Y88PbLub13Pf6jiWmT4Vn"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceOperator.sol":{"keccak256":"0x15c496cd62a30864c5e2a97c6c42f32dff53dbaa6a39423ccae999712c76361e","urls":["bzz-raw://7ad4f9ae16eded8d662578e6435b9edb2b39df26e776a1ae3459bda696ce20c1","dweb:/ipfs/QmYxNU1zexpUevj5GecxfYPvCM7DPs6xKVrEBSfQAyZ4Rx"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceTransferable.sol":{"keccak256":"0x1ab8599894aaabb22bbcdd9ef55246991aa1a8c7d91fdb3af11d0a9da76c8657","urls":["bzz-raw://8449bddd07f95f25e5651246a0d925a09d18077e7d8af1e590f14766b6e951de","dweb:/ipfs/QmQHrcXFVZizwXpHK4D2TteXqDkPJiaCdHwrxegMTRn1iQ"],"license":"MIT"},"contracts/core/interfaces/base/IBalanceWithdrawable.sol":{"keccak256":"0x4b4f6ed37ea5ae7a453e075ad49f6e99aee09cb7c3ed6152b81bd8d42cef1b40","urls":["bzz-raw://cc42910ff3935f00aff6b5b39479021212ef6281f323c130e68b8a62cc4d96ec","dweb:/ipfs/QmdVmmna2ZCwBDbpGZXvYABN8fNwCmU7JciXFzq93s2yE7"],"license":"MIT"},"contracts/core/interfaces/base/ILedgerVerifiable.sol":{"keccak256":"0x89d88c2c231d74479d218a74c495696e7cce624ec5f0fea83840171ac9a90e95","urls":["bzz-raw://b7b0548dc0eb2cd40fc1907b5b1576c050faef5e18a5bc6237666288c3084ffd","dweb:/ipfs/Qman5EaGE4tgrQ4kq6w9n7mLNDAhgXXC1Cyj9dUP8e3KKG"],"license":"MIT"},"contracts/core/libraries/FinancialOps.sol":{"keccak256":"0x562c5b305577ec5b57c5fba5df98afdaba99d7871772962502e0959852e92215","urls":["bzz-raw://d37937cd5fe0432f714aebba49d342dab1e9577c9d1edc3fe568a02e636e1a3d","dweb:/ipfs/QmVteEKdVkvwKKEHyweJWbns75LU3jsqrQtAhcHY7eTwhX"],"license":"GPL-3.0-or-later"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol":{"keccak256":"0xdcb66f86cc94a88725347da0add854997b3759b4f98efce0923f313c9759a03f","urls":["bzz-raw://afa2db1b1e817131b5925e546c1cb8ab8b256e7d6d38752e60807d88631ca403","dweb:/ipfs/QmShNiZ2QJWVrrshkMWKBkyMmu1i2ngfobuPpZV1LeAhh1"],"license":"MIT"},"contracts/core/primitives/upgradeable/LedgerUpgradeable.sol":{"keccak256":"0x2e51d076c533c1161e843e808db34e7f774b9acdb61e6c83dbeda6fe07920c2a","urls":["bzz-raw://a4482e61cfc721dc96e1ef47f56010ad0f37c225949609bba0f03c406a8ac0c2","dweb:/ipfs/QmdSXpbPbrXFDUr4sHQ6BJeRUGWq2EpoCiiS8APxFeYysX"],"license":"MIT"},"contracts/financial/LedgerVault.sol":{"keccak256":"0x501aab236fcb7377a9687fe5c555b074861244bf8fe8b7d63ddc34f29f7f3b08","urls":["bzz-raw://705dd2f42064b55be00ce5696ee6fd18626ff0f39afe3e7904f45c04ca08afcf","dweb:/ipfs/QmYFci4aRBQQaxP7yMSxnK7sUVvPRZ5g2tPjNAh44F1gk1"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol":{"keccak256":"0x04b70c397e00597da0f023706f7c44ac8c7b4276a1ddff05d3ca5449775bc6f5","urls":["bzz-raw://d4b8599331bffb75c9d40ad57cf5025c29d384099ece48758fea2f0f5b969eab","dweb:/ipfs/QmXXMq1kgvMdUn3DiTS4zEZNy9EDXfevM2wvYHWwfSW6Yu"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1363.sol":{"keccak256":"0x9b6b3e7803bc5f2f8cd7ad57db8ac1def61a9930a5a3107df4882e028a9605d7","urls":["bzz-raw://da62d6be1f5c6edf577f0cb45666a8aa9c2086a4bac87d95d65f02e2f4c36a4b","dweb:/ipfs/QmNkpvBpoCMvX8JwAFNSc5XxJ2q5BXJpL5L1txb4QkqVFF"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC20.sol":{"keccak256":"0xce41876e78d1badc0512229b4d14e4daf83bc1003d7f83978d18e0e56f965b9c","urls":["bzz-raw://a2608291cb038b388d80b79a06b6118a42f7894ff67b7da10ec0dbbf5b2973ba","dweb:/ipfs/QmWohqcBLbcxmA4eGPhZDXe5RYMMEEpFq22nfkaUMvTfw1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xe06a3f08a987af6ad2e1c1e774405d4fe08f1694b67517438b467cecf0da0ef7","urls":["bzz-raw://df6f0c459663c9858b6cba2cda1d14a7d05a985bed6d2de72bd8e78c25ee79db","dweb:/ipfs/QmeTTxZ7qVk9rjEv2R4CpCwdf8UMCcRqDNMvzNxHc3Fnn9"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xca2ae13e0610f6a99238dd00b97bd786bc92732dae6d6b9d61f573ec51018310","urls":["bzz-raw://75f8c71ce0c91c40dd5f249ace0b7d8270f8f1767231bcf71490f7157d6ba862","dweb:/ipfs/QmYXgxeDyFHvz3JsXxLEYN6GNUR44ThHeFj5XkpkgMoG4w"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/TransientSlot.sol":{"keccak256":"0x9303ef5a2beb555e52ce56598de205ce07ca8988fc67d073687c06cb8fc973d1","urls":["bzz-raw://8b2e48fb42844c25e6cb38e7cfa1d91dcdc054613fd10f608833dbc677acf889","dweb:/ipfs/QmT4HQxbgpWA3fZnK4dY3eXHNCoyBvpvzNq5k7eSt5mR5t"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":4706,"contract":"contracts/financial/LedgerVault.sol:LedgerVault","label":"_locked","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/financial/LedgerVault.sol","id":5070,"exportedSymbols":{"AccessControlledUpgradeable":[2660],"BalanceOperatorUpgradeable":[2824],"FinancialOps":[2031],"Initializable":[50462],"LedgerVault":[5069],"ReentrancyGuardTransientUpgradeable":[52553],"UUPSUpgradeable":[50644]},"nodeType":"SourceUnit","src":"124:10184:54","nodes":[{"id":4673,"nodeType":"PragmaDirective","src":"124:23:54","nodes":[],"literals":["solidity","0.8",".26"]},{"id":4675,"nodeType":"ImportDirective","src":"149:98:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":50463,"symbolAliases":[{"foreign":{"id":4674,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50462,"src":"158:13:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4677,"nodeType":"ImportDirective","src":"248:102:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":50645,"symbolAliases":[{"foreign":{"id":4676,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50644,"src":"257:15:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4679,"nodeType":"ImportDirective","src":"396:136:54","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardTransientUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":52554,"symbolAliases":[{"foreign":{"id":4678,"name":"ReentrancyGuardTransientUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52553,"src":"405:35:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4681,"nodeType":"ImportDirective","src":"533:115:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2661,"symbolAliases":[{"foreign":{"id":4680,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"542:27:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4683,"nodeType":"ImportDirective","src":"649:113:54","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/BalanceOperatorUpgradeable.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2825,"symbolAliases":[{"foreign":{"id":4682,"name":"BalanceOperatorUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2824,"src":"658:26:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":4685,"nodeType":"ImportDirective","src":"763:72:54","nodes":[],"absolutePath":"contracts/core/libraries/FinancialOps.sol","file":"@synaps3/core/libraries/FinancialOps.sol","nameLocation":"-1:-1:-1","scope":5070,"sourceUnit":2032,"symbolAliases":[{"foreign":{"id":4684,"name":"FinancialOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2031,"src":"772:12:54","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5069,"nodeType":"ContractDefinition","src":"1146:9161:54","nodes":[{"id":4699,"nodeType":"UsingForDirective","src":"1321:31:54","nodes":[],"global":false,"libraryName":{"id":4697,"name":"FinancialOps","nameLocations":["1327:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":2031,"src":"1327:12:54"},"typeName":{"id":4698,"name":"address","nodeType":"ElementaryTypeName","src":"1344:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":4706,"nodeType":"VariableDeclaration","src":"1420:63:54","nodes":[],"constant":false,"documentation":{"id":4700,"nodeType":"StructuredDocumentation","src":"1358:57:54","text":"@dev Holds the registry of locked funds for accounts."},"mutability":"mutable","name":"_locked","nameLocation":"1476:7:54","scope":5069,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":4705,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4701,"name":"address","nodeType":"ElementaryTypeName","src":"1428:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1420:47:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4704,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":4702,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1439:27:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":4703,"name":"uint256","nodeType":"ElementaryTypeName","src":"1458:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":4715,"nodeType":"EventDefinition","src":"1770:85:54","nodes":[],"anonymous":false,"documentation":{"id":4707,"nodeType":"StructuredDocumentation","src":"1490:275:54","text":"@notice Emitted when funds are locked in the ledger.\n @param account The address of the account whose funds were locked.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"a372d74f11f208f0466eb410f699d101da6ccbe3717f711988fb355eac737f62","name":"FundsLocked","nameLocation":"1776:11:54","parameters":{"id":4714,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4709,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"1804:7:54","nodeType":"VariableDeclaration","scope":4715,"src":"1788:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4708,"name":"address","nodeType":"ElementaryTypeName","src":"1788:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4711,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"1821:6:54","nodeType":"VariableDeclaration","scope":4715,"src":"1813:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4710,"name":"uint256","nodeType":"ElementaryTypeName","src":"1813:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4713,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"1845:8:54","nodeType":"VariableDeclaration","scope":4715,"src":"1829:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4712,"name":"address","nodeType":"ElementaryTypeName","src":"1829:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1787:67:54"}},{"id":4724,"nodeType":"EventDefinition","src":"2151:87:54","nodes":[],"anonymous":false,"documentation":{"id":4716,"nodeType":"StructuredDocumentation","src":"1861:285:54","text":"@notice Emitted when locked funds are successfully released.\n @param account The address of the account whose funds were released.\n @param amount The amount of funds that were locked.\n @param currency The address of the currency in which the funds were locked."},"eventSelector":"29f33620d8742cb2079bba3afb003116b7db185e4f58a4bd6bc4291b6d99fcbc","name":"FundsReleased","nameLocation":"2157:13:54","parameters":{"id":4723,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4718,"indexed":true,"mutability":"mutable","name":"account","nameLocation":"2187:7:54","nodeType":"VariableDeclaration","scope":4724,"src":"2171:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4717,"name":"address","nodeType":"ElementaryTypeName","src":"2171:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4720,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2204:6:54","nodeType":"VariableDeclaration","scope":4724,"src":"2196:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4719,"name":"uint256","nodeType":"ElementaryTypeName","src":"2196:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4722,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2228:8:54","nodeType":"VariableDeclaration","scope":4724,"src":"2212:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4721,"name":"address","nodeType":"ElementaryTypeName","src":"2212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2170:67:54"}},{"id":4733,"nodeType":"EventDefinition","src":"2517:86:54","nodes":[],"anonymous":false,"documentation":{"id":4725,"nodeType":"StructuredDocumentation","src":"2244:268:54","text":"@notice Emitted when locked funds are successfully claimed.\n @param claimer The address of the entity claiming the funds.\n @param amount The amount of funds claimed.\n @param currency The address of the currency in which the funds were claimed."},"eventSelector":"07b798e47a298c7004dfddcb1196e6b8f9a6488dd1db7eeedbc8a4c3f4831563","name":"FundsClaimed","nameLocation":"2523:12:54","parameters":{"id":4732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4727,"indexed":true,"mutability":"mutable","name":"claimer","nameLocation":"2552:7:54","nodeType":"VariableDeclaration","scope":4733,"src":"2536:23:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4726,"name":"address","nodeType":"ElementaryTypeName","src":"2536:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4729,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"2569:6:54","nodeType":"VariableDeclaration","scope":4733,"src":"2561:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4731,"indexed":true,"mutability":"mutable","name":"currency","nameLocation":"2593:8:54","nodeType":"VariableDeclaration","scope":4733,"src":"2577:24:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4730,"name":"address","nodeType":"ElementaryTypeName","src":"2577:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2535:67:54"}},{"id":4736,"nodeType":"ErrorDefinition","src":"2764:22:54","nodes":[],"documentation":{"id":4734,"nodeType":"StructuredDocumentation","src":"2609:150:54","text":"@notice Thrown when there are no available funds to lock.\n @dev This error occurs if an account attempts to lock more funds than available."},"errorSelector":"a9e575de","name":"NoFundsToLock","nameLocation":"2770:13:54","parameters":{"id":4735,"nodeType":"ParameterList","parameters":[],"src":"2783:2:54"}},{"id":4739,"nodeType":"ErrorDefinition","src":"2980:23:54","nodes":[],"documentation":{"id":4737,"nodeType":"StructuredDocumentation","src":"2792:183:54","text":"@notice Thrown when there are no locked funds available to claim.\n @dev This error occurs if an account or claimer tries to claim funds that are not locked or insufficient."},"errorSelector":"dff46e2b","name":"NoFundsToClaim","nameLocation":"2986:14:54","parameters":{"id":4738,"nodeType":"ParameterList","parameters":[],"src":"3000:2:54"}},{"id":4742,"nodeType":"ErrorDefinition","src":"3192:25:54","nodes":[],"documentation":{"id":4740,"nodeType":"StructuredDocumentation","src":"3009:178:54","text":"@notice Thrown when there are no locked funds available to release.\n @dev This error occurs if an operator tries to releases funds that are not locked or insufficient."},"errorSelector":"b7cc22bc","name":"NoFundsToRelease","nameLocation":"3198:16:54","parameters":{"id":4741,"nodeType":"ParameterList","parameters":[],"src":"3214:2:54"}},{"id":4750,"nodeType":"FunctionDefinition","src":"3276:243:54","nodes":[],"body":{"id":4749,"nodeType":"Block","src":"3290:229:54","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4746,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50430,"src":"3490:20:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4747,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3490:22:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4748,"nodeType":"ExpressionStatement","src":"3490:22:54"}]},"documentation":{"id":4743,"nodeType":"StructuredDocumentation","src":"3223:48:54","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":4744,"nodeType":"ParameterList","parameters":[],"src":"3287:2:54"},"returnParameters":{"id":4745,"nodeType":"ParameterList","parameters":[],"src":"3290:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4771,"nodeType":"FunctionDefinition","src":"3525:228:54","nodes":[],"body":{"id":4770,"nodeType":"Block","src":"3587:166:54","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4757,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50516,"src":"3597:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4758,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3597:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4759,"nodeType":"ExpressionStatement","src":"3597:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4760,"name":"__BalanceOperator_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2690,"src":"3631:22:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3631:24:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4762,"nodeType":"ExpressionStatement","src":"3631:24:54"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":4763,"name":"__ReentrancyGuardTransient_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52502,"src":"3665:31:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":4764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3665:33:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4765,"nodeType":"ExpressionStatement","src":"3665:33:54"},{"expression":{"arguments":[{"id":4767,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4752,"src":"3732:13:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":4766,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"3708:23:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":4768,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3708:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4769,"nodeType":"ExpressionStatement","src":"3708:38:54"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":4755,"kind":"modifierInvocation","modifierName":{"id":4754,"name":"initializer","nameLocations":["3575:11:54"],"nodeType":"IdentifierPath","referencedDeclaration":50316,"src":"3575:11:54"},"nodeType":"ModifierInvocation","src":"3575:11:54"}],"name":"initialize","nameLocation":"3534:10:54","parameters":{"id":4753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4752,"mutability":"mutable","name":"accessManager","nameLocation":"3553:13:54","nodeType":"VariableDeclaration","scope":4771,"src":"3545:21:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4751,"name":"address","nodeType":"ElementaryTypeName","src":"3545:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3544:23:54"},"returnParameters":{"id":4756,"nodeType":"ParameterList","parameters":[],"src":"3587:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":4802,"nodeType":"FunctionDefinition","src":"4056:270:54","nodes":[],"body":{"id":4801,"nodeType":"Block","src":"4153:173:54","nodes":[],"statements":[{"assignments":[4784],"declarations":[{"constant":false,"id":4784,"mutability":"mutable","name":"confirmed","nameLocation":"4171:9:54","nodeType":"VariableDeclaration","scope":4801,"src":"4163:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4783,"name":"uint256","nodeType":"ElementaryTypeName","src":"4163:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4790,"initialValue":{"arguments":[{"id":4786,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"4192:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4787,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4776,"src":"4203:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4788,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"4211:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4785,"name":"_deposit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2744,"src":"4183:8:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4183:37:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4163:57:54"},{"eventCall":{"arguments":[{"id":4792,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4774,"src":"4250:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4793,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4261:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4265:6:54","memberName":"sender","nodeType":"MemberAccess","src":"4261:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4795,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"4273:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4796,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4778,"src":"4284:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4791,"name":"FundsDeposited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":934,"src":"4235:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4235:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4798,"nodeType":"EmitStatement","src":"4230:63:54"},{"expression":{"id":4799,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4784,"src":"4310:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4782,"id":4800,"nodeType":"Return","src":"4303:16:54"}]},"baseFunctions":[946],"documentation":{"id":4772,"nodeType":"StructuredDocumentation","src":"3759:292:54","text":"@notice Deposits a specified amount of currency into the pool for a given recipient.\n @param recipient The address of the account to credit with the deposit.\n @param amount The amount of currency to deposit.\n @param currency The address of the ERC20 token to deposit."},"functionSelector":"f45346dc","implemented":true,"kind":"function","modifiers":[],"name":"deposit","nameLocation":"4065:7:54","parameters":{"id":4779,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4774,"mutability":"mutable","name":"recipient","nameLocation":"4081:9:54","nodeType":"VariableDeclaration","scope":4802,"src":"4073:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4773,"name":"address","nodeType":"ElementaryTypeName","src":"4073:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4776,"mutability":"mutable","name":"amount","nameLocation":"4100:6:54","nodeType":"VariableDeclaration","scope":4802,"src":"4092:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4775,"name":"uint256","nodeType":"ElementaryTypeName","src":"4092:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4778,"mutability":"mutable","name":"currency","nameLocation":"4116:8:54","nodeType":"VariableDeclaration","scope":4802,"src":"4108:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4777,"name":"address","nodeType":"ElementaryTypeName","src":"4108:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4072:53:54"},"returnParameters":{"id":4782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4781,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4802,"src":"4144:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4780,"name":"uint256","nodeType":"ElementaryTypeName","src":"4144:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4143:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4835,"nodeType":"FunctionDefinition","src":"4797:285:54","nodes":[],"body":{"id":4834,"nodeType":"Block","src":"4908:174:54","nodes":[],"statements":[{"assignments":[4817],"declarations":[{"constant":false,"id":4817,"mutability":"mutable","name":"confirmed","nameLocation":"4926:9:54","nodeType":"VariableDeclaration","scope":4834,"src":"4918:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4816,"name":"uint256","nodeType":"ElementaryTypeName","src":"4918:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4823,"initialValue":{"arguments":[{"id":4819,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"4948:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4820,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4807,"src":"4959:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4821,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4809,"src":"4967:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4818,"name":"_withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2784,"src":"4938:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4938:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4918:58:54"},{"eventCall":{"arguments":[{"id":4825,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4805,"src":"5006:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4826,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5017:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4827,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5021:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5017:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4828,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5029:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4829,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4809,"src":"5040:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4824,"name":"FundsWithdrawn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1022,"src":"4991:14:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4830,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4991:58:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4831,"nodeType":"EmitStatement","src":"4986:63:54"},{"expression":{"id":4832,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"5066:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4815,"id":4833,"nodeType":"Return","src":"5059:16:54"}]},"baseFunctions":[1034],"documentation":{"id":4803,"nodeType":"StructuredDocumentation","src":"4374:418:54","text":"@notice Withdraws tokens from the contract to a specified recipient's address.\n @dev This function withdraws funds from the caller's balance and transfers them to the recipient.\n @param recipient The address that will receive the withdrawn tokens.\n @param amount The amount of tokens to withdraw.\n @param currency The currency to associate fees with. Use address(0) for the native coin."},"functionSelector":"69328dec","implemented":true,"kind":"function","modifiers":[{"id":4812,"kind":"modifierInvocation","modifierName":{"id":4811,"name":"nonReentrant","nameLocations":["4877:12:54"],"nodeType":"IdentifierPath","referencedDeclaration":52496,"src":"4877:12:54"},"nodeType":"ModifierInvocation","src":"4877:12:54"}],"name":"withdraw","nameLocation":"4806:8:54","parameters":{"id":4810,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4805,"mutability":"mutable","name":"recipient","nameLocation":"4823:9:54","nodeType":"VariableDeclaration","scope":4835,"src":"4815:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4804,"name":"address","nodeType":"ElementaryTypeName","src":"4815:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4807,"mutability":"mutable","name":"amount","nameLocation":"4842:6:54","nodeType":"VariableDeclaration","scope":4835,"src":"4834:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4806,"name":"uint256","nodeType":"ElementaryTypeName","src":"4834:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4809,"mutability":"mutable","name":"currency","nameLocation":"4858:8:54","nodeType":"VariableDeclaration","scope":4835,"src":"4850:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4808,"name":"address","nodeType":"ElementaryTypeName","src":"4850:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4814:53:54"},"returnParameters":{"id":4815,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4814,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4835,"src":"4899:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4813,"name":"uint256","nodeType":"ElementaryTypeName","src":"4899:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4898:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4866,"nodeType":"FunctionDefinition","src":"5555:274:54","nodes":[],"body":{"id":4865,"nodeType":"Block","src":"5653:176:54","nodes":[],"statements":[{"assignments":[4848],"declarations":[{"constant":false,"id":4848,"mutability":"mutable","name":"confirmed","nameLocation":"5671:9:54","nodeType":"VariableDeclaration","scope":4865,"src":"5663:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4847,"name":"uint256","nodeType":"ElementaryTypeName","src":"5663:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":4854,"initialValue":{"arguments":[{"id":4850,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4838,"src":"5693:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4851,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4840,"src":"5704:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4852,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4842,"src":"5712:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4849,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2823,"src":"5683:9:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (address,uint256,address) returns (uint256)"}},"id":4853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5683:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5663:58:54"},{"eventCall":{"arguments":[{"id":4856,"name":"recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4838,"src":"5753:9:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":4857,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5764:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4858,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5768:6:54","memberName":"sender","nodeType":"MemberAccess","src":"5764:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4859,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5776:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4860,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4842,"src":"5787:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4855,"name":"FundsTransferred","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":980,"src":"5736:16:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,address,uint256,address)"}},"id":4861,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5736:60:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4862,"nodeType":"EmitStatement","src":"5731:65:54"},{"expression":{"id":4863,"name":"confirmed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4848,"src":"5813:9:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4846,"id":4864,"nodeType":"Return","src":"5806:16:54"}]},"baseFunctions":[992],"documentation":{"id":4836,"nodeType":"StructuredDocumentation","src":"5088:462:54","text":"@notice Transfers a specified amount of currency from the caller's balance to a given recipient.\n @dev Ensures the caller has sufficient balance before performing the transfer. Updates the ledger accordingly.\n @param recipient The address of the account to credit with the transfer.\n @param amount The amount of currency to transfer.\n @param currency The address of the ERC20 token to transfer. Use `address(0)` for native tokens."},"functionSelector":"dbba0f01","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"5564:8:54","parameters":{"id":4843,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4838,"mutability":"mutable","name":"recipient","nameLocation":"5581:9:54","nodeType":"VariableDeclaration","scope":4866,"src":"5573:17:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4837,"name":"address","nodeType":"ElementaryTypeName","src":"5573:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4840,"mutability":"mutable","name":"amount","nameLocation":"5600:6:54","nodeType":"VariableDeclaration","scope":4866,"src":"5592:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4839,"name":"uint256","nodeType":"ElementaryTypeName","src":"5592:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4842,"mutability":"mutable","name":"currency","nameLocation":"5616:8:54","nodeType":"VariableDeclaration","scope":4866,"src":"5608:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4841,"name":"address","nodeType":"ElementaryTypeName","src":"5608:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5572:53:54"},"returnParameters":{"id":4846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4845,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4866,"src":"5644:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4844,"name":"uint256","nodeType":"ElementaryTypeName","src":"5644:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5643:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4911,"nodeType":"FunctionDefinition","src":"6301:373:54","nodes":[],"body":{"id":4910,"nodeType":"Block","src":"6404:270:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4881,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6435:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4882,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6444:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4880,"name":"getLedgerBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3051,"src":"6418:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4883,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6418:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4884,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6456:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6418:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4889,"nodeType":"IfStatement","src":"6414:72:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4886,"name":"NoFundsToLock","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4736,"src":"6471:13:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6471:15:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4888,"nodeType":"RevertStatement","src":"6464:22:54"}},{"expression":{"arguments":[{"id":4891,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6512:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4892,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6521:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4893,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6529:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4890,"name":"_subLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3146,"src":"6496:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4894,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6496:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4895,"nodeType":"ExpressionStatement","src":"6496:42:54"},{"expression":{"arguments":[{"id":4897,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6565:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4898,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6574:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4899,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6582:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4896,"name":"_sumLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5041,"src":"6548:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6548:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4901,"nodeType":"ExpressionStatement","src":"6548:43:54"},{"eventCall":{"arguments":[{"id":4903,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4869,"src":"6618:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4904,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6627:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4905,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4873,"src":"6635:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4902,"name":"FundsLocked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4715,"src":"6606:11:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4906,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6606:38:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4907,"nodeType":"EmitStatement","src":"6601:43:54"},{"expression":{"id":4908,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4871,"src":"6661:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4879,"id":4909,"nodeType":"Return","src":"6654:13:54"}]},"documentation":{"id":4867,"nodeType":"StructuredDocumentation","src":"5835:461:54","text":"@notice Locks a specific amount of funds for a given account.\n @dev The funds are immobilized and cannot be withdrawn or transferred until released or claimed.\n Only operator role can handle this methods.\n @param account The address of the account for which the funds will be locked.\n @param amount The amount of funds to lock.\n @param currency The currency to associate lock with. Use address(0) for the native coin."},"functionSelector":"4bbc170a","implemented":true,"kind":"function","modifiers":[{"id":4876,"kind":"modifierInvocation","modifierName":{"id":4875,"name":"restricted","nameLocations":["6375:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"6375:10:54"},"nodeType":"ModifierInvocation","src":"6375:10:54"}],"name":"lock","nameLocation":"6310:4:54","parameters":{"id":4874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4869,"mutability":"mutable","name":"account","nameLocation":"6323:7:54","nodeType":"VariableDeclaration","scope":4911,"src":"6315:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4868,"name":"address","nodeType":"ElementaryTypeName","src":"6315:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4871,"mutability":"mutable","name":"amount","nameLocation":"6340:6:54","nodeType":"VariableDeclaration","scope":4911,"src":"6332:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4870,"name":"uint256","nodeType":"ElementaryTypeName","src":"6332:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4873,"mutability":"mutable","name":"currency","nameLocation":"6356:8:54","nodeType":"VariableDeclaration","scope":4911,"src":"6348:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4872,"name":"address","nodeType":"ElementaryTypeName","src":"6348:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6314:51:54"},"returnParameters":{"id":4879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4878,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4911,"src":"6395:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4877,"name":"uint256","nodeType":"ElementaryTypeName","src":"6395:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6394:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":4956,"nodeType":"FunctionDefinition","src":"6991:381:54","nodes":[],"body":{"id":4955,"nodeType":"Block","src":"7097:275:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4930,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4926,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7128:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4927,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7137:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4925,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"7111:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7111:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4929,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7149:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7111:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4934,"nodeType":"IfStatement","src":"7107:75:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4931,"name":"NoFundsToRelease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4742,"src":"7164:16:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4932,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7164:18:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4933,"nodeType":"RevertStatement","src":"7157:25:54"}},{"expression":{"arguments":[{"id":4936,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7209:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4937,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7218:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4938,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7226:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4935,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"7192:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4939,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7192:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4940,"nodeType":"ExpressionStatement","src":"7192:43:54"},{"expression":{"arguments":[{"id":4942,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7261:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4943,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7270:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4944,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7278:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4941,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"7245:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7245:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4946,"nodeType":"ExpressionStatement","src":"7245:42:54"},{"eventCall":{"arguments":[{"id":4948,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4914,"src":"7316:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4949,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7325:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4950,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4918,"src":"7333:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4947,"name":"FundsReleased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4724,"src":"7302:13:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4951,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7302:40:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4952,"nodeType":"EmitStatement","src":"7297:45:54"},{"expression":{"id":4953,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4916,"src":"7359:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4924,"id":4954,"nodeType":"Return","src":"7352:13:54"}]},"documentation":{"id":4912,"nodeType":"StructuredDocumentation","src":"6680:306:54","text":"@notice Release a specific amount of funds from locked pool.\n @param account The address of the account for which the funds will be released.\n @param amount The amount of funds to release.\n @param currency The currency to associate release with. Use address(0) for the native coin."},"functionSelector":"15f41501","implemented":true,"kind":"function","modifiers":[{"id":4921,"kind":"modifierInvocation","modifierName":{"id":4920,"name":"restricted","nameLocations":["7068:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"7068:10:54"},"nodeType":"ModifierInvocation","src":"7068:10:54"}],"name":"release","nameLocation":"7000:7:54","parameters":{"id":4919,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4914,"mutability":"mutable","name":"account","nameLocation":"7016:7:54","nodeType":"VariableDeclaration","scope":4956,"src":"7008:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4913,"name":"address","nodeType":"ElementaryTypeName","src":"7008:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4916,"mutability":"mutable","name":"amount","nameLocation":"7033:6:54","nodeType":"VariableDeclaration","scope":4956,"src":"7025:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4915,"name":"uint256","nodeType":"ElementaryTypeName","src":"7025:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4918,"mutability":"mutable","name":"currency","nameLocation":"7049:8:54","nodeType":"VariableDeclaration","scope":4956,"src":"7041:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4917,"name":"address","nodeType":"ElementaryTypeName","src":"7041:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7007:51:54"},"returnParameters":{"id":4924,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4923,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":4956,"src":"7088:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4922,"name":"uint256","nodeType":"ElementaryTypeName","src":"7088:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7087:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5003,"nodeType":"FunctionDefinition","src":"7825:385:54","nodes":[],"body":{"id":5002,"nodeType":"Block","src":"7929:281:54","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":4975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":4971,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"7960:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4972,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"7969:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4970,"name":"_getLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5058,"src":"7943:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":4973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7943:35:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":4974,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"7981:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7943:44:54","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":4979,"nodeType":"IfStatement","src":"7939:73:54","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":4976,"name":"NoFundsToClaim","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4739,"src":"7996:14:54","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":4977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:16:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":4978,"nodeType":"RevertStatement","src":"7989:23:54"}},{"expression":{"arguments":[{"id":4981,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4959,"src":"8039:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4982,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8048:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4983,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8056:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4980,"name":"_subLockedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5022,"src":"8022:16:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4984,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8022:43:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4985,"nodeType":"ExpressionStatement","src":"8022:43:54"},{"expression":{"arguments":[{"expression":{"id":4987,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8094:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8098:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8094:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4989,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8106:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4990,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8114:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4986,"name":"_sumLedgerEntry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3119,"src":"8078:15:54","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8078:45:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4992,"nodeType":"ExpressionStatement","src":"8078:45:54"},{"eventCall":{"arguments":[{"expression":{"id":4994,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"8151:3:54","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":4995,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"8155:6:54","memberName":"sender","nodeType":"MemberAccess","src":"8151:10:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":4996,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8163:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":4997,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4963,"src":"8171:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":4993,"name":"FundsClaimed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4733,"src":"8138:12:54","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_address_$returns$__$","typeString":"function (address,uint256,address)"}},"id":4998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8138:42:54","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":4999,"nodeType":"EmitStatement","src":"8133:47:54"},{"expression":{"id":5000,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4961,"src":"8197:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":4969,"id":5001,"nodeType":"Return","src":"8190:13:54"}]},"documentation":{"id":4957,"nodeType":"StructuredDocumentation","src":"7378:442:54","text":"@notice Claims a specific amount of locked funds on behalf of a claimer.\n @dev The claimer is authorized to process the funds from the account.\n Only operator role can handle this methods.\n @param account The address of the account whose funds are being claimed.\n @param amount The amount of funds to claim.\n @param currency The currency to associate claim with. Use address(0) for the native coin."},"functionSelector":"9e96a260","implemented":true,"kind":"function","modifiers":[{"id":4966,"kind":"modifierInvocation","modifierName":{"id":4965,"name":"restricted","nameLocations":["7900:10:54"],"nodeType":"IdentifierPath","referencedDeclaration":47916,"src":"7900:10:54"},"nodeType":"ModifierInvocation","src":"7900:10:54"}],"name":"claim","nameLocation":"7834:5:54","parameters":{"id":4964,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4959,"mutability":"mutable","name":"account","nameLocation":"7848:7:54","nodeType":"VariableDeclaration","scope":5003,"src":"7840:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4958,"name":"address","nodeType":"ElementaryTypeName","src":"7840:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":4961,"mutability":"mutable","name":"amount","nameLocation":"7865:6:54","nodeType":"VariableDeclaration","scope":5003,"src":"7857:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4960,"name":"uint256","nodeType":"ElementaryTypeName","src":"7857:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":4963,"mutability":"mutable","name":"currency","nameLocation":"7881:8:54","nodeType":"VariableDeclaration","scope":5003,"src":"7873:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":4962,"name":"address","nodeType":"ElementaryTypeName","src":"7873:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7839:51:54"},"returnParameters":{"id":4969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":4968,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5003,"src":"7920:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":4967,"name":"uint256","nodeType":"ElementaryTypeName","src":"7920:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7919:9:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":5022,"nodeType":"FunctionDefinition","src":"8632:138:54","nodes":[],"body":{"id":5021,"nodeType":"Block","src":"8717:53:54","nodes":[],"statements":[{"expression":{"id":5019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5013,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"8727:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5016,"indexExpression":{"id":5014,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5006,"src":"8735:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"8727:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5017,"indexExpression":{"id":5015,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5010,"src":"8744:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8727:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":5018,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5008,"src":"8757:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8727:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5020,"nodeType":"ExpressionStatement","src":"8727:36:54"}]},"documentation":{"id":5004,"nodeType":"StructuredDocumentation","src":"8216:411:54","text":"@notice Reduces the locked funds of an account for a specific currency.\n @dev Deducts the specified `amount` from the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being reduced.\n @param amount The amount to subtract from the locked balance.\n @param currency The address of the currency being reduced."},"implemented":true,"kind":"function","modifiers":[],"name":"_subLockedAmount","nameLocation":"8641:16:54","parameters":{"id":5011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5006,"mutability":"mutable","name":"account","nameLocation":"8666:7:54","nodeType":"VariableDeclaration","scope":5022,"src":"8658:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5005,"name":"address","nodeType":"ElementaryTypeName","src":"8658:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5008,"mutability":"mutable","name":"amount","nameLocation":"8683:6:54","nodeType":"VariableDeclaration","scope":5022,"src":"8675:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5007,"name":"uint256","nodeType":"ElementaryTypeName","src":"8675:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5010,"mutability":"mutable","name":"currency","nameLocation":"8699:8:54","nodeType":"VariableDeclaration","scope":5022,"src":"8691:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5009,"name":"address","nodeType":"ElementaryTypeName","src":"8691:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"8657:51:54"},"returnParameters":{"id":5012,"nodeType":"ParameterList","parameters":[],"src":"8717:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5041,"nodeType":"FunctionDefinition","src":"9186:138:54","nodes":[],"body":{"id":5040,"nodeType":"Block","src":"9271:53:54","nodes":[],"statements":[{"expression":{"id":5038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":5032,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"9281:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5035,"indexExpression":{"id":5033,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5025,"src":"9289:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9281:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5036,"indexExpression":{"id":5034,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5029,"src":"9298:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9281:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":5037,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5027,"src":"9311:6:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9281:36:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":5039,"nodeType":"ExpressionStatement","src":"9281:36:54"}]},"documentation":{"id":5023,"nodeType":"StructuredDocumentation","src":"8776:405:54","text":"@notice Increases the locked funds of an account for a specific currency.\n @dev Adds the specified `amount` to the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked funds are being increased.\n @param amount The amount to add to the locked balance.\n @param currency The address of the currency being increased."},"implemented":true,"kind":"function","modifiers":[],"name":"_sumLockedAmount","nameLocation":"9195:16:54","parameters":{"id":5030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5025,"mutability":"mutable","name":"account","nameLocation":"9220:7:54","nodeType":"VariableDeclaration","scope":5041,"src":"9212:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5024,"name":"address","nodeType":"ElementaryTypeName","src":"9212:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5027,"mutability":"mutable","name":"amount","nameLocation":"9237:6:54","nodeType":"VariableDeclaration","scope":5041,"src":"9229:14:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5026,"name":"uint256","nodeType":"ElementaryTypeName","src":"9229:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":5029,"mutability":"mutable","name":"currency","nameLocation":"9253:8:54","nodeType":"VariableDeclaration","scope":5041,"src":"9245:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5028,"name":"address","nodeType":"ElementaryTypeName","src":"9245:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9211:51:54"},"returnParameters":{"id":5031,"nodeType":"ParameterList","parameters":[],"src":"9271:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":5058,"nodeType":"FunctionDefinition","src":"9775:142:54","nodes":[],"body":{"id":5057,"nodeType":"Block","src":"9867:50:54","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":5051,"name":"_locked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4706,"src":"9884:7:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":5053,"indexExpression":{"id":5052,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5044,"src":"9892:7:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9884:16:54","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":5055,"indexExpression":{"id":5054,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5046,"src":"9901:8:54","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9884:26:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":5050,"id":5056,"nodeType":"Return","src":"9877:33:54"}]},"documentation":{"id":5042,"nodeType":"StructuredDocumentation","src":"9330:440:54","text":"@notice Retrieves the locked balance of an account for a specific currency.\n @dev Returns the value stored in the `_locked` mapping for the given `account` and `currency`.\n @param account The address of the account whose locked balance is being queried.\n @param currency The address of the currency to check the locked balance for.\n @return The locked balance of the specified account for the given currency."},"implemented":true,"kind":"function","modifiers":[],"name":"_getLockedAmount","nameLocation":"9784:16:54","parameters":{"id":5047,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5044,"mutability":"mutable","name":"account","nameLocation":"9809:7:54","nodeType":"VariableDeclaration","scope":5058,"src":"9801:15:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5043,"name":"address","nodeType":"ElementaryTypeName","src":"9801:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5046,"mutability":"mutable","name":"currency","nameLocation":"9826:8:54","nodeType":"VariableDeclaration","scope":5058,"src":"9818:16:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5045,"name":"address","nodeType":"ElementaryTypeName","src":"9818:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9800:35:54"},"returnParameters":{"id":5050,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5049,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5058,"src":"9858:7:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":5048,"name":"uint256","nodeType":"ElementaryTypeName","src":"9858:7:54","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9857:9:54"},"scope":5069,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":5068,"nodeType":"FunctionDefinition","src":"10221:84:54","nodes":[],"body":{"id":5067,"nodeType":"Block","src":"10303:2:54","nodes":[],"statements":[]},"baseFunctions":[50598],"documentation":{"id":5059,"nodeType":"StructuredDocumentation","src":"9923:293:54","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":5065,"kind":"modifierInvocation","modifierName":{"id":5064,"name":"onlyAdmin","nameLocations":["10293:9:54"],"nodeType":"IdentifierPath","referencedDeclaration":2578,"src":"10293:9:54"},"nodeType":"ModifierInvocation","src":"10293:9:54"}],"name":"_authorizeUpgrade","nameLocation":"10230:17:54","overrides":{"id":5063,"nodeType":"OverrideSpecifier","overrides":[],"src":"10284:8:54"},"parameters":{"id":5062,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5061,"mutability":"mutable","name":"newImplementation","nameLocation":"10256:17:54","nodeType":"VariableDeclaration","scope":5068,"src":"10248:25:54","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5060,"name":"address","nodeType":"ElementaryTypeName","src":"10248:7:54","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10247:27:54"},"returnParameters":{"id":5066,"nodeType":"ParameterList","parameters":[],"src":"10303:0:54"},"scope":5069,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":4687,"name":"Initializable","nameLocations":["1174:13:54"],"nodeType":"IdentifierPath","referencedDeclaration":50462,"src":"1174:13:54"},"id":4688,"nodeType":"InheritanceSpecifier","src":"1174:13:54"},{"baseName":{"id":4689,"name":"UUPSUpgradeable","nameLocations":["1193:15:54"],"nodeType":"IdentifierPath","referencedDeclaration":50644,"src":"1193:15:54"},"id":4690,"nodeType":"InheritanceSpecifier","src":"1193:15:54"},{"baseName":{"id":4691,"name":"AccessControlledUpgradeable","nameLocations":["1214:27:54"],"nodeType":"IdentifierPath","referencedDeclaration":2660,"src":"1214:27:54"},"id":4692,"nodeType":"InheritanceSpecifier","src":"1214:27:54"},{"baseName":{"id":4693,"name":"ReentrancyGuardTransientUpgradeable","nameLocations":["1247:35:54"],"nodeType":"IdentifierPath","referencedDeclaration":52553,"src":"1247:35:54"},"id":4694,"nodeType":"InheritanceSpecifier","src":"1247:35:54"},{"baseName":{"id":4695,"name":"BalanceOperatorUpgradeable","nameLocations":["1288:26:54"],"nodeType":"IdentifierPath","referencedDeclaration":2824,"src":"1288:26:54"},"id":4696,"nodeType":"InheritanceSpecifier","src":"1288:26:54"}],"canonicalName":"LedgerVault","contractDependencies":[],"contractKind":"contract","documentation":{"id":4686,"nodeType":"StructuredDocumentation","src":"837:309:54","text":"@title LedgerVault\n @notice A vault contract designed to store, lock, release, and manage funds securely.\n @dev This contract includes administrative methods (`restricted`) and general user methods.\n Supports operations such as deposits, withdrawals, transfers, and locked funds management."},"fullyImplemented":true,"linearizedBaseContracts":[5069,2824,963,993,947,1035,3156,1049,52553,2660,48089,53586,52254,50644,59214,50462],"name":"LedgerVault","nameLocation":"1155:11:54","scope":5070,"usedErrors":[969,1011,1769,1773,2560,4736,4739,4742,50225,50228,50489,50494,52485,53557,53563,53567,59409,59422,60999,61705,61997],"usedEvents":[934,980,1022,4715,4724,4733,50233,53553,59136]}],"license":"MIT"},"id":54} \ No newline at end of file diff --git a/src/config/abi/PoliciesAgg.json b/src/config/abi/PoliciesAgg.json index ab4d04273..97e97a739 100644 --- a/src/config/abi/PoliciesAgg.json +++ b/src/config/abi/PoliciesAgg.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyAuthorizer","type":"address","internalType":"address"},{"name":"assetOwnership","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_AUTHORIZER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyAuthorizer"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAssetSpecificPolicies","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getAvailablePoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getHolderWidePolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016657601f61169938819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c0526040516115069081610193823960805181818161079f0152610837015260a0518181816104e90152611011015260c05181818160c901526106ed0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea2646970667358221220588e95723d19f7c8d500d53ce2c94ed1cc1293dee0a513cdb7c4c1420ba1f45d64736f6c634300081a0033","sourceMap":"760:3814:3:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;-1:-1:-1;;;;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;760:3814:3;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;760:3814:3;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;760:3814:3;;;;1648:74;760:3814;1732:49;;760:3814;;;;;;;;1163:13:56;760:3814:3;;;;;;;;;;1648:74;760:3814;;;;;;;;;;1732:49;760:3814;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;760:3814:3;-1:-1:-1;;;;;760:3814:3;;;8837:64:55;760:3814:3;;;;;;8087:29:55;;760:3814:3;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;760:3814:3;-1:-1:-1;760:3814:3;;;;;;-1:-1:-1;760:3814:3;;;;;-1:-1:-1;760:3814:3;;;;-1:-1:-1;;;;;760:3814:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea2646970667358221220588e95723d19f7c8d500d53ce2c94ed1cc1293dee0a513cdb7c4c1420ba1f45d64736f6c634300081a0033","sourceMap":"760:3814:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;1240:48;760:3814;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;2503:43;760:3814;;:::i;:::-;;;;;;;;2443:18;;760:3814;;2443:18;;;760:3814;2443:18;;:::i;:::-;2503:43;:::i;:::-;760:3814;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;:::i;:::-;8837:64:55;760:3814:3;;;;;;4301:16:55;760:3814:3;;;;4726:16:55;;:34;;;;760:3814:3;4805:1:55;4790:16;:50;;;;760:3814:3;4855:13:55;:30;;;;760:3814:3;4851:91:55;;;760:3814:3;;4805:1:55;760:3814:3;;;;;8837:64:55;760:3814:3;4979:67:55;;760:3814:3;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;760:3814:3;;3295:62:102;760:3814:3;;;3295:62:102;760:3814:3;5066:101:55;;760:3814:3;5066:101:55;760:3814:3;8837:64:55;760:3814:3;;8837:64:55;760:3814:3;5142:14:55;760:3814:3;;;4805:1:55;760:3814:3;;5142:14:55;760:3814:3;4979:67:55;760:3814:3;;;;8837:64:55;760:3814:3;4979:67:55;;;4851:91;4908:23;760:3814:3;4908:23:55;760:3814:3;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;1782:71:54;760:3814:3;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;1103:65;760:3814;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;1782:71:54;760:3814:3;;;;;4698:71:54;;;760:3814:3;;4698:71:54;760:3814:3;;;;;;;;4698:71:54;760:3814:3;;4698:71:54;;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;:::i;:::-;;1782:71:54;760:3814:3;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3814:3;4355:110:54;760:3814:3;4411:43:54;;760:3814:3;4411:43:54;760:3814:3;;;;;4411:43:54;4254:92;4302:33;760:3814:3;4302:33:54;966:10:57;760:3814:3;;;;4302:33:54;760:3814:3;;;;;-1:-1:-1;;760:3814:3;;;;;;;;;2889:19;;760:3814;2889:19;;760:3814;;2889:19;;;760:3814;2889:19;;:::i;:::-;760:3814;;2935:32;760:3814;2935:32;;760:3814;2935:32;;760:3814;;2935:15;:32;:15;760:3814;2935:15;760:3814;2935:32;;;;;;;760:3814;2935:32;;;760:3814;;3009:43;;;;:::i;2935:32::-;;;760:3814;2935:32;;760:3814;2935:32;;;;;;760:3814;2935:32;;;:::i;:::-;;;760:3814;;;;;;;3009:43;760:3814;;:::i;:::-;2935:32;;;;;;;;-1:-1:-1;2935:32:3;;;760:3814;;;;;;;;;;;;;;-1:-1:-1;;760:3814:3;;;;;;5115:6:56;760:3814:3;5106:4:56;5098:23;5094:145;;760:3814:3;;;811:66:68;760:3814:3;;;5094:145:56;5199:29;760:3814:3;5199:29:56;760:3814:3;;5199:29:56;760:3814:3;;;;:::i;:::-;;4692:6:56;760:3814:3;4683:4:56;;4675:23;:120;;;;;760:3814:3;4658:251:56;;;3058:30:102;760:3814:3;;3295:62:102;760:3814:3;;;;3058:30:102;;;;760:3814:3;3058:30:102;;760:3814:3;;3058:30:102;;760:3814:3;1893:10:102;760:3814:3;;;;3058:30:102;;;;;;;760:3814:3;3058:30:102;;;760:3814:3;1869:35:102;;1865:140;;760:3814:3;;;;;;;6156:52:56;;760:3814:3;6156:52:56;760:3814:3;6156:52:56;;;;760:3814:3;;6156:52:56;;;760:3814:3;-1:-1:-1;6152:437:56;;6518:60;;760:3814:3;6518:60:56;760:3814:3;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;760:3814:3;;811:66:68;760:3814:3;;;811:66:68;760:3814:3;2407:36:68;760:3814:3;2407:36:68;;760:3814:3;;2458:15:68;:11;;760:3814:3;4049:25:75;;760:3814:3;4091:55:75;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:68:-;6163:9;;;6159:70;;760:3814:3;6159:70:68;6199:19;760:3814:3;6199:19:68;760:3814:3;;6199:19:68;1744:119;1805:47;760:3814:3;1805:47:68;760:3814:3;;;;1805:47:68;6246:120:56;6317:34;760:3814:3;6317:34:56;760:3814:3;;;;6317:34:56;6156:52;;;;760:3814:3;6156:52:56;;760:3814:3;6156:52:56;;;;;;760:3814:3;6156:52:56;;;:::i;:::-;;;760:3814:3;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;760:3814:3;;1927:67:102;;;760:3814:3;;1927:67:102;;520:1:100;;760:3814:3;520:1:100;;760:3814:3;520:1:100;3058:30:102;760:3814:3;;520:1:100;;;;;;1927:67:102;3058:30;;;760:3814:3;3058:30:102;;760:3814:3;3058:30:102;;;;;;760:3814:3;3058:30:102;;;:::i;:::-;;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;760:3814:3;;;811:66:68;760:3814:3;;4753:42:56;;4675:120;;;760:3814:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3814:3;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3814:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3814:3;;;;:::o;:::-;;;:::o;3292:892::-;;760:3814;;;3469:54;760:3814;3469:54;;760:3814;3469:54;;;760:3814;-1:-1:-1;3469:24:3;:54;:24;760:3814;3469:24;760:3814;3469:54;;;;;;;-1:-1:-1;3469:54:3;;;3292:892;760:3814;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3814:3;;;;;;;;;;3668:9;-1:-1:-1;3679:24:3;;;;;;4165:12;;;;3292:892;:::o;3705:20::-;760:3814;3765:11;;;;:::i;:::-;760:3814;;;-1:-1:-1;760:3814:3;;;;3814:48;;;;;;760:3814;3469:54;3814:48;;760:3814;3814:48;760:3814;;;;;;;:::i;:::-;3814:48;760:3814;3814:48;;;;;;:::i;:::-;3914:34;;;;;;;;:::i;:::-;3966:8;;3962:22;;760:3814;;4039:29;;760:3814;4039:29;;760:3814;;;;;;;;;4039:29;;760:3814;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:54;760:3814;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3814:3;;884:1:98;760:3814:3;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4093:51;;760:3814;4082:62;;;;:::i;:::-;;;;;;:::i;:::-;;3668:9;760:3814;3668:9;;3962:22;3976:8;884:1:98;3976:8:3;;;;760:3814;;;;;;;;:::i;:::-;-1:-1:-1;760:3814:3;;;;;;;:::i;:::-;-1:-1:-1;760:3814:3;;-1:-1:-1;760:3814:3;;;;-1:-1:-1;760:3814:3;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;-1:-1:-1;3469:54:3;;;;;;:::i;:::-;;;760:3814;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;;760:3814;;;;;;;:::i;:::-;;;;;;;;;4964:220:54;760:3814:3;;5147:30:54;4964:220;760:3814:3;;;1782:71:54;760:3814:3;;;1782:71:54;760:3814:3;;;;;;5147:30:54;4964:220::o;7084:141:55:-;760:3814:3;8837:64:55;760:3814:3;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;760:3814:3;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3814:3;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3814:3;4917:24:75;;4862:1;4917:24;760:3814:3;4917:24:75;760:3814:3;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"240":[{"start":1257,"length":32},{"start":4113,"length":32}],"244":[{"start":201,"length":32},{"start":1773,"length":32}],"43508":[{"start":1951,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","RIGHTS_POLICY_AUTHORIZER()":"968e48cf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getAssetSpecificPolicies(uint256)":"76e5cef1","getAvailablePoliciesTerms(address,bytes)":"9f30b60f","getHolderWidePolicies(address)":"d45944ca","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getAssetSpecificPolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getHolderWidePolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAssetSpecificPolicies(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getHolderWidePolicies(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAssetSpecificPolicies(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getHolderWidePolicies(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xde2c2de6ed5ea72e27cf6945d268b69425feeda7e7c6283ccb0d250dfc760b13\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa7a7bc548008ecfbdaaddb8be4741e299639b52c0312f842bd03bf314aa7f62\",\"dweb:/ipfs/QmYqfd5rxvieg9y7xhF2PGhxwRVdDZGaRT1L6sdmKRAF7y\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyAuthorizer","type":"address"},{"internalType":"address","name":"assetOwnership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_AUTHORIZER","outputs":[{"internalType":"contract IRightsPolicyAuthorizer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAssetSpecificPolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getAvailablePoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getHolderWidePolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAssetSpecificPolicies(uint256)":{"params":{"assetId":"The unique identifier of the asset whose policies are being queried."}},"getAvailablePoliciesTerms(address,bytes)":{"params":{"criteria":"Encoded data for policy evaluation.","holder":"Address of the rights holder."}},"getHolderWidePolicies(address)":{"params":{"holder":"The address of the rights holder whose policies are being queried."}},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getAssetSpecificPolicies(uint256)":{"notice":"Retrieves all policies that govern operations on a specific asset."},"getAvailablePoliciesTerms(address,bytes)":{"notice":"Retrieves all available policies for a holder matching specific criteria."},"getHolderWidePolicies(address)":{"notice":"Retrieves all policies that apply to the entirety of a holder's content."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/PoliciesAgg.sol":"PoliciesAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/PoliciesAgg.sol":{"keccak256":"0xde2c2de6ed5ea72e27cf6945d268b69425feeda7e7c6283ccb0d250dfc760b13","urls":["bzz-raw://fa7a7bc548008ecfbdaaddb8be4741e299639b52c0312f842bd03bf314aa7f62","dweb:/ipfs/QmYqfd5rxvieg9y7xhF2PGhxwRVdDZGaRT1L6sdmKRAF7y"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/PoliciesAgg.sol","id":471,"exportedSymbols":{"AccessControlledUpgradeable":[51328],"IAssetOwnership":[50113],"IPolicy":[50275],"IRightsPolicyAuthorizer":[50358],"Initializable":[43488],"LoopOps":[50712],"PoliciesAgg":[470],"T":[51200],"UUPSUpgradeable":[43670]},"nodeType":"SourceUnit","src":"32:4543:3","nodes":[{"id":204,"nodeType":"PragmaDirective","src":"32:23:3","nodes":[],"literals":["solidity","0.8",".26"]},{"id":206,"nodeType":"ImportDirective","src":"57:98:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":43489,"symbolAliases":[{"foreign":{"id":205,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43488,"src":"66:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":208,"nodeType":"ImportDirective","src":"156:102:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":43671,"symbolAliases":[{"foreign":{"id":207,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43670,"src":"165:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":210,"nodeType":"ImportDirective","src":"260:86:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol","file":"@synaps3/core/interfaces/assets/IAssetOwnership.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50114,"symbolAliases":[{"foreign":{"id":209,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50113,"src":"269:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":212,"nodeType":"ImportDirective","src":"347:115:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":51329,"symbolAliases":[{"foreign":{"id":211,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51328,"src":"356:27:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":214,"nodeType":"ImportDirective","src":"463:102:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50359,"symbolAliases":[{"foreign":{"id":213,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50358,"src":"472:23:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":216,"nodeType":"ImportDirective","src":"567:72:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50276,"symbolAliases":[{"foreign":{"id":215,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"576:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":218,"nodeType":"ImportDirective","src":"640:62:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":50713,"symbolAliases":[{"foreign":{"id":217,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50712,"src":"649:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220,"nodeType":"ImportDirective","src":"703:55:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":471,"sourceUnit":51201,"symbolAliases":[{"foreign":{"id":219,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"712:1:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":470,"nodeType":"ContractDefinition","src":"760:3814:3","nodes":[{"id":229,"nodeType":"UsingForDirective","src":"850:26:3","nodes":[],"global":false,"libraryName":{"id":227,"name":"LoopOps","nameLocations":["856:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":50712,"src":"856:7:3"},"typeName":{"id":228,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":236,"nodeType":"StructDefinition","src":"958:73:3","nodes":[],"canonicalName":"PoliciesAgg.PolicyTerms","documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"882:71:3","text":"@notice structure to hold the relationship between policy and terms"},"members":[{"constant":false,"id":232,"mutability":"mutable","name":"policy","nameLocation":"995:6:3","nodeType":"VariableDeclaration","scope":236,"src":"987:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":231,"name":"address","nodeType":"ElementaryTypeName","src":"987:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"terms","nameLocation":"1019:5:3","nodeType":"VariableDeclaration","scope":236,"src":"1011:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"T.Terms","nameLocations":["1011:1:3","1013:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51189,"src":"1011:7:3"},"referencedDeclaration":51189,"src":"1011:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"name":"PolicyTerms","nameLocation":"965:11:3","scope":470,"visibility":"public"},{"id":240,"nodeType":"VariableDeclaration","src":"1103:65:3","nodes":[],"constant":false,"documentation":{"id":237,"nodeType":"StructuredDocumentation","src":"1037:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"968e48cf","mutability":"immutable","name":"RIGHTS_POLICY_AUTHORIZER","nameLocation":"1144:24:3","scope":470,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"},"typeName":{"id":239,"nodeType":"UserDefinedTypeName","pathNode":{"id":238,"name":"IRightsPolicyAuthorizer","nameLocations":["1103:23:3"],"nodeType":"IdentifierPath","referencedDeclaration":50358,"src":"1103:23:3"},"referencedDeclaration":50358,"src":"1103:23:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"visibility":"public"},{"id":244,"nodeType":"VariableDeclaration","src":"1240:48:3","nodes":[],"constant":false,"documentation":{"id":241,"nodeType":"StructuredDocumentation","src":"1174:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f520d4eb","mutability":"immutable","name":"ASSET_OWNERSHIP","nameLocation":"1273:15:3","scope":470,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"},"typeName":{"id":243,"nodeType":"UserDefinedTypeName","pathNode":{"id":242,"name":"IAssetOwnership","nameLocations":["1240:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":50113,"src":"1240:15:3"},"referencedDeclaration":50113,"src":"1240:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"visibility":"public"},{"id":268,"nodeType":"FunctionDefinition","src":"1348:440:3","nodes":[],"body":{"id":267,"nodeType":"Block","src":"1416:372:3","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43456,"src":"1616:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"ExpressionStatement","src":"1616:22:3"},{"expression":{"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":255,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"1648:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":257,"name":"rightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"1699:22:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":256,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50358,"src":"1675:23:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyAuthorizer_$50358_$","typeString":"type(contract IRightsPolicyAuthorizer)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"src":"1648:74:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"id":260,"nodeType":"ExpressionStatement","src":"1648:74:3"},{"expression":{"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":261,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"1732:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":263,"name":"assetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"1766:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":262,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50113,"src":"1750:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetOwnership_$50113_$","typeString":"type(contract IAssetOwnership)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"src":"1732:49:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"id":266,"nodeType":"ExpressionStatement","src":"1732:49:3"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"1295:48:3","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"rightsPolicyAuthorizer","nameLocation":"1368:22:3","nodeType":"VariableDeclaration","scope":268,"src":"1360:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":246,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":249,"mutability":"mutable","name":"assetOwnership","nameLocation":"1400:14:3","nodeType":"VariableDeclaration","scope":268,"src":"1392:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1359:56:3"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[],"src":"1416:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":284,"nodeType":"FunctionDefinition","src":"1982:151:3","nodes":[],"body":{"id":283,"nodeType":"Block","src":"2044:89:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43542,"src":"2054:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":278,"nodeType":"ExpressionStatement","src":"2054:24:3"},{"expression":{"arguments":[{"id":280,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"2112:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":279,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51263,"src":"2088:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":282,"nodeType":"ExpressionStatement","src":"2088:38:3"}]},"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"1794:183:3","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":274,"kind":"modifierInvocation","modifierName":{"id":273,"name":"initializer","nameLocations":["2032:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":43342,"src":"2032:11:3"},"nodeType":"ModifierInvocation","src":"2032:11:3"}],"name":"initialize","nameLocation":"1991:10:3","parameters":{"id":272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"accessManager","nameLocation":"2010:13:3","nodeType":"VariableDeclaration","scope":284,"src":"2002:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":270,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2001:23:3"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[],"src":"2044:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":314,"nodeType":"FunctionDefinition","src":"2317:261:3","nodes":[],"body":{"id":313,"nodeType":"Block","src":"2409:169:3","nodes":[],"statements":[{"assignments":[295],"declarations":[{"constant":false,"id":295,"mutability":"mutable","name":"criteria","nameLocation":"2432:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2419:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2419:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"initialValue":{"arguments":[{"id":298,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2454:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2443:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2447:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2443:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2419:42:3"},{"assignments":[305],"declarations":[{"constant":false,"id":305,"mutability":"mutable","name":"policies","nameLocation":"2492:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2471:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":303,"nodeType":"UserDefinedTypeName","pathNode":{"id":302,"name":"PolicyTerms","nameLocations":["2471:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2471:11:3"},"referencedDeclaration":236,"src":"2471:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":304,"nodeType":"ArrayTypeName","src":"2471:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":310,"initialValue":{"arguments":[{"id":307,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2529:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":308,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2537:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":306,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"2503:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2471:75:3"},{"expression":{"id":311,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"2563:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":293,"id":312,"nodeType":"Return","src":"2556:15:3"}]},"documentation":{"id":285,"nodeType":"StructuredDocumentation","src":"2139:173:3","text":"@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried."},"functionSelector":"d45944ca","implemented":true,"kind":"function","modifiers":[],"name":"getHolderWidePolicies","nameLocation":"2326:21:3","parameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":287,"mutability":"mutable","name":"holder","nameLocation":"2356:6:3","nodeType":"VariableDeclaration","scope":314,"src":"2348:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:16:3"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"2387:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":290,"nodeType":"UserDefinedTypeName","pathNode":{"id":289,"name":"PolicyTerms","nameLocations":["2387:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2387:11:3"},"referencedDeclaration":236,"src":"2387:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":291,"nodeType":"ArrayTypeName","src":"2387:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2386:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":351,"nodeType":"FunctionDefinition","src":"2759:325:3","nodes":[],"body":{"id":350,"nodeType":"Block","src":"2855:229:3","nodes":[],"statements":[{"assignments":[325],"declarations":[{"constant":false,"id":325,"mutability":"mutable","name":"criteria","nameLocation":"2878:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2865:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2865:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":330,"initialValue":{"arguments":[{"id":328,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2900:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2889:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2893:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2889:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2865:43:3"},{"assignments":[332],"declarations":[{"constant":false,"id":332,"mutability":"mutable","name":"holder","nameLocation":"2926:6:3","nodeType":"VariableDeclaration","scope":350,"src":"2918:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"2918:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":337,"initialValue":{"arguments":[{"id":335,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2959:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":333,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2935:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50113","typeString":"contract IAssetOwnership"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2951:7:3","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":45324,"src":"2935:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2918:49:3"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"policies","nameLocation":"2998:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2977:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":340,"nodeType":"UserDefinedTypeName","pathNode":{"id":339,"name":"PolicyTerms","nameLocations":["2977:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2977:11:3"},"referencedDeclaration":236,"src":"2977:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":341,"nodeType":"ArrayTypeName","src":"2977:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":347,"initialValue":{"arguments":[{"id":344,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"3035:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":345,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"3043:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":343,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":459,"src":"3009:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2977:75:3"},{"expression":{"id":348,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"3069:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":323,"id":349,"nodeType":"Return","src":"3062:15:3"}]},"documentation":{"id":315,"nodeType":"StructuredDocumentation","src":"2584:170:3","text":"@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried."},"functionSelector":"76e5cef1","implemented":true,"kind":"function","modifiers":[],"name":"getAssetSpecificPolicies","nameLocation":"2768:24:3","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":317,"mutability":"mutable","name":"assetId","nameLocation":"2801:7:3","nodeType":"VariableDeclaration","scope":351,"src":"2793:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2792:17:3"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"2833:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":320,"nodeType":"UserDefinedTypeName","pathNode":{"id":319,"name":"PolicyTerms","nameLocations":["2833:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2833:11:3"},"referencedDeclaration":236,"src":"2833:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":321,"nodeType":"ArrayTypeName","src":"2833:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2832:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":459,"nodeType":"FunctionDefinition","src":"3292:892:3","nodes":[],"body":{"id":458,"nodeType":"Block","src":"3431:753:3","nodes":[],"statements":[{"assignments":[367],"declarations":[{"constant":false,"id":367,"mutability":"mutable","name":"policies","nameLocation":"3458:8:3","nodeType":"VariableDeclaration","scope":458,"src":"3441:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":366,"nodeType":"ArrayTypeName","src":"3441:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":372,"initialValue":{"arguments":[{"id":370,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"3516:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":368,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"3469:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50358","typeString":"contract IRightsPolicyAuthorizer"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3494:21:3","memberName":"getAuthorizedPolicies","nodeType":"MemberAccess","referencedDeclaration":50333,"src":"3469:46:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address) view external returns (address[] memory)"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3469:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3441:82:3"},{"assignments":[377],"declarations":[{"constant":false,"id":377,"mutability":"mutable","name":"terms","nameLocation":"3554:5:3","nodeType":"VariableDeclaration","scope":458,"src":"3533:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":375,"nodeType":"UserDefinedTypeName","pathNode":{"id":374,"name":"PolicyTerms","nameLocations":["3533:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3533:11:3"},"referencedDeclaration":236,"src":"3533:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":376,"nodeType":"ArrayTypeName","src":"3533:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":385,"initialValue":{"arguments":[{"expression":{"id":382,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3580:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3589:6:3","memberName":"length","nodeType":"MemberAccess","src":"3580:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3562:17:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)"},"typeName":{"baseType":{"id":379,"nodeType":"UserDefinedTypeName","pathNode":{"id":378,"name":"PolicyTerms","nameLocations":["3566:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3566:11:3"},"referencedDeclaration":236,"src":"3566:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":380,"nodeType":"ArrayTypeName","src":"3566:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3533:63:3"},{"assignments":[387],"declarations":[{"constant":false,"id":387,"mutability":"mutable","name":"availablePoliciesLen","nameLocation":"3614:20:3","nodeType":"VariableDeclaration","scope":458,"src":"3606:28:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3606:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":390,"initialValue":{"expression":{"id":388,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3637:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3646:6:3","memberName":"length","nodeType":"MemberAccess","src":"3637:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3606:46:3"},{"body":{"id":454,"nodeType":"Block","src":"3727:428:3","statements":[{"assignments":[404],"declarations":[{"constant":false,"id":404,"mutability":"mutable","name":"policyAddress","nameLocation":"3749:13:3","nodeType":"VariableDeclaration","scope":454,"src":"3741:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":403,"name":"address","nodeType":"ElementaryTypeName","src":"3741:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":408,"initialValue":{"baseExpression":{"id":405,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3765:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":407,"indexExpression":{"id":406,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3774:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3765:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3741:35:3"},{"assignments":[410],"declarations":[{"constant":false,"id":410,"mutability":"mutable","name":"callData","nameLocation":"3803:8:3","nodeType":"VariableDeclaration","scope":454,"src":"3790:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":409,"name":"bytes","nodeType":"ElementaryTypeName","src":"3790:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":418,"initialValue":{"arguments":[{"expression":{"id":413,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50275,"src":"3829:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$50275_$","typeString":"type(contract IPolicy)"}},"id":414,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3837:12:3","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":50258,"src":"3829:20:3","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51189_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"}},{"components":[{"id":415,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"3852:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":416,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3851:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51189_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":411,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3814:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":412,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3818:10:3","memberName":"encodeCall","nodeType":"MemberAccess","src":"3814:14:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":417,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3814:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3790:72:3"},{"assignments":[420,422],"declarations":[{"constant":false,"id":420,"mutability":"mutable","name":"success","nameLocation":"3882:7:3","nodeType":"VariableDeclaration","scope":454,"src":"3877:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":419,"name":"bool","nodeType":"ElementaryTypeName","src":"3877:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":422,"mutability":"mutable","name":"result","nameLocation":"3904:6:3","nodeType":"VariableDeclaration","scope":454,"src":"3891:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":421,"name":"bytes","nodeType":"ElementaryTypeName","src":"3891:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":427,"initialValue":{"arguments":[{"id":425,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":410,"src":"3939:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":423,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"3914:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3928:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"3914:24:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3914:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3876:72:3"},{"condition":{"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3966:8:3","subExpression":{"id":428,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":420,"src":"3967:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":431,"nodeType":"IfStatement","src":"3962:22:3","trueBody":{"id":430,"nodeType":"Continue","src":"3976:8:3"}},{"assignments":[436],"declarations":[{"constant":false,"id":436,"mutability":"mutable","name":"term","nameLocation":"4032:4:3","nodeType":"VariableDeclaration","scope":454,"src":"4017:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":435,"nodeType":"UserDefinedTypeName","pathNode":{"id":434,"name":"T.Terms","nameLocations":["4017:1:3","4019:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51189,"src":"4017:7:3"},"referencedDeclaration":51189,"src":"4017:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":444,"initialValue":{"arguments":[{"id":439,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":422,"src":"4050:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":440,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51200,"src":"4059:1:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51200_$","typeString":"type(library T)"}},"id":441,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4061:5:3","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51189,"src":"4059:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"id":442,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4058:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Terms_$51189_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}],"expression":{"id":437,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4039:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4043:6:3","memberName":"decode","nodeType":"MemberAccess","src":"4039:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4039:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"4017:51:3"},{"expression":{"id":452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":445,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4082:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"id":447,"indexExpression":{"id":446,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4088:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4082:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":449,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":404,"src":"4115:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":450,"name":"term","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":436,"src":"4137:4:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Terms_$51189_memory_ptr","typeString":"struct T.Terms memory"}],"id":448,"name":"PolicyTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"4093:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyTerms_$236_storage_ptr_$","typeString":"type(struct PoliciesAgg.PolicyTerms storage pointer)"}},"id":451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4107:6:3","4130:5:3"],"names":["policy","terms"],"nodeType":"FunctionCall","src":"4093:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"src":"4082:62:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"id":453,"nodeType":"ExpressionStatement","src":"4082:62:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3679:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":395,"name":"availablePoliciesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"3683:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3679:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":455,"initializationExpression":{"assignments":[392],"declarations":[{"constant":false,"id":392,"mutability":"mutable","name":"i","nameLocation":"3676:1:3","nodeType":"VariableDeclaration","scope":455,"src":"3668:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":393,"nodeType":"VariableDeclarationStatement","src":"3668:9:3"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":397,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3705:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3709:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3711:12:3","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":50711,"src":"3709:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3709:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3705:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":402,"nodeType":"ExpressionStatement","src":"3705:20:3"},"nodeType":"ForStatement","src":"3663:492:3"},{"expression":{"id":456,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4172:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":362,"id":457,"nodeType":"Return","src":"4165:12:3"}]},"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"3090:197:3","text":"@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation."},"functionSelector":"9f30b60f","implemented":true,"kind":"function","modifiers":[],"name":"getAvailablePoliciesTerms","nameLocation":"3301:25:3","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"holder","nameLocation":"3344:6:3","nodeType":"VariableDeclaration","scope":459,"src":"3336:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"criteria","nameLocation":"3373:8:3","nodeType":"VariableDeclaration","scope":459,"src":"3360:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":355,"name":"bytes","nodeType":"ElementaryTypeName","src":"3360:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3326:61:3"},"returnParameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":459,"src":"3409:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":359,"nodeType":"UserDefinedTypeName","pathNode":{"id":358,"name":"PolicyTerms","nameLocations":["3409:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3409:11:3"},"referencedDeclaration":236,"src":"3409:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":360,"nodeType":"ArrayTypeName","src":"3409:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"3408:22:3"},"scope":470,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":469,"nodeType":"FunctionDefinition","src":"4488:84:3","nodes":[],"body":{"id":468,"nodeType":"Block","src":"4570:2:3","nodes":[],"statements":[]},"baseFunctions":[43624],"documentation":{"id":460,"nodeType":"StructuredDocumentation","src":"4190:293:3","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":466,"kind":"modifierInvocation","modifierName":{"id":465,"name":"onlyAdmin","nameLocations":["4560:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":51246,"src":"4560:9:3"},"nodeType":"ModifierInvocation","src":"4560:9:3"}],"name":"_authorizeUpgrade","nameLocation":"4497:17:3","overrides":{"id":464,"nodeType":"OverrideSpecifier","overrides":[],"src":"4551:8:3"},"parameters":{"id":463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":462,"mutability":"mutable","name":"newImplementation","nameLocation":"4523:17:3","nodeType":"VariableDeclaration","scope":469,"src":"4515:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":461,"name":"address","nodeType":"ElementaryTypeName","src":"4515:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4514:27:3"},"returnParameters":{"id":467,"nodeType":"ParameterList","parameters":[],"src":"4570:0:3"},"scope":470,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":221,"name":"Initializable","nameLocations":["784:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":43488,"src":"784:13:3"},"id":222,"nodeType":"InheritanceSpecifier","src":"784:13:3"},{"baseName":{"id":223,"name":"UUPSUpgradeable","nameLocations":["799:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":43670,"src":"799:15:3"},"id":224,"nodeType":"InheritanceSpecifier","src":"799:15:3"},{"baseName":{"id":225,"name":"AccessControlledUpgradeable","nameLocations":["816:27:3"],"nodeType":"IdentifierPath","referencedDeclaration":51328,"src":"816:27:3"},"id":226,"nodeType":"InheritanceSpecifier","src":"816:27:3"}],"canonicalName":"PoliciesAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[470,51328,43234,43838,43716,43670,44407,43488],"name":"PoliciesAgg","nameLocation":"769:11:3","scope":471,"usedErrors":[43251,43254,43515,43520,43809,43815,43819,44465,44478,45429,45691,51228],"usedEvents":[43259,43805,44380]}],"license":"MIT"},"id":3} +{"abi":[{"type":"constructor","inputs":[{"name":"rightsPolicyAuthorizer","type":"address","internalType":"address"},{"name":"assetOwnership","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_AUTHORIZER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyAuthorizer"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getAssetSpecificPolicies","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getAvailablePoliciesTerms","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"getHolderWidePolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct PoliciesAgg.PolicyTerms[]","components":[{"name":"policy","type":"address","internalType":"address"},{"name":"terms","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}]}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60e03461016657601f61169938819003918201601f19168301916001600160401b0383118484101761016a57808492604094855283398101031261016657610052602061004b8361017e565b920161017e565b90306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610157576002600160401b03196001600160401b038216016100ee575b506001600160a01b0390811660a0521660c0526040516115069081610193823960805181818161079f0152610837015260a0518181816104e90152611011015260c05181818160c901526106ed0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009d565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036101665756fe60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033","sourceMap":"760:3818:3:-:0;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;:::i;:::-;1171:4:56;;1163:13;;8837:64:55;760:3818:3;;;;;;7896:76:55;;-1:-1:-1;;;;;;;;;;;760:3818:3;;7985:34:55;7981:146;;-1:-1:-1;;;;;;;760:3818:3;;;;1648:74;760:3818;1732:49;;760:3818;;;;;;;;1163:13:56;760:3818:3;;;;;;;;;;1648:74;760:3818;;;;;;;;;;1732:49;760:3818;;;;;;;;;;;7981:146:55;-1:-1:-1;;;;;;760:3818:3;-1:-1:-1;;;;;760:3818:3;;;8837:64:55;760:3818:3;;;;;;8087:29:55;;760:3818:3;;8087:29:55;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:55;;-1:-1:-1;7938:23:55;760:3818:3;-1:-1:-1;760:3818:3;;;;;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;;;;;760:3818:3;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80634f1ef2861461081757806352d1902d1461077857806376e5cef1146106775780637a9e5e4b146105a05780638fb360371461050d578063968e48cf146104bd5780639f30b60f146104a3578063ad3cb1cc14610444578063bf7e214f146103f2578063c4d66de814610154578063d45944ca146100f15763f520d4eb1461009d575f80fd5b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b346100ed5760206003193601126100ed57610150610144610110610c1d565b6040519073ffffffffffffffffffffffffffffffffffffffff811660208301526020825261013f604083610ca5565b610fb2565b60405191829182610ded565b0390f35b346100ed5760206003193601126100ed5761016d610c1d565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103ea575b60011490816103e0575b1590816103d7575b506103af57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005561035a575b506102306113e0565b6102386113e0565b6102406113e0565b6102486113e0565b61025181611335565b6102596113e0565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102c757005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610227565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b905015846101be565b303b1591506101b6565b8491506101ac565b346100ed575f6003193601126100ed57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b346100ed575f6003193601126100ed57610150604051610465604082610ca5565b600581527f352e302e300000000000000000000000000000000000000000000000000000006020820152604051918291602083526020830190610daa565b346100ed576101506101446104b736610d20565b90610fb2565b346100ed575f6003193601126100ed57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100ed575f6003193601126100ed577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105985760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f61056e565b346100ed5760206003193601126100ed576105b9610c1d565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416330361064b57803b156106095761060790611335565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b346100ed5760206003193601126100ed5760043560405190806020830152602082526106a4604083610ca5565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561076d575f9161072a575b6101506101448484610fb2565b90506020813d602011610765575b8161074560209383610ca5565b810103126100ed576101509161075d61014492610f09565b91509161071d565b3d9150610738565b6040513d5f823e3d90fd5b346100ed575f6003193601126100ed5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036107ef5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b61082036610d20565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610bdb575b506107ef576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa90811561076d575f91610b8e575b5015610b0a5773ffffffffffffffffffffffffffffffffffffffff8216916040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481875afa5f9181610ad6575b5061096e57837f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc859203610aab5750813b15610a8057807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115610a4f575f8083602061060795519101845af4610a49610f83565b91611437565b505034610a5857005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610b02575b81610af260209383610ca5565b810103126100ed5751908561093d565b3d9150610ae5565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610bd3575b81610ba960409383610ca5565b810103126100ed5780519081151582036100ed576020015163ffffffff8116036100ed57836108e8565b3d9150610b9c565b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141583610862565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b6040810190811067ffffffffffffffff821117610c5c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6080810190811067ffffffffffffffff821117610c5c57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610c5c57604052565b67ffffffffffffffff8111610c5c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b9060406003198301126100ed5760043573ffffffffffffffffffffffffffffffffffffffff811681036100ed579160243567ffffffffffffffff81116100ed57816023820112156100ed57806004013590610d7a82610ce6565b92610d886040519485610ca5565b828452602483830101116100ed57815f92602460209301838601378301015290565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b602081016020825282518091526040820190602060408260051b8501019401925f905b828210610e1f57505050505090565b90919293947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08282030185526020865173ffffffffffffffffffffffffffffffffffffffff8151168352015190604060208201528151604082015273ffffffffffffffffffffffffffffffffffffffff60208301511660608201526040820151916004831015610edc57610ecf8260c0606060209594600197608088970152015191608060a08201520190610daa565b9701950193920190610e10565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b519073ffffffffffffffffffffffffffffffffffffffff821682036100ed57565b67ffffffffffffffff8111610c5c5760051b60200190565b8051821015610f565760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b3d15610fad573d90610f9482610ce6565b91610fa26040519384610ca5565b82523d5f602084013e565b606090565b9073ffffffffffffffffffffffffffffffffffffffff604051927f591b43c50000000000000000000000000000000000000000000000000000000084521660048301525f8260248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561076d575f9261129a575b508151917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe061108861107285610f2a565b946110806040519687610ca5565b808652610f2a565b015f5b8181106112585750508051905f5b8281106110a7575050505090565b73ffffffffffffffffffffffffffffffffffffffff6110c68284610f42565b5116905f8060405160208101907fa39371110000000000000000000000000000000000000000000000000000000082526020602482015261113a8161110e604482018c610daa565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ca5565b5190855afa91611148610f83565b921561124e578251830160208101936020818303126100ed57602081015167ffffffffffffffff81116100ed570190608090829003126100ed576040519061118f82610c89565b602081015182526111a260408201610f09565b6020830152606081015160048110156100ed576040830152608081015167ffffffffffffffff81116100ed5760209101019380601f860112156100ed5784516111ea81610ce6565b916111f86040519384610ca5565b818352602082880101116100ed576020815f9282600199018386015e8301015260608201526040519161122a83610c40565b8252602082015261123b8288610f42565b526112468187610f42565b505b01611099565b5060019150611248565b60209060405161126781610c40565b5f815260405161127681610c89565b5f81525f848201525f6040820152606080820152838201528282880101520161108b565b9091503d805f833e6112ac8183610ca5565b8101906020818303126100ed5780519067ffffffffffffffff82116100ed57019080601f830112156100ed5781516112e381610f2a565b926112f16040519485610ca5565b81845260208085019260051b8201019283116100ed57602001905b82821061131d57505050905f611041565b6020809161132a84610f09565b81520191019061130c565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561140f57565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611474575080511561144c57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114c7575b611485575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561147d56fea26469706673582212206e198600d9375685c03c162ac2037f24828cdb44e5d9d100b2db48c6015b780664736f6c634300081a0033","sourceMap":"760:3818:3:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1240:48;760:3818;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;2503:43;760:3818;;:::i;:::-;;;;;;;;2443:18;;760:3818;;2443:18;;;760:3818;2443:18;;:::i;:::-;2503:43;:::i;:::-;760:3818;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;8837:64:55;760:3818:3;;;;;;4301:16:55;760:3818:3;;;;4726:16:55;;:34;;;;760:3818:3;4805:1:55;4790:16;:50;;;;760:3818:3;4855:13:55;:30;;;;760:3818:3;4851:91:55;;;760:3818:3;;4805:1:55;760:3818:3;;;;;8837:64:55;760:3818:3;4979:67:55;;760:3818:3;6893:76:55;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:54;;;:::i;:::-;6893:76:55;;:::i;:::-;760:3818:3;;3295:62:102;760:3818:3;;;3295:62:102;760:3818:3;5066:101:55;;760:3818:3;5066:101:55;760:3818:3;8837:64:55;760:3818:3;;8837:64:55;760:3818:3;5142:14:55;760:3818:3;;;4805:1:55;760:3818:3;;5142:14:55;760:3818:3;4979:67:55;760:3818:3;;;;8837:64:55;760:3818:3;4979:67:55;;;4851:91;4908:23;760:3818:3;4908:23:55;760:3818:3;;4908:23:55;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:55;;4726:34;;;-1:-1:-1;4726:34:55;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;1782:71:54;760:3818:3;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;1103:65;760:3818;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;1782:71:54;760:3818:3;;;;;4698:71:54;;;760:3818:3;;4698:71:54;760:3818:3;;;;;;;;4698:71:54;760:3818:3;;4698:71:54;;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;:::i;:::-;;1782:71:54;760:3818:3;;966:10:57;4258:21:54;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;760:3818:3;4355:110:54;760:3818:3;4411:43:54;;760:3818:3;4411:43:54;760:3818:3;;;;;4411:43:54;4254:92;4302:33;760:3818:3;4302:33:54;966:10:57;760:3818:3;;;;4302:33:54;760:3818:3;;;;;-1:-1:-1;;760:3818:3;;;;;;;;;2889:19;;760:3818;2889:19;;760:3818;;2889:19;;;760:3818;2889:19;;:::i;:::-;760:3818;;2935:32;760:3818;2935:32;;760:3818;2935:32;;760:3818;;2935:15;:32;:15;760:3818;2935:15;760:3818;2935:32;;;;;;;760:3818;2935:32;;;760:3818;;3009:43;;;;:::i;2935:32::-;;;760:3818;2935:32;;760:3818;2935:32;;;;;;760:3818;2935:32;;;:::i;:::-;;;760:3818;;;;;;;3009:43;760:3818;;:::i;:::-;2935:32;;;;;;;;-1:-1:-1;2935:32:3;;;760:3818;;;;;;;;;;;;;;-1:-1:-1;;760:3818:3;;;;;;5115:6:56;760:3818:3;5106:4:56;5098:23;5094:145;;760:3818:3;;;811:66:68;760:3818:3;;;5094:145:56;5199:29;760:3818:3;5199:29:56;760:3818:3;;5199:29:56;760:3818:3;;;;:::i;:::-;;4692:6:56;760:3818:3;4683:4:56;;4675:23;:120;;;;;760:3818:3;4658:251:56;;;3058:30:102;760:3818:3;;3295:62:102;760:3818:3;;;;3058:30:102;;;;760:3818:3;3058:30:102;;760:3818:3;;3058:30:102;;760:3818:3;1893:10:102;760:3818:3;;;;3058:30:102;;;;;;;760:3818:3;3058:30:102;;;760:3818:3;1869:35:102;;1865:140;;760:3818:3;;;;;;;6156:52:56;;760:3818:3;6156:52:56;760:3818:3;6156:52:56;;;;760:3818:3;;6156:52:56;;;760:3818:3;-1:-1:-1;6152:437:56;;6518:60;;760:3818:3;6518:60:56;760:3818:3;;;;6518:60:56;6152:437;6250:40;811:66:68;6250:40:56;;;6246:120;;1748:29:68;;;:34;1744:119;;760:3818:3;;811:66:68;760:3818:3;;;811:66:68;760:3818:3;2407:36:68;760:3818:3;2407:36:68;;760:3818:3;;2458:15:68;:11;;760:3818:3;4049:25:75;;760:3818:3;4091:55:75;4049:25;;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:68:-;6163:9;;;6159:70;;760:3818:3;6159:70:68;6199:19;760:3818:3;6199:19:68;760:3818:3;;6199:19:68;1744:119;1805:47;760:3818:3;1805:47:68;760:3818:3;;;;1805:47:68;6246:120:56;6317:34;760:3818:3;6317:34:56;760:3818:3;;;;6317:34:56;6156:52;;;;760:3818:3;6156:52:56;;760:3818:3;6156:52:56;;;;;;760:3818:3;6156:52:56;;;:::i;:::-;;;760:3818:3;;;;;6156:52:56;;;;;;;-1:-1:-1;6156:52:56;;1865:140:102;1927:67;760:3818:3;;1927:67:102;;;760:3818:3;;1927:67:102;;520:1:100;;760:3818:3;520:1:100;;760:3818:3;520:1:100;3058:30:102;760:3818:3;;520:1:100;;;;;;1927:67:102;3058:30;;;760:3818:3;3058:30:102;;760:3818:3;3058:30:102;;;;;;760:3818:3;3058:30:102;;;:::i;:::-;;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;3058:30:102;;;;;;-1:-1:-1;3058:30:102;;4675:120:56;760:3818:3;;;811:66:68;760:3818:3;;4753:42:56;;4675:120;;;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;760:3818:3;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;760:3818:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;760:3818:3;;;;:::o;:::-;;;:::o;3292:896::-;;760:3818;;;3469:54;760:3818;3469:54;;760:3818;3469:54;;;760:3818;-1:-1:-1;3469:24:3;:54;:24;760:3818;3469:24;760:3818;3469:54;;;;;;;-1:-1:-1;3469:54:3;;;3292:896;760:3818;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;-1:-1:-1;760:3818:3;;;;;;;;;;3668:13;-1:-1:-1;3683:24:3;;;;;;4169:12;;;;3292:896;:::o;3709:20::-;760:3818;3769:11;;;;:::i;:::-;760:3818;;;-1:-1:-1;760:3818:3;;;;3818:48;;;;;;760:3818;3469:54;3818:48;;760:3818;3818:48;760:3818;;;;;;;:::i;:::-;3818:48;760:3818;3818:48;;;;;;:::i;:::-;3918:34;;;;;;;;:::i;:::-;3970:8;;3966:22;;760:3818;;4043:29;;760:3818;4043:29;;760:3818;;;;;;;;;4043:29;;760:3818;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;3469:54;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;760:3818:3;;884:1:98;760:3818:3;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4097:51;;760:3818;4086:62;;;;:::i;:::-;;;;;;:::i;:::-;;3668:13;760:3818;3668:13;;3966:22;3980:8;884:1:98;3980:8:3;;;;760:3818;;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;;;;;;:::i;:::-;-1:-1:-1;760:3818:3;;-1:-1:-1;760:3818:3;;;;-1:-1:-1;760:3818:3;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;-1:-1:-1;3469:54:3;;;;;;:::i;:::-;;;760:3818;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;3469:54;;;;;;;760:3818;;;;;;;:::i;:::-;;;;;;;;;4964:220:54;760:3818:3;;5147:30:54;4964:220;760:3818:3;;;1782:71:54;760:3818:3;;;1782:71:54;760:3818:3;;;;;;5147:30:54;4964:220::o;7084:141:55:-;760:3818:3;8837:64:55;760:3818:3;;;;7150:18:55;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:55;;-1:-1:-1;7191:17:55;4421:582:75;;4593:8;;-1:-1:-1;760:3818:3;;5674:21:75;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;760:3818:3;;4841:22:75;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;760:3818:3;4917:24:75;;4862:1;4917:24;760:3818:3;4917:24:75;760:3818:3;;4862:1:75;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"240":[{"start":1257,"length":32},{"start":4113,"length":32}],"244":[{"start":201,"length":32},{"start":1773,"length":32}],"43541":[{"start":1951,"length":32},{"start":2103,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","RIGHTS_POLICY_AUTHORIZER()":"968e48cf","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","getAssetSpecificPolicies(uint256)":"76e5cef1","getAvailablePoliciesTerms(address,bytes)":"9f30b60f","getHolderWidePolicies(address)":"d45944ca","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","proxiableUUID()":"52d1902d","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightsPolicyAuthorizer\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"assetOwnership\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_AUTHORIZER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyAuthorizer\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getAssetSpecificPolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"getAvailablePoliciesTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getHolderWidePolicies\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"terms\",\"type\":\"tuple\"}],\"internalType\":\"struct PoliciesAgg.PolicyTerms[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAssetSpecificPolicies(uint256)\":{\"params\":{\"assetId\":\"The unique identifier of the asset whose policies are being queried.\"}},\"getAvailablePoliciesTerms(address,bytes)\":{\"params\":{\"criteria\":\"Encoded data for policy evaluation.\",\"holder\":\"Address of the rights holder.\"}},\"getHolderWidePolicies(address)\":{\"params\":{\"holder\":\"The address of the rights holder whose policies are being queried.\"}},\"initialize(address)\":{\"details\":\"Sets up the contract for usage.\",\"params\":{\"accessManager\":\"Address of the Access Manager contract used for permission handling.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"ASSET_OWNERSHIP\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"RIGHTS_POLICY_AUTHORIZER\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"getAssetSpecificPolicies(uint256)\":{\"notice\":\"Retrieves all policies that govern operations on a specific asset.\"},\"getAvailablePoliciesTerms(address,bytes)\":{\"notice\":\"Retrieves all available policies for a holder matching specific criteria.\"},\"getHolderWidePolicies(address)\":{\"notice\":\"Retrieves all policies that apply to the entirety of a holder's content.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/aggregation/PoliciesAgg.sol\":\"PoliciesAgg\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/aggregation/PoliciesAgg.sol\":{\"keccak256\":\"0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad\",\"dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightsPolicyAuthorizer","type":"address"},{"internalType":"address","name":"assetOwnership","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_AUTHORIZER","outputs":[{"internalType":"contract IRightsPolicyAuthorizer","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getAssetSpecificPolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"getAvailablePoliciesTerms","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getHolderWidePolicies","outputs":[{"internalType":"struct PoliciesAgg.PolicyTerms[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"struct T.Terms","name":"terms","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAssetSpecificPolicies(uint256)":{"params":{"assetId":"The unique identifier of the asset whose policies are being queried."}},"getAvailablePoliciesTerms(address,bytes)":{"params":{"criteria":"Encoded data for policy evaluation.","holder":"Address of the rights holder."}},"getHolderWidePolicies(address)":{"params":{"holder":"The address of the rights holder whose policies are being queried."}},"initialize(address)":{"details":"Sets up the contract for usage.","params":{"accessManager":"Address of the Access Manager contract used for permission handling."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"getAssetSpecificPolicies(uint256)":{"notice":"Retrieves all policies that govern operations on a specific asset."},"getAvailablePoliciesTerms(address,bytes)":{"notice":"Retrieves all available policies for a holder matching specific criteria."},"getHolderWidePolicies(address)":{"notice":"Retrieves all policies that apply to the entirety of a holder's content."},"initialize(address)":{"notice":"Initializes the proxy state."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/aggregation/PoliciesAgg.sol":"PoliciesAgg"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/aggregation/PoliciesAgg.sol":{"keccak256":"0xfdd745d8471c568185c27d032f98428d33564214b8105b62d6420012ceb420dd","urls":["bzz-raw://22eae57023f6b71576d7d1838814b34fbf55bcfcb67f25b86d278a6d176a81ad","dweb:/ipfs/QmTBv6iGzAqfMzyV7jFCkN5935pRxwdoJUnetESBkwLT4n"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"contracts/aggregation/PoliciesAgg.sol","id":472,"exportedSymbols":{"AccessControlledUpgradeable":[51361],"IAssetOwnership":[50146],"IPolicy":[50308],"IRightsPolicyAuthorizer":[50391],"Initializable":[43521],"LoopOps":[50745],"PoliciesAgg":[471],"T":[51233],"UUPSUpgradeable":[43703]},"nodeType":"SourceUnit","src":"32:4547:3","nodes":[{"id":204,"nodeType":"PragmaDirective","src":"32:23:3","nodes":[],"literals":["solidity","0.8",".26"]},{"id":206,"nodeType":"ImportDirective","src":"57:98:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":43522,"symbolAliases":[{"foreign":{"id":205,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43521,"src":"66:13:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":208,"nodeType":"ImportDirective","src":"156:102:3","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":43704,"symbolAliases":[{"foreign":{"id":207,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43703,"src":"165:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":210,"nodeType":"ImportDirective","src":"260:86:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol","file":"@synaps3/core/interfaces/assets/IAssetOwnership.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50147,"symbolAliases":[{"foreign":{"id":209,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50146,"src":"269:15:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":212,"nodeType":"ImportDirective","src":"347:115:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":51362,"symbolAliases":[{"foreign":{"id":211,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51361,"src":"356:27:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":214,"nodeType":"ImportDirective","src":"463:102:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50392,"symbolAliases":[{"foreign":{"id":213,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50391,"src":"472:23:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":216,"nodeType":"ImportDirective","src":"567:72:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50309,"symbolAliases":[{"foreign":{"id":215,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"576:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":218,"nodeType":"ImportDirective","src":"640:62:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":50746,"symbolAliases":[{"foreign":{"id":217,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50745,"src":"649:7:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":220,"nodeType":"ImportDirective","src":"703:55:3","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":472,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":219,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"712:1:3","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":471,"nodeType":"ContractDefinition","src":"760:3818:3","nodes":[{"id":229,"nodeType":"UsingForDirective","src":"850:26:3","nodes":[],"global":false,"libraryName":{"id":227,"name":"LoopOps","nameLocations":["856:7:3"],"nodeType":"IdentifierPath","referencedDeclaration":50745,"src":"856:7:3"},"typeName":{"id":228,"name":"uint256","nodeType":"ElementaryTypeName","src":"868:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":236,"nodeType":"StructDefinition","src":"958:73:3","nodes":[],"canonicalName":"PoliciesAgg.PolicyTerms","documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"882:71:3","text":"@notice structure to hold the relationship between policy and terms"},"members":[{"constant":false,"id":232,"mutability":"mutable","name":"policy","nameLocation":"995:6:3","nodeType":"VariableDeclaration","scope":236,"src":"987:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":231,"name":"address","nodeType":"ElementaryTypeName","src":"987:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"terms","nameLocation":"1019:5:3","nodeType":"VariableDeclaration","scope":236,"src":"1011:13:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"T.Terms","nameLocations":["1011:1:3","1013:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"1011:7:3"},"referencedDeclaration":51222,"src":"1011:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"name":"PolicyTerms","nameLocation":"965:11:3","scope":471,"visibility":"public"},{"id":240,"nodeType":"VariableDeclaration","src":"1103:65:3","nodes":[],"constant":false,"documentation":{"id":237,"nodeType":"StructuredDocumentation","src":"1037:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"968e48cf","mutability":"immutable","name":"RIGHTS_POLICY_AUTHORIZER","nameLocation":"1144:24:3","scope":471,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"},"typeName":{"id":239,"nodeType":"UserDefinedTypeName","pathNode":{"id":238,"name":"IRightsPolicyAuthorizer","nameLocations":["1103:23:3"],"nodeType":"IdentifierPath","referencedDeclaration":50391,"src":"1103:23:3"},"referencedDeclaration":50391,"src":"1103:23:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"visibility":"public"},{"id":244,"nodeType":"VariableDeclaration","src":"1240:48:3","nodes":[],"constant":false,"documentation":{"id":241,"nodeType":"StructuredDocumentation","src":"1174:61:3","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"f520d4eb","mutability":"immutable","name":"ASSET_OWNERSHIP","nameLocation":"1273:15:3","scope":471,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"},"typeName":{"id":243,"nodeType":"UserDefinedTypeName","pathNode":{"id":242,"name":"IAssetOwnership","nameLocations":["1240:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":50146,"src":"1240:15:3"},"referencedDeclaration":50146,"src":"1240:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"visibility":"public"},{"id":268,"nodeType":"FunctionDefinition","src":"1348:440:3","nodes":[],"body":{"id":267,"nodeType":"Block","src":"1416:372:3","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":252,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43489,"src":"1616:20:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1616:22:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":254,"nodeType":"ExpressionStatement","src":"1616:22:3"},{"expression":{"id":259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":255,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"1648:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":257,"name":"rightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":247,"src":"1699:22:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":256,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50391,"src":"1675:23:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRightsPolicyAuthorizer_$50391_$","typeString":"type(contract IRightsPolicyAuthorizer)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1675:47:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"src":"1648:74:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"id":260,"nodeType":"ExpressionStatement","src":"1648:74:3"},{"expression":{"id":265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":261,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"1732:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":263,"name":"assetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":249,"src":"1766:14:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":262,"name":"IAssetOwnership","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50146,"src":"1750:15:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IAssetOwnership_$50146_$","typeString":"type(contract IAssetOwnership)"}},"id":264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1750:31:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"src":"1732:49:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"id":266,"nodeType":"ExpressionStatement","src":"1732:49:3"}]},"documentation":{"id":245,"nodeType":"StructuredDocumentation","src":"1295:48:3","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":247,"mutability":"mutable","name":"rightsPolicyAuthorizer","nameLocation":"1368:22:3","nodeType":"VariableDeclaration","scope":268,"src":"1360:30:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":246,"name":"address","nodeType":"ElementaryTypeName","src":"1360:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":249,"mutability":"mutable","name":"assetOwnership","nameLocation":"1400:14:3","nodeType":"VariableDeclaration","scope":268,"src":"1392:22:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":248,"name":"address","nodeType":"ElementaryTypeName","src":"1392:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1359:56:3"},"returnParameters":{"id":251,"nodeType":"ParameterList","parameters":[],"src":"1416:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":284,"nodeType":"FunctionDefinition","src":"1982:151:3","nodes":[],"body":{"id":283,"nodeType":"Block","src":"2044:89:3","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":276,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43575,"src":"2054:22:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":277,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2054:24:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":278,"nodeType":"ExpressionStatement","src":"2054:24:3"},{"expression":{"arguments":[{"id":280,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":271,"src":"2112:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":279,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51296,"src":"2088:23:3","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":281,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2088:38:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":282,"nodeType":"ExpressionStatement","src":"2088:38:3"}]},"documentation":{"id":269,"nodeType":"StructuredDocumentation","src":"1794:183:3","text":"@notice Initializes the proxy state.\n @dev Sets up the contract for usage.\n @param accessManager Address of the Access Manager contract used for permission handling."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":274,"kind":"modifierInvocation","modifierName":{"id":273,"name":"initializer","nameLocations":["2032:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":43375,"src":"2032:11:3"},"nodeType":"ModifierInvocation","src":"2032:11:3"}],"name":"initialize","nameLocation":"1991:10:3","parameters":{"id":272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":271,"mutability":"mutable","name":"accessManager","nameLocation":"2010:13:3","nodeType":"VariableDeclaration","scope":284,"src":"2002:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":270,"name":"address","nodeType":"ElementaryTypeName","src":"2002:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2001:23:3"},"returnParameters":{"id":275,"nodeType":"ParameterList","parameters":[],"src":"2044:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":314,"nodeType":"FunctionDefinition","src":"2317:261:3","nodes":[],"body":{"id":313,"nodeType":"Block","src":"2409:169:3","nodes":[],"statements":[{"assignments":[295],"declarations":[{"constant":false,"id":295,"mutability":"mutable","name":"criteria","nameLocation":"2432:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2419:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":294,"name":"bytes","nodeType":"ElementaryTypeName","src":"2419:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":300,"initialValue":{"arguments":[{"id":298,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2454:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":296,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2443:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":297,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2447:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2443:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":299,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2443:18:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2419:42:3"},{"assignments":[305],"declarations":[{"constant":false,"id":305,"mutability":"mutable","name":"policies","nameLocation":"2492:8:3","nodeType":"VariableDeclaration","scope":313,"src":"2471:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":303,"nodeType":"UserDefinedTypeName","pathNode":{"id":302,"name":"PolicyTerms","nameLocations":["2471:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2471:11:3"},"referencedDeclaration":236,"src":"2471:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":304,"nodeType":"ArrayTypeName","src":"2471:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":310,"initialValue":{"arguments":[{"id":307,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":287,"src":"2529:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":308,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":295,"src":"2537:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":306,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"2503:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2503:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2471:75:3"},{"expression":{"id":311,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":305,"src":"2563:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":293,"id":312,"nodeType":"Return","src":"2556:15:3"}]},"documentation":{"id":285,"nodeType":"StructuredDocumentation","src":"2139:173:3","text":"@notice Retrieves all policies that apply to the entirety of a holder's content.\n @param holder The address of the rights holder whose policies are being queried."},"functionSelector":"d45944ca","implemented":true,"kind":"function","modifiers":[],"name":"getHolderWidePolicies","nameLocation":"2326:21:3","parameters":{"id":288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":287,"mutability":"mutable","name":"holder","nameLocation":"2356:6:3","nodeType":"VariableDeclaration","scope":314,"src":"2348:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":286,"name":"address","nodeType":"ElementaryTypeName","src":"2348:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2347:16:3"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[{"constant":false,"id":292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":314,"src":"2387:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":290,"nodeType":"UserDefinedTypeName","pathNode":{"id":289,"name":"PolicyTerms","nameLocations":["2387:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2387:11:3"},"referencedDeclaration":236,"src":"2387:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":291,"nodeType":"ArrayTypeName","src":"2387:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2386:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":351,"nodeType":"FunctionDefinition","src":"2759:325:3","nodes":[],"body":{"id":350,"nodeType":"Block","src":"2855:229:3","nodes":[],"statements":[{"assignments":[325],"declarations":[{"constant":false,"id":325,"mutability":"mutable","name":"criteria","nameLocation":"2878:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2865:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":324,"name":"bytes","nodeType":"ElementaryTypeName","src":"2865:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":330,"initialValue":{"arguments":[{"id":328,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2900:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":326,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2889:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":327,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2893:6:3","memberName":"encode","nodeType":"MemberAccess","src":"2889:10:3","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2889:19:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"2865:43:3"},{"assignments":[332],"declarations":[{"constant":false,"id":332,"mutability":"mutable","name":"holder","nameLocation":"2926:6:3","nodeType":"VariableDeclaration","scope":350,"src":"2918:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":331,"name":"address","nodeType":"ElementaryTypeName","src":"2918:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":337,"initialValue":{"arguments":[{"id":335,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":317,"src":"2959:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":333,"name":"ASSET_OWNERSHIP","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":244,"src":"2935:15:3","typeDescriptions":{"typeIdentifier":"t_contract$_IAssetOwnership_$50146","typeString":"contract IAssetOwnership"}},"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2951:7:3","memberName":"ownerOf","nodeType":"MemberAccess","referencedDeclaration":45357,"src":"2935:23:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view external returns (address)"}},"id":336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2935:32:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"2918:49:3"},{"assignments":[342],"declarations":[{"constant":false,"id":342,"mutability":"mutable","name":"policies","nameLocation":"2998:8:3","nodeType":"VariableDeclaration","scope":350,"src":"2977:29:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":340,"nodeType":"UserDefinedTypeName","pathNode":{"id":339,"name":"PolicyTerms","nameLocations":["2977:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2977:11:3"},"referencedDeclaration":236,"src":"2977:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":341,"nodeType":"ArrayTypeName","src":"2977:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":347,"initialValue":{"arguments":[{"id":344,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":332,"src":"3035:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":345,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":325,"src":"3043:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":343,"name":"getAvailablePoliciesTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":460,"src":"3009:25:3","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes_memory_ptr_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (address,bytes memory) view returns (struct PoliciesAgg.PolicyTerms memory[] memory)"}},"id":346,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3009:43:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"2977:75:3"},{"expression":{"id":348,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":342,"src":"3069:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":323,"id":349,"nodeType":"Return","src":"3062:15:3"}]},"documentation":{"id":315,"nodeType":"StructuredDocumentation","src":"2584:170:3","text":"@notice Retrieves all policies that govern operations on a specific asset.\n @param assetId The unique identifier of the asset whose policies are being queried."},"functionSelector":"76e5cef1","implemented":true,"kind":"function","modifiers":[],"name":"getAssetSpecificPolicies","nameLocation":"2768:24:3","parameters":{"id":318,"nodeType":"ParameterList","parameters":[{"constant":false,"id":317,"mutability":"mutable","name":"assetId","nameLocation":"2801:7:3","nodeType":"VariableDeclaration","scope":351,"src":"2793:15:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":316,"name":"uint256","nodeType":"ElementaryTypeName","src":"2793:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2792:17:3"},"returnParameters":{"id":323,"nodeType":"ParameterList","parameters":[{"constant":false,"id":322,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":351,"src":"2833:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":320,"nodeType":"UserDefinedTypeName","pathNode":{"id":319,"name":"PolicyTerms","nameLocations":["2833:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"2833:11:3"},"referencedDeclaration":236,"src":"2833:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":321,"nodeType":"ArrayTypeName","src":"2833:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"2832:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":460,"nodeType":"FunctionDefinition","src":"3292:896:3","nodes":[],"body":{"id":459,"nodeType":"Block","src":"3431:757:3","nodes":[],"statements":[{"assignments":[367],"declarations":[{"constant":false,"id":367,"mutability":"mutable","name":"policies","nameLocation":"3458:8:3","nodeType":"VariableDeclaration","scope":459,"src":"3441:25:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":365,"name":"address","nodeType":"ElementaryTypeName","src":"3441:7:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":366,"nodeType":"ArrayTypeName","src":"3441:9:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":372,"initialValue":{"arguments":[{"id":370,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":354,"src":"3516:6:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":368,"name":"RIGHTS_POLICY_AUTHORIZER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":240,"src":"3469:24:3","typeDescriptions":{"typeIdentifier":"t_contract$_IRightsPolicyAuthorizer_$50391","typeString":"contract IRightsPolicyAuthorizer"}},"id":369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3494:21:3","memberName":"getAuthorizedPolicies","nodeType":"MemberAccess","referencedDeclaration":50366,"src":"3469:46:3","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (address) view external returns (address[] memory)"}},"id":371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3469:54:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3441:82:3"},{"assignments":[377],"declarations":[{"constant":false,"id":377,"mutability":"mutable","name":"terms","nameLocation":"3554:5:3","nodeType":"VariableDeclaration","scope":459,"src":"3533:26:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":375,"nodeType":"UserDefinedTypeName","pathNode":{"id":374,"name":"PolicyTerms","nameLocations":["3533:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3533:11:3"},"referencedDeclaration":236,"src":"3533:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":376,"nodeType":"ArrayTypeName","src":"3533:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"id":385,"initialValue":{"arguments":[{"expression":{"id":382,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3580:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3589:6:3","memberName":"length","nodeType":"MemberAccess","src":"3580:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":381,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3562:17:3","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (struct PoliciesAgg.PolicyTerms memory[] memory)"},"typeName":{"baseType":{"id":379,"nodeType":"UserDefinedTypeName","pathNode":{"id":378,"name":"PolicyTerms","nameLocations":["3566:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3566:11:3"},"referencedDeclaration":236,"src":"3566:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":380,"nodeType":"ArrayTypeName","src":"3566:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}}},"id":384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3562:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3533:63:3"},{"assignments":[387],"declarations":[{"constant":false,"id":387,"mutability":"mutable","name":"availablePoliciesLen","nameLocation":"3614:20:3","nodeType":"VariableDeclaration","scope":459,"src":"3606:28:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":386,"name":"uint256","nodeType":"ElementaryTypeName","src":"3606:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":390,"initialValue":{"expression":{"id":388,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3637:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3646:6:3","memberName":"length","nodeType":"MemberAccess","src":"3637:15:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3606:46:3"},{"body":{"id":455,"nodeType":"Block","src":"3731:428:3","statements":[{"assignments":[405],"declarations":[{"constant":false,"id":405,"mutability":"mutable","name":"policyAddress","nameLocation":"3753:13:3","nodeType":"VariableDeclaration","scope":455,"src":"3745:21:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":404,"name":"address","nodeType":"ElementaryTypeName","src":"3745:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":409,"initialValue":{"baseExpression":{"id":406,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":367,"src":"3769:8:3","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":408,"indexExpression":{"id":407,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3778:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3769:11:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3745:35:3"},{"assignments":[411],"declarations":[{"constant":false,"id":411,"mutability":"mutable","name":"callData","nameLocation":"3807:8:3","nodeType":"VariableDeclaration","scope":455,"src":"3794:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":410,"name":"bytes","nodeType":"ElementaryTypeName","src":"3794:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":419,"initialValue":{"arguments":[{"expression":{"id":414,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50308,"src":"3833:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$50308_$","typeString":"type(contract IPolicy)"}},"id":415,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3841:12:3","memberName":"resolveTerms","nodeType":"MemberAccess","referencedDeclaration":50291,"src":"3833:20:3","typeDescriptions":{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"}},{"components":[{"id":416,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":356,"src":"3856:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"id":417,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3855:10:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_view$_t_bytes_memory_ptr_$returns$_t_struct$_Terms_$51222_memory_ptr_$","typeString":"function IPolicy.resolveTerms(bytes memory) view returns (struct T.Terms memory)"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":412,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3818:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":413,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3822:10:3","memberName":"encodeCall","nodeType":"MemberAccess","src":"3818:14:3","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3818:48:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3794:72:3"},{"assignments":[421,423],"declarations":[{"constant":false,"id":421,"mutability":"mutable","name":"success","nameLocation":"3886:7:3","nodeType":"VariableDeclaration","scope":455,"src":"3881:12:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":420,"name":"bool","nodeType":"ElementaryTypeName","src":"3881:4:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":423,"mutability":"mutable","name":"result","nameLocation":"3908:6:3","nodeType":"VariableDeclaration","scope":455,"src":"3895:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":422,"name":"bytes","nodeType":"ElementaryTypeName","src":"3895:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":428,"initialValue":{"arguments":[{"id":426,"name":"callData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":411,"src":"3943:8:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":424,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"3918:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3932:10:3","memberName":"staticcall","nodeType":"MemberAccess","src":"3918:24:3","typeDescriptions":{"typeIdentifier":"t_function_barestaticcall_view$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) view returns (bool,bytes memory)"}},"id":427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3918:34:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3880:72:3"},{"condition":{"id":430,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3970:8:3","subExpression":{"id":429,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"3971:7:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":432,"nodeType":"IfStatement","src":"3966:22:3","trueBody":{"id":431,"nodeType":"Continue","src":"3980:8:3"}},{"assignments":[437],"declarations":[{"constant":false,"id":437,"mutability":"mutable","name":"term","nameLocation":"4036:4:3","nodeType":"VariableDeclaration","scope":455,"src":"4021:19:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":436,"nodeType":"UserDefinedTypeName","pathNode":{"id":435,"name":"T.Terms","nameLocations":["4021:1:3","4023:5:3"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"4021:7:3"},"referencedDeclaration":51222,"src":"4021:7:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"id":445,"initialValue":{"arguments":[{"id":440,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":423,"src":"4054:6:3","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":441,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4063:1:3","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4065:5:3","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51222,"src":"4063:7:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"id":443,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4062:9:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}],"expression":{"id":438,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4043:3:3","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4047:6:3","memberName":"decode","nodeType":"MemberAccess","src":"4043:10:3","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4043:29:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}},"nodeType":"VariableDeclarationStatement","src":"4021:51:3"},{"expression":{"id":453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":446,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4086:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"id":448,"indexExpression":{"id":447,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"4092:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4086:8:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":450,"name":"policyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":405,"src":"4119:13:3","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":451,"name":"term","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":437,"src":"4141:4:3","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}],"id":449,"name":"PolicyTerms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":236,"src":"4097:11:3","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PolicyTerms_$236_storage_ptr_$","typeString":"type(struct PoliciesAgg.PolicyTerms storage pointer)"}},"id":452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["4111:6:3","4134:5:3"],"names":["policy","terms"],"nodeType":"FunctionCall","src":"4097:51:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"src":"4086:62:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory"}},"id":454,"nodeType":"ExpressionStatement","src":"4086:62:3"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":395,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3683:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":396,"name":"availablePoliciesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":387,"src":"3687:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3683:24:3","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":456,"initializationExpression":{"assignments":[392],"declarations":[{"constant":false,"id":392,"mutability":"mutable","name":"i","nameLocation":"3676:1:3","nodeType":"VariableDeclaration","scope":456,"src":"3668:9:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":391,"name":"uint256","nodeType":"ElementaryTypeName","src":"3668:7:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":394,"initialValue":{"hexValue":"30","id":393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3680:1:3","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"3668:13:3"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":398,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3709:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":399,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":392,"src":"3713:1:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3715:12:3","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":50744,"src":"3713:14:3","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3713:16:3","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3709:20:3","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":403,"nodeType":"ExpressionStatement","src":"3709:20:3"},"nodeType":"ForStatement","src":"3663:496:3"},{"expression":{"id":457,"name":"terms","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":377,"src":"4176:5:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms memory[] memory"}},"functionReturnParameters":362,"id":458,"nodeType":"Return","src":"4169:12:3"}]},"documentation":{"id":352,"nodeType":"StructuredDocumentation","src":"3090:197:3","text":"@notice Retrieves all available policies for a holder matching specific criteria.\n @param holder Address of the rights holder.\n @param criteria Encoded data for policy evaluation."},"functionSelector":"9f30b60f","implemented":true,"kind":"function","modifiers":[],"name":"getAvailablePoliciesTerms","nameLocation":"3301:25:3","parameters":{"id":357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":354,"mutability":"mutable","name":"holder","nameLocation":"3344:6:3","nodeType":"VariableDeclaration","scope":460,"src":"3336:14:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":353,"name":"address","nodeType":"ElementaryTypeName","src":"3336:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":356,"mutability":"mutable","name":"criteria","nameLocation":"3373:8:3","nodeType":"VariableDeclaration","scope":460,"src":"3360:21:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":355,"name":"bytes","nodeType":"ElementaryTypeName","src":"3360:5:3","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3326:61:3"},"returnParameters":{"id":362,"nodeType":"ParameterList","parameters":[{"constant":false,"id":361,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":460,"src":"3409:20:3","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_memory_ptr_$dyn_memory_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"},"typeName":{"baseType":{"id":359,"nodeType":"UserDefinedTypeName","pathNode":{"id":358,"name":"PolicyTerms","nameLocations":["3409:11:3"],"nodeType":"IdentifierPath","referencedDeclaration":236,"src":"3409:11:3"},"referencedDeclaration":236,"src":"3409:11:3","typeDescriptions":{"typeIdentifier":"t_struct$_PolicyTerms_$236_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms"}},"id":360,"nodeType":"ArrayTypeName","src":"3409:13:3","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PolicyTerms_$236_storage_$dyn_storage_ptr","typeString":"struct PoliciesAgg.PolicyTerms[]"}},"visibility":"internal"}],"src":"3408:22:3"},"scope":471,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":470,"nodeType":"FunctionDefinition","src":"4492:84:3","nodes":[],"body":{"id":469,"nodeType":"Block","src":"4574:2:3","nodes":[],"statements":[]},"baseFunctions":[43657],"documentation":{"id":461,"nodeType":"StructuredDocumentation","src":"4194:293:3","text":"@notice Function that should revert when msg.sender is not authorized to upgrade the contract.\n @param newImplementation The address of the new implementation contract.\n @dev See https://docs.openzeppelin.com/contracts/4.x/api/proxy#UUPSUpgradeable-_authorizeUpgrade-address-"},"implemented":true,"kind":"function","modifiers":[{"id":467,"kind":"modifierInvocation","modifierName":{"id":466,"name":"onlyAdmin","nameLocations":["4564:9:3"],"nodeType":"IdentifierPath","referencedDeclaration":51279,"src":"4564:9:3"},"nodeType":"ModifierInvocation","src":"4564:9:3"}],"name":"_authorizeUpgrade","nameLocation":"4501:17:3","overrides":{"id":465,"nodeType":"OverrideSpecifier","overrides":[],"src":"4555:8:3"},"parameters":{"id":464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":463,"mutability":"mutable","name":"newImplementation","nameLocation":"4527:17:3","nodeType":"VariableDeclaration","scope":470,"src":"4519:25:3","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":462,"name":"address","nodeType":"ElementaryTypeName","src":"4519:7:3","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4518:27:3"},"returnParameters":{"id":468,"nodeType":"ParameterList","parameters":[],"src":"4574:0:3"},"scope":471,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":221,"name":"Initializable","nameLocations":["784:13:3"],"nodeType":"IdentifierPath","referencedDeclaration":43521,"src":"784:13:3"},"id":222,"nodeType":"InheritanceSpecifier","src":"784:13:3"},{"baseName":{"id":223,"name":"UUPSUpgradeable","nameLocations":["799:15:3"],"nodeType":"IdentifierPath","referencedDeclaration":43703,"src":"799:15:3"},"id":224,"nodeType":"InheritanceSpecifier","src":"799:15:3"},{"baseName":{"id":225,"name":"AccessControlledUpgradeable","nameLocations":["816:27:3"],"nodeType":"IdentifierPath","referencedDeclaration":51361,"src":"816:27:3"},"id":226,"nodeType":"InheritanceSpecifier","src":"816:27:3"}],"canonicalName":"PoliciesAgg","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[471,51361,43267,43871,43749,43703,44440,43521],"name":"PoliciesAgg","nameLocation":"769:11:3","scope":472,"usedErrors":[43284,43287,43548,43553,43842,43848,43852,44498,44511,45462,45724,51261],"usedEvents":[43292,43838,44413]}],"license":"MIT"},"id":3} \ No newline at end of file diff --git a/src/config/abi/RightsPolicyAuthorizer.json b/src/config/abi/RightsPolicyAuthorizer.json index dccac54a4..80ab489ce 100644 --- a/src/config/abi/RightsPolicyAuthorizer.json +++ b/src/config/abi/RightsPolicyAuthorizer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61166a38819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a05260405161150b908161015f82396080518181816107d901526108da015260a0518181816105e1015261107b0152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea264697066735822122013bf8b5e08f4fce8c72b2651316c68f40d0d55c92628f80e6bd2faeabb4530a764736f6c634300081a0033","sourceMap":"841:5886:59:-:0;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;-1:-1:-1;;;;;841:5886:59;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;841:5886:59;;;;;;;;1171:4:93;1163:13;;8837:64:92;841:5886:59;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;841:5886:59;;7985:34:92;7981:146;;-1:-1:-1;3006:52:59;;;841:5886;;;;;;;;1163:13:93;841:5886:59;;;;;;;;;;3006:52;841:5886;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;841:5886:59;-1:-1:-1;;;;;841:5886:59;;;8837:64:92;841:5886:59;;;;;;8087:29:92;;841:5886:59;;8087:29:92;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;841:5886:59;-1:-1:-1;841:5886:59;;;;;;-1:-1:-1;841:5886:59;;;;;-1:-1:-1;841:5886:59","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610cc75780634f1ef2861461085157806352d1902d146107b2578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610f06565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b610126915061100d565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610f06565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6113e5565b6102146113e5565b61021c6113e5565b6102246113e5565b61022d816110e5565b6102356113e5565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610f29565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610f06565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261125f565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610f06565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c906110e5565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610f06565b165f525f60205260405f20604051806020835491828152019081935f5260205f20905f5b81811061079c5750505081610744910382610f29565b604051918291602083019060208452518091526040830191905f5b81811061076d575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff1684528594506020938401939092019160010161075f565b825484526020909301926001928301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108295760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610865610f06565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061089282610f97565b916108a06040519384610f29565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610c85575b50610829576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610c7a575f91610c2f575b5015610bab5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610b77575b50610a1157847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610b4c5750823b15610b2157807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610aef575f809161066c945190845af4610ae9610fd1565b9161143c565b50505034610af957005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610ba3575b81610b9360209383610f29565b8101031261012c575190866109e0565b3d9150610b86565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610c72575b81610c4a60409383610f29565b8101031261012c576020610c5d82611000565b91015163ffffffff81160361012c578461098b565b3d9150610c3d565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416141584610905565b3461012c57604060031936011261012c57610ce0610f06565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610d268361100d565b15610ec4575f91601f610dd7608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610f29565b519082855af1610de5610fd1565b5015610e4057335f525f602052610e1773ffffffffffffffffffffffffffffffffffffffff60405f20921680926111d2565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f6a57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff8111610f6a57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d15610ffb573d90610fe282610f97565b91610ff06040519384610f29565b82523d5f602084013e565b606090565b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff168015159081611030575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610c7a575f916110ae575090565b90506020813d6020116110dd575b816110c960209383610f29565b8101031261012c576110da90611000565b90565b3d91506110bc565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156111a5575f5260205f2001905f90565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8281526001820160205260409020546112595780549068010000000000000000821015610f6a578261124461120f846001809601855584611190565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146113dd577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116113b0578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116113b05781810361137b575b5050508054801561134e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01906113118282611190565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61139b61138b61120f9386611190565b90549060031b1c92839286611190565b90555f528360205260405f20555f80806112d9565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561141457565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611479575080511561145157805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806114cc575b61148a575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561148256fea264697066735822122013bf8b5e08f4fce8c72b2651316c68f40d0d55c92628f80e6bd2faeabb4530a764736f6c634300081a0033","sourceMap":"841:5886:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:174;;841:5886:59;;;;;;4360:26:174;;4906:70:59;;;;841:5886;;;;;;;;;;4906:70;4954:22;;;;:::i;:::-;4906:70;;;841:5886;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;8837:64:92;841:5886:59;;;;;;4301:16:92;841:5886:59;;;;4726:16:92;;:34;;;;841:5886:59;4805:1:92;4790:16;:50;;;;841:5886:59;4855:13:92;:30;;;;841:5886:59;4851:91:92;;;841:5886:59;;4805:1:92;841:5886:59;;;;;8837:64:92;841:5886:59;4979:67:92;;841:5886:59;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;841:5886:59;;3295:62:44;841:5886:59;;;3295:62:44;841:5886:59;5066:101:92;;841:5886:59;5066:101:92;841:5886:59;8837:64:92;841:5886:59;;8837:64:92;841:5886:59;5142:14:92;841:5886:59;;;4805:1:92;841:5886:59;;5142:14:92;841:5886:59;4979:67:92;841:5886:59;;;;8837:64:92;841:5886:59;4979:67:92;;;4851:91;4908:23;841:5886:59;4908:23:92;841:5886:59;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;1782:71:90;841:5886:59;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;4458:10;841:5886;;;;;8703:53:174;841:5886:59;;;;;;8703:53:174;;;:::i;:::-;;4458:10:59;4499:33;;841:5886;4499:33;;841:5886;;;;;;-1:-1:-1;;841:5886:59;;;;;1782:71:90;841:5886:59;;;;;4698:71:90;;;841:5886:59;;4698:71:90;841:5886:59;;;;;;;;4698:71:90;841:5886:59;;4698:71:90;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;;;1427:54;841:5886;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;1782:71:90;841:5886:59;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;841:5886:59;4355:110:90;841:5886:59;4411:43:90;;841:5886:59;4411:43:90;841:5886:59;;;;;4411:43:90;4254:92;4302:33;841:5886:59;4302:33:90;966:10:96;841:5886:59;;;;4302:33:90;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;841:5886:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;841:5886:59;;;;;;5115:6:93;841:5886:59;5106:4:93;5098:23;5094:145;;841:5886:59;;;811:66:130;841:5886:59;;;5094:145:93;5199:29;841:5886:59;5199:29:93;841:5886:59;;5199:29:93;841:5886:59;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;841:5886:59;4683:4:93;;4675:23;:120;;;;;841:5886:59;4658:251:93;;;3058:30:44;841:5886:59;;3295:62:44;841:5886:59;;;;3058:30:44;;;;841:5886:59;3058:30:44;;841:5886:59;;3058:30:44;;841:5886:59;1893:10:44;841:5886:59;;;;3058:30:44;;;;;;;841:5886:59;3058:30:44;;;841:5886:59;1869:35:44;;1865:140;;841:5886:59;;;;;;;6156:52:93;;841:5886:59;6156:52:93;841:5886:59;6156:52:93;;;;841:5886:59;;6156:52:93;;;841:5886:59;-1:-1:-1;6152:437:93;;6518:60;;841:5886:59;6518:60:93;841:5886:59;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;841:5886:59;;811:66:130;841:5886:59;;;811:66:130;841:5886:59;2407:36:130;841:5886:59;2407:36:130;;841:5886:59;;2458:15:130;:11;;841:5886:59;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;841:5886:59;6159:70:130;6199:19;841:5886:59;6199:19:130;841:5886:59;;6199:19:130;1744:119;1805:47;841:5886:59;1805:47:130;841:5886:59;;;;1805:47:130;6246:120:93;6317:34;841:5886:59;6317:34:93;841:5886:59;;;;6317:34:93;6156:52;;;;841:5886:59;6156:52:93;;841:5886:59;6156:52:93;;;;;;841:5886:59;6156:52:93;;;:::i;:::-;;;841:5886:59;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;841:5886:59;;1927:67:44;;;841:5886:59;;1927:67:44;;520:1:42;841:5886:59;;520:1:42;;841:5886:59;520:1:42;3058:30:44;841:5886:59;;520:1:42;;;;;;1927:67:44;3058:30;;;841:5886:59;3058:30:44;;841:5886:59;3058:30:44;;;;;;841:5886:59;3058:30:44;;;:::i;:::-;;;841:5886:59;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:44;;;;;;-1:-1:-1;3058:30:44;;;841:5886:59;;;;;;;;;4675:120:93;841:5886:59;;;811:66:130;841:5886:59;;4753:42:93;;4675:120;;;841:5886:59;;;;;-1:-1:-1;;841:5886:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3681:22;;;:::i;:::-;3680:23;3676:67;;841:5886;;;3889:54;841:5886;;;;;;3889:54;;;;841:5886;;3889:54;;;;;;3925:10;3889:54;;;841:5886;;;;;;;;;;;;;;;;;;;;;;;;;;;3889:54;;841:5886;3889:54;;;;;;:::i;:::-;3877:67;;;;;;;;:::i;:::-;;3958:8;3954:91;;3925:10;841:5886;;;;;8382:50:174;841:5886:59;;;;;;8382:50:174;;;:::i;:::-;;3925:10:59;4165:33;;841:5886;4165:33;;841:5886;3954:91;841:5886;;;3975:70;;;841:5886;;3975:70;;841:5886;;;;;;;;;;;;;;;;3975:70;3676:67;841:5886;3712:31;;841:5886;3712:31;841:5886;;;;;3712:31;841:5886;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;841:5886:59;;;;;-1:-1:-1;841:5886:59;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;841:5886:59;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;:::o;6577:148::-;841:5886;;6663:20;;;:54;;;;6655:63;6577:148;:::o;6663:54::-;841:5886;;;;6687:30;841:5886;6687:30;;;;;841:5886;;6687:12;:30;:12;841:5886;6687:12;841:5886;6687:30;;;;;;;6681:1;6687:30;;;6663:54;6577:148;:::o;6687:30::-;;;841:5886;6687:30;;841:5886;6687:30;;;;;;841:5886;6687:30;;;:::i;:::-;;;841:5886;;;;;;;:::i;:::-;6577:148;:::o;6687:30::-;;;-1:-1:-1;6687:30:59;;4964:220:90;841:5886:59;;5147:30:90;4964:220;841:5886:59;;;1782:71:90;841:5886:59;;;1782:71:90;841:5886:59;;;;;;5147:30:90;4964:220::o;841:5886:59:-;;;;;;;;-1:-1:-1;841:5886:59;;-1:-1:-1;841:5886:59;;;-1:-1:-1;841:5886:59;:::o;:::-;;;;;;;;;;2241:406:174;-1:-1:-1;841:5886:59;;;4360:14:174;;;841:5886:59;;;;;;2325:21:174;;841:5886:59;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:174;841:5886:59;;;;;;;2576:11:174;:::o;2320:321::-;2618:12;;841:5886:59;2618:12:174;:::o;2815:1368::-;;3010:14;;;841:5886:59;;;;;;;;;;;3046:13:174;;;3042:1135;3046:13;;;841:5886:59;;;;;;;;;;;;;;;;;;;3521:23:174;;;3517:378;;3042:1135;841:5886:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:174;4112:11;:::o;841:5886:59:-;;;;;;;;;;3517:378:174;841:5886:59;3584:22:174;3705:23;3584:22;;;:::i;:::-;841:5886:59;;;;;;3705:23:174;;;;;:::i;841:5886:59:-;;;;;;;;;;;;3517:378:174;;;;;841:5886:59;;;;;;;;;;3042:1135:174;4154:12;;;;841:5886:59;4154:12:174;:::o;7084:141:92:-;841:5886:59;8837:64:92;841:5886:59;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;4421:582:151;;4593:8;;-1:-1:-1;841:5886:59;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;841:5886:59;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;841:5886:59;4917:24:151;;4862:1;4917:24;841:5886:59;4917:24:151;841:5886:59;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"50429":[{"start":2009,"length":32},{"start":2266,"length":32}],"5934":[{"start":1505,"length":32},{"start":4219,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x04907b488b228c3017674faa8bcffcee3e6e7555eda67cb52ed6699336949dcf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8abbab371c6cf333f5a6de0e365724216599c897550e26e656dd05b60b8ec2c8\",\"dweb:/ipfs/QmayAshmPbwsbzHXSqxnn9KQYzsg4nmafYsNLTAiSc6HJ9\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the asset holder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0x04907b488b228c3017674faa8bcffcee3e6e7555eda67cb52ed6699336949dcf","urls":["bzz-raw://8abbab371c6cf333f5a6de0e365724216599c897550e26e656dd05b60b8ec2c8","dweb:/ipfs/QmayAshmPbwsbzHXSqxnn9KQYzsg4nmafYsNLTAiSc6HJ9"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5940,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)69884_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)69884_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)69884_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)69884_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":69883,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)69569_storage"}]},"t_struct(Set)69569_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":69564,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":69568,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6143,"exportedSymbols":{"AccessControlledUpgradeable":[2672],"EnumerableSet":[70171],"IPolicy":[1349],"IPolicyAuditorVerifiable":[1395],"IRightsPolicyAuthorizer":[1478],"Initializable":[50409],"RightsPolicyAuthorizer":[6142],"UUPSUpgradeable":[50591]},"nodeType":"SourceUnit","src":"124:6604:59","nodes":[{"id":5904,"nodeType":"PragmaDirective","src":"124:23:59","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5906,"nodeType":"ImportDirective","src":"149:98:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":50410,"symbolAliases":[{"foreign":{"id":5905,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50409,"src":"158:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5908,"nodeType":"ImportDirective","src":"248:88:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":70172,"symbolAliases":[{"foreign":{"id":5907,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70171,"src":"257:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5910,"nodeType":"ImportDirective","src":"337:102:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":50592,"symbolAliases":[{"foreign":{"id":5909,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50591,"src":"346:15:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5912,"nodeType":"ImportDirective","src":"440:115:59","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":2673,"symbolAliases":[{"foreign":{"id":5911,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2672,"src":"449:27:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5914,"nodeType":"ImportDirective","src":"557:72:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1350,"symbolAliases":[{"foreign":{"id":5913,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"566:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5916,"nodeType":"ImportDirective","src":"630:102:59","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1479,"symbolAliases":[{"foreign":{"id":5915,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1478,"src":"639:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5918,"nodeType":"ImportDirective","src":"733:106:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6143,"sourceUnit":1396,"symbolAliases":[{"foreign":{"id":5917,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1395,"src":"742:24:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6142,"nodeType":"ContractDefinition","src":"841:5886:59","nodes":[{"id":5930,"nodeType":"UsingForDirective","src":"983:49:59","nodes":[],"global":false,"libraryName":{"id":5927,"name":"EnumerableSet","nameLocations":["989:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":70171,"src":"989:13:59"},"typeName":{"id":5929,"nodeType":"UserDefinedTypeName","pathNode":{"id":5928,"name":"EnumerableSet.AddressSet","nameLocations":["1007:13:59","1021:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69884,"src":"1007:24:59"},"referencedDeclaration":69884,"src":"1007:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":5934,"nodeType":"VariableDeclaration","src":"1427:54:59","nodes":[],"constant":false,"documentation":{"id":5931,"nodeType":"StructuredDocumentation","src":"1361:61:59","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1469:12:59","scope":6142,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":5933,"nodeType":"UserDefinedTypeName","pathNode":{"id":5932,"name":"IPolicyAuditorVerifiable","nameLocations":["1427:24:59"],"nodeType":"IdentifierPath","referencedDeclaration":1395,"src":"1427:24:59"},"referencedDeclaration":1395,"src":"1427:24:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":5940,"nodeType":"VariableDeclaration","src":"1574:72:59","nodes":[],"constant":false,"documentation":{"id":5935,"nodeType":"StructuredDocumentation","src":"1488:81:59","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1627:19:59","scope":6142,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":5939,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5936,"name":"address","nodeType":"ElementaryTypeName","src":"1582:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1574:44:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5938,"nodeType":"UserDefinedTypeName","pathNode":{"id":5937,"name":"EnumerableSet.AddressSet","nameLocations":["1593:13:59","1607:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69884,"src":"1593:24:59"},"referencedDeclaration":69884,"src":"1593:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":5947,"nodeType":"EventDefinition","src":"1853:68:59","nodes":[],"anonymous":false,"documentation":{"id":5941,"nodeType":"StructuredDocumentation","src":"1652:196:59","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1859:13:59","parameters":{"id":5946,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5943,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1889:6:59","nodeType":"VariableDeclaration","scope":5947,"src":"1873:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5942,"name":"address","nodeType":"ElementaryTypeName","src":"1873:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5945,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"1913:6:59","nodeType":"VariableDeclaration","scope":5947,"src":"1897:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5944,"name":"address","nodeType":"ElementaryTypeName","src":"1897:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1872:48:59"}},{"id":5954,"nodeType":"EventDefinition","src":"2145:68:59","nodes":[],"anonymous":false,"documentation":{"id":5948,"nodeType":"StructuredDocumentation","src":"1926:214:59","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2151:13:59","parameters":{"id":5953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5950,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2181:6:59","nodeType":"VariableDeclaration","scope":5954,"src":"2165:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5949,"name":"address","nodeType":"ElementaryTypeName","src":"2165:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5952,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2205:6:59","nodeType":"VariableDeclaration","scope":5954,"src":"2189:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5951,"name":"address","nodeType":"ElementaryTypeName","src":"2189:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2164:48:59"}},{"id":5959,"nodeType":"ErrorDefinition","src":"2366:46:59","nodes":[],"documentation":{"id":5955,"nodeType":"StructuredDocumentation","src":"2219:142:59","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2372:23:59","parameters":{"id":5958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5957,"mutability":"mutable","name":"policy","nameLocation":"2404:6:59","nodeType":"VariableDeclaration","scope":5959,"src":"2396:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5956,"name":"address","nodeType":"ElementaryTypeName","src":"2396:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2395:16:59"}},{"id":5964,"nodeType":"ErrorDefinition","src":"2572:49:59","nodes":[],"documentation":{"id":5960,"nodeType":"StructuredDocumentation","src":"2417:150:59","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2578:27:59","parameters":{"id":5963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5962,"mutability":"mutable","name":"reason","nameLocation":"2613:6:59","nodeType":"VariableDeclaration","scope":5964,"src":"2606:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5961,"name":"string","nodeType":"ElementaryTypeName","src":"2606:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2605:15:59"}},{"id":5980,"nodeType":"FunctionDefinition","src":"2680:385:59","nodes":[],"body":{"id":5979,"nodeType":"Block","src":"2713:352:59","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5970,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50377,"src":"2913:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2913:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5972,"nodeType":"ExpressionStatement","src":"2913:22:59"},{"expression":{"id":5977,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5973,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"3006:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5975,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5967,"src":"3046:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5974,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1395,"src":"3021:24:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1395_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":5976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3021:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3006:52:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"id":5978,"nodeType":"ExpressionStatement","src":"3006:52:59"}]},"documentation":{"id":5965,"nodeType":"StructuredDocumentation","src":"2627:48:59","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5968,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5967,"mutability":"mutable","name":"policyAudit","nameLocation":"2700:11:59","nodeType":"VariableDeclaration","scope":5980,"src":"2692:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5966,"name":"address","nodeType":"ElementaryTypeName","src":"2692:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2691:21:59"},"returnParameters":{"id":5969,"nodeType":"ParameterList","parameters":[],"src":"2713:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5996,"nodeType":"FunctionDefinition","src":"3116:151:59","nodes":[],"body":{"id":5995,"nodeType":"Block","src":"3178:89:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5988,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50463,"src":"3188:22:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3188:24:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5990,"nodeType":"ExpressionStatement","src":"3188:24:59"},{"expression":{"arguments":[{"id":5992,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5983,"src":"3246:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5991,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2607,"src":"3222:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3222:38:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5994,"nodeType":"ExpressionStatement","src":"3222:38:59"}]},"documentation":{"id":5981,"nodeType":"StructuredDocumentation","src":"3071:40:59","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5986,"kind":"modifierInvocation","modifierName":{"id":5985,"name":"initializer","nameLocations":["3166:11:59"],"nodeType":"IdentifierPath","referencedDeclaration":50263,"src":"3166:11:59"},"nodeType":"ModifierInvocation","src":"3166:11:59"}],"name":"initialize","nameLocation":"3125:10:59","parameters":{"id":5984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5983,"mutability":"mutable","name":"accessManager","nameLocation":"3144:13:59","nodeType":"VariableDeclaration","scope":5996,"src":"3136:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5982,"name":"address","nodeType":"ElementaryTypeName","src":"3136:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3135:23:59"},"returnParameters":{"id":5987,"nodeType":"ParameterList","parameters":[],"src":"3178:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6050,"nodeType":"FunctionDefinition","src":"3508:697:59","nodes":[],"body":{"id":6049,"nodeType":"Block","src":"3579:626:59","nodes":[],"statements":[{"condition":{"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3680:23:59","subExpression":{"arguments":[{"id":6005,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3696:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6004,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"3681:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3681:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6012,"nodeType":"IfStatement","src":"3676:67:59","trueBody":{"errorCall":{"arguments":[{"id":6009,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3736:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6008,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5959,"src":"3712:23:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3712:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6011,"nodeType":"RevertStatement","src":"3705:38:59"}},{"assignments":[6014,null],"declarations":[{"constant":false,"id":6014,"mutability":"mutable","name":"success","nameLocation":"3864:7:59","nodeType":"VariableDeclaration","scope":6049,"src":"3859:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6013,"name":"bool","nodeType":"ElementaryTypeName","src":"3859:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6027,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6019,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1349,"src":"3904:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1349_$","typeString":"type(contract IPolicy)"}},"id":6020,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3912:10:59","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1301,"src":"3904:18:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6021,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3925:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3929:6:59","memberName":"sender","nodeType":"MemberAccess","src":"3925:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6023,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6001,"src":"3937:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6024,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3924:18:59","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6017,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3889:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3893:10:59","memberName":"encodeCall","nodeType":"MemberAccess","src":"3889:14:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6025,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3889:54:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6015,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"3877:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3884:4:59","memberName":"call","nodeType":"MemberAccess","src":"3877:11:59","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3877:67:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3858:86:59"},{"condition":{"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3958:8:59","subExpression":{"id":6028,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6014,"src":"3959:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6034,"nodeType":"IfStatement","src":"3954:91:59","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6031,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4003:41:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6030,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"3975:27:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3975:70:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6033,"nodeType":"RevertStatement","src":"3968:77:59"}},{"expression":{"arguments":[{"id":6040,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"4091:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6035,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4055:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6038,"indexExpression":{"expression":{"id":6036,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4075:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6037,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4079:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4075:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4055:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6039,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4087:3:59","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":69911,"src":"4055:35:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4055:43:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6042,"nodeType":"ExpressionStatement","src":"4055:43:59"},{"eventCall":{"arguments":[{"id":6044,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5999,"src":"4179:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6045,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4187:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4191:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4187:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6043,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5947,"src":"4165:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4165:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6048,"nodeType":"EmitStatement","src":"4160:38:59"}]},"baseFunctions":[1471],"documentation":{"id":5997,"nodeType":"StructuredDocumentation","src":"3273:230:59","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3517:15:59","parameters":{"id":6002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5999,"mutability":"mutable","name":"policy","nameLocation":"3541:6:59","nodeType":"VariableDeclaration","scope":6050,"src":"3533:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5998,"name":"address","nodeType":"ElementaryTypeName","src":"3533:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6001,"mutability":"mutable","name":"data","nameLocation":"3564:4:59","nodeType":"VariableDeclaration","scope":6050,"src":"3549:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":6000,"name":"bytes","nodeType":"ElementaryTypeName","src":"3549:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3532:37:59"},"returnParameters":{"id":6003,"nodeType":"ParameterList","parameters":[],"src":"3579:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6071,"nodeType":"FunctionDefinition","src":"4381:158:59","nodes":[],"body":{"id":6070,"nodeType":"Block","src":"4428:111:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":6061,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"4477:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6056,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4438:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6059,"indexExpression":{"expression":{"id":6057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4458:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4462:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4458:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4438:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6060,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4470:6:59","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":69938,"src":"4438:38:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4438:46:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6063,"nodeType":"ExpressionStatement","src":"4438:46:59"},{"eventCall":{"arguments":[{"id":6065,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6053,"src":"4513:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6066,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4521:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6067,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4525:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4521:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6064,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5954,"src":"4499:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6068,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4499:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6069,"nodeType":"EmitStatement","src":"4494:38:59"}]},"baseFunctions":[1477],"documentation":{"id":6051,"nodeType":"StructuredDocumentation","src":"4211:165:59","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4390:12:59","parameters":{"id":6054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6053,"mutability":"mutable","name":"policy","nameLocation":"4411:6:59","nodeType":"VariableDeclaration","scope":6071,"src":"4403:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6052,"name":"address","nodeType":"ElementaryTypeName","src":"4403:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4402:16:59"},"returnParameters":{"id":6055,"nodeType":"ParameterList","parameters":[],"src":"4428:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6093,"nodeType":"FunctionDefinition","src":"4802:181:59","nodes":[],"body":{"id":6092,"nodeType":"Block","src":"4889:94:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"4943:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6081,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"4906:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6083,"indexExpression":{"id":6082,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6076,"src":"4926:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4906:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6084,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4934:8:59","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":69965,"src":"4906:36:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69884_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4906:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6088,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6074,"src":"4969:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6087,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6141,"src":"4954:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4954:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4906:70:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6080,"id":6091,"nodeType":"Return","src":"4899:77:59"}]},"baseFunctions":[1463],"documentation":{"id":6072,"nodeType":"StructuredDocumentation","src":"4545:252:59","text":"@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4811:18:59","parameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6074,"mutability":"mutable","name":"policy","nameLocation":"4838:6:59","nodeType":"VariableDeclaration","scope":6093,"src":"4830:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6073,"name":"address","nodeType":"ElementaryTypeName","src":"4830:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6076,"mutability":"mutable","name":"holder","nameLocation":"4854:6:59","nodeType":"VariableDeclaration","scope":6093,"src":"4846:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6075,"name":"address","nodeType":"ElementaryTypeName","src":"4846:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4829:32:59"},"returnParameters":{"id":6080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6079,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6093,"src":"4883:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6078,"name":"bool","nodeType":"ElementaryTypeName","src":"4883:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4882:6:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6109,"nodeType":"FunctionDefinition","src":"5284:746:59","nodes":[],"body":{"id":6108,"nodeType":"Block","src":"5370:660:59","nodes":[],"statements":[{"documentation":"consumes too much gas to fit in a block.","expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6102,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5940,"src":"5987:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69884_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6104,"indexExpression":{"id":6103,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6096,"src":"6007:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5987:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69884_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6105,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6015:6:59","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":70037,"src":"5987:34:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69884_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$69884_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5987:36:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6101,"id":6107,"nodeType":"Return","src":"5980:43:59"}]},"baseFunctions":[1453],"documentation":{"id":6094,"nodeType":"StructuredDocumentation","src":"4989:290:59","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5293:21:59","parameters":{"id":6097,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6096,"mutability":"mutable","name":"holder","nameLocation":"5323:6:59","nodeType":"VariableDeclaration","scope":6109,"src":"5315:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6095,"name":"address","nodeType":"ElementaryTypeName","src":"5315:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5314:16:59"},"returnParameters":{"id":6101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6100,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6109,"src":"5352:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6098,"name":"address","nodeType":"ElementaryTypeName","src":"5352:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6099,"nodeType":"ArrayTypeName","src":"5352:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5351:18:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":6119,"nodeType":"FunctionDefinition","src":"6228:84:59","nodes":[],"body":{"id":6118,"nodeType":"Block","src":"6310:2:59","nodes":[],"statements":[]},"baseFunctions":[50545],"documentation":{"id":6110,"nodeType":"StructuredDocumentation","src":"6036:187:59","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6116,"kind":"modifierInvocation","modifierName":{"id":6115,"name":"onlyAdmin","nameLocations":["6300:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":2590,"src":"6300:9:59"},"nodeType":"ModifierInvocation","src":"6300:9:59"}],"name":"_authorizeUpgrade","nameLocation":"6237:17:59","overrides":{"id":6114,"nodeType":"OverrideSpecifier","overrides":[],"src":"6291:8:59"},"parameters":{"id":6113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6112,"mutability":"mutable","name":"newImplementation","nameLocation":"6263:17:59","nodeType":"VariableDeclaration","scope":6119,"src":"6255:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6111,"name":"address","nodeType":"ElementaryTypeName","src":"6255:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6254:27:59"},"returnParameters":{"id":6117,"nodeType":"ParameterList","parameters":[],"src":"6310:0:59"},"scope":6142,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6141,"nodeType":"FunctionDefinition","src":"6577:148:59","nodes":[],"body":{"id":6140,"nodeType":"Block","src":"6645:80:59","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6127,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"6663:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6681:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6673:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6128,"name":"address","nodeType":"ElementaryTypeName","src":"6673:7:59","typeDescriptions":{}}},"id":6131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6673:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6663:20:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6135,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6122,"src":"6710:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6133,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5934,"src":"6687:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1395","typeString":"contract IPolicyAuditorVerifiable"}},"id":6134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6700:9:59","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1394,"src":"6687:22:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6687:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6663:54:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6138,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6662:56:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6126,"id":6139,"nodeType":"Return","src":"6655:63:59"}]},"documentation":{"id":6120,"nodeType":"StructuredDocumentation","src":"6318:254:59","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"6586:14:59","parameters":{"id":6123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6122,"mutability":"mutable","name":"policy","nameLocation":"6609:6:59","nodeType":"VariableDeclaration","scope":6141,"src":"6601:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6121,"name":"address","nodeType":"ElementaryTypeName","src":"6601:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6600:16:59"},"returnParameters":{"id":6126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6125,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6141,"src":"6639:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6124,"name":"bool","nodeType":"ElementaryTypeName","src":"6639:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6638:6:59"},"scope":6142,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5919,"name":"Initializable","nameLocations":["880:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":50409,"src":"880:13:59"},"id":5920,"nodeType":"InheritanceSpecifier","src":"880:13:59"},{"baseName":{"id":5921,"name":"UUPSUpgradeable","nameLocations":["899:15:59"],"nodeType":"IdentifierPath","referencedDeclaration":50591,"src":"899:15:59"},"id":5922,"nodeType":"InheritanceSpecifier","src":"899:15:59"},{"baseName":{"id":5923,"name":"AccessControlledUpgradeable","nameLocations":["920:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":2672,"src":"920:27:59"},"id":5924,"nodeType":"InheritanceSpecifier","src":"920:27:59"},{"baseName":{"id":5925,"name":"IRightsPolicyAuthorizer","nameLocations":["953:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":1478,"src":"953:23:59"},"id":5926,"nodeType":"InheritanceSpecifier","src":"953:23:59"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6142,1478,2672,48036,53533,52201,50591,59161,50409],"name":"RightsPolicyAuthorizer","nameLocation":"850:22:59","scope":6143,"usedErrors":[2572,5959,5964,50172,50175,50436,50441,53504,53510,53514,59356,59369,61652,61944],"usedEvents":[5947,5954,50180,53500,59083]}],"license":"MIT"},"id":59} +{"abi":[{"type":"constructor","inputs":[{"name":"policyAudit","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"POLICY_AUDIT","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPolicyAuditorVerifiable"}],"stateMutability":"view"},{"type":"function","name":"UPGRADE_INTERFACE_VERSION","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"authority","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"authorizePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAuthorizedPolicies","inputs":[{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"accessManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isConsumingScheduledOp","inputs":[],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"view"},{"type":"function","name":"isPolicyAuthorized","inputs":[{"name":"policy","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"revokePolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setAuthority","inputs":[{"name":"newAuthority","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AuthorityUpdated","inputs":[{"name":"authority","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"RightsGranted","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RightsRevoked","inputs":[{"name":"policy","type":"address","indexed":true,"internalType":"address"},{"name":"holder","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AccessManagedInvalidAuthority","inputs":[{"name":"authority","type":"address","internalType":"address"}]},{"type":"error","name":"AccessManagedRequiredDelay","inputs":[{"name":"caller","type":"address","internalType":"address"},{"name":"delay","type":"uint32","internalType":"uint32"}]},{"type":"error","name":"AccessManagedUnauthorized","inputs":[{"name":"caller","type":"address","internalType":"address"}]},{"type":"error","name":"AddressEmptyCode","inputs":[{"name":"target","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967InvalidImplementation","inputs":[{"name":"implementation","type":"address","internalType":"address"}]},{"type":"error","name":"ERC1967NonPayable","inputs":[]},{"type":"error","name":"FailedCall","inputs":[]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidNotAuditedPolicy","inputs":[{"name":"policy","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidUnauthorizedOperation","inputs":[{"name":"","type":"string","internalType":"string"}]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"UUPSUnauthorizedCallContext","inputs":[]},{"type":"error","name":"UUPSUnsupportedProxiableUUID","inputs":[{"name":"slot","type":"bytes32","internalType":"bytes32"}]}],"bytecode":{"object":"0x60c03461014657601f61176838819003918201601f19168301916001600160401b0383118484101761014a5780849260209460405283398101031261014657516001600160a01b0381169081900361014657306080527ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16610137576002600160401b03196001600160401b038216016100ce575b5060a052604051611609908161015f82396080518181816108ab01526109ac015260a0518181816105e101526111a60152f35b6001600160401b0319166001600160401b039081177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d290602090a15f61009b565b63f92ee8a960e01b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033","sourceMap":"904:6459:59:-:0;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;904:6459:59;;;;;;;;1171:4:93;1163:13;;8837:64:92;904:6459:59;;;;;;7896:76:92;;-1:-1:-1;;;;;;;;;;;904:6459:59;;7985:34:92;7981:146;;-1:-1:-1;3100:52:59;;;904:6459;;;;;;;;1163:13:93;904:6459:59;;;;;;;;;;3100:52;904:6459;;;;;;;;;;;7981:146:92;-1:-1:-1;;;;;;904:6459:59;-1:-1:-1;;;;;904:6459:59;;;8837:64:92;904:6459:59;;;;;;8087:29:92;;904:6459:59;;8087:29:92;7981:146;;;7896:76;7938:23;;;-1:-1:-1;7938:23:92;;-1:-1:-1;7938:23:92;904:6459:59;-1:-1:-1;904:6459:59;;;;;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361015610011575f80fd5b5f3560e01c80632f6cc10214610d995780634f1ef2861461092357806352d1902d14610884578063591b43c5146106dc5780637a9e5e4b1461060557806382e2b7c8146105b55780638fb36037146105225780639fda230a146104b4578063ad3cb1cc14610420578063bf7e214f146103ce578063c4d66de8146101305763ca89d8b21461009d575f80fd5b3461012c57604060031936011261012c576100b6610fd8565b6024359073ffffffffffffffffffffffffffffffffffffffff821680920361012c575f9182526020828152604080842073ffffffffffffffffffffffffffffffffffffffff841685526001018252909220541515908161011c575b506040519015158152f35b6101269150611138565b5f610111565b5f80fd5b3461012c57602060031936011261012c57610149610fd8565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460ff8160401c16159167ffffffffffffffff8216801590816103c6575b60011490816103bc575b1590816103b3575b5061038b57818360017fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000073ffffffffffffffffffffffffffffffffffffffff9516177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0055610336575b5061020c6114e3565b6102146114e3565b61021c6114e3565b6102246114e3565b61022d81611210565b6102356114e3565b167fffffffffffffffffffffffff00000000000000000000000000000000000000007fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa005416177fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa00556102a357005b7fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054167ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00557fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d2602060405160018152a1005b7fffffffffffffffffffffffffffffffffffffffffffffff0000000000000000001668010000000000000001177ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005583610203565b7ff92ee8a9000000000000000000000000000000000000000000000000000000005f5260045ffd5b9050158461019a565b303b159150610192565b849150610188565b3461012c575f60031936011261012c57602073ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416604051908152f35b3461012c575f60031936011261012c57604080519061043f8183610ffb565b6005825260208201917f352e302e3000000000000000000000000000000000000000000000000000000083527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8351948593602085525180918160208701528686015e5f85828601015201168101030190f35b3461012c57602060031936011261012c576104cd610fd8565b335f525f6020526104f973ffffffffffffffffffffffffffffffffffffffff60405f209216809261135d565b5033907fe26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e5f80a3005b3461012c575f60031936011261012c577ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005460a01c60ff16156105ad5760207f8fb36037000000000000000000000000000000000000000000000000000000005b7fffffffff0000000000000000000000000000000000000000000000000000000060405191168152f35b60205f610583565b3461012c575f60031936011261012c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461012c57602060031936011261012c5761061e610fd8565b73ffffffffffffffffffffffffffffffffffffffff7ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a00541633036106b057803b1561066e5761066c90611210565b005b73ffffffffffffffffffffffffffffffffffffffff907fc2f31e5e000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b7f068ca9d8000000000000000000000000000000000000000000000000000000005f523360045260245ffd5b3461012c57602060031936011261012c5773ffffffffffffffffffffffffffffffffffffffff61070a610fd8565b165f525f60205260405f20604051808260208294549384815201905f5260205f20925f5b81811061086b57505061074392500382610ffb565b805190610768610752836110d2565b926107606040519485610ffb565b8084526110d2565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06020840192013683378051905f805b8382106107fa578486604051918291602083019060208452518091526040830191905f5b8181106107cb575050500390f35b825173ffffffffffffffffffffffffffffffffffffffff168452859450602093840193909201916001016107bd565b61082373ffffffffffffffffffffffffffffffffffffffff61081c84866110ea565b5116611138565b15610862576001809173ffffffffffffffffffffffffffffffffffffffff61084b85876110ea565b5116610857828a6110ea565b5201915b0190610799565b9060019061085b565b845483526001948501948694506020909301920161072e565b3461012c575f60031936011261012c5773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630036108fb5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b7fe07c8dba000000000000000000000000000000000000000000000000000000005f5260045ffd5b604060031936011261012c57610937610fd8565b6024359067ffffffffffffffff821161012c573660238301121561012c5781600401359061096482611069565b916109726040519384610ffb565b8083526020830193366024838301011161012c57815f9260246020930187378401015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016803014908115610d57575b506108fb576044604073ffffffffffffffffffffffffffffffffffffffff7fb8e950798a2a06a6f5727a94041b193569f4f67d69a0de3cf866d93822e7fa0054168151928380927fd1f856ee0000000000000000000000000000000000000000000000000000000082525f60048301523360248301525afa908115610d4c575f91610d01575b5015610c7d5773ffffffffffffffffffffffffffffffffffffffff8116926040517f52d1902d000000000000000000000000000000000000000000000000000000008152602081600481885afa5f9181610c49575b50610ae357847f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b807f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc869203610c1e5750823b15610bf357807fffffffffffffffffffffffff00000000000000000000000000000000000000007f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2825115610bc1575f809161066c945190845af4610bbb6110a3565b9161153a565b50505034610bcb57005b7fb398979f000000000000000000000000000000000000000000000000000000005f5260045ffd5b7f4c9c8ce3000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b7faa1d49a4000000000000000000000000000000000000000000000000000000005f5260045260245ffd5b9091506020813d602011610c75575b81610c6560209383610ffb565b8101031261012c57519086610ab2565b3d9150610c58565b60846040517f6317e35f00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792061646d696e2063616e20706572666f726d2074686973206163746960448201527f6f6e2e00000000000000000000000000000000000000000000000000000000006064820152fd5b90506040813d604011610d44575b81610d1c60409383610ffb565b8101031261012c576020610d2f8261112b565b91015163ffffffff81160361012c5784610a5d565b3d9150610d0f565b6040513d5f823e3d90fd5b905073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54161415846109d7565b3461012c57604060031936011261012c57610db2610fd8565b60243567ffffffffffffffff811161012c573660238201121561012c57806004013567ffffffffffffffff811161012c57366024828401011161012c57610df883611138565b15610f96575f91601f610ea9608485947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe060405194828693602460208601997fd1f57894000000000000000000000000000000000000000000000000000000008b523382880152604060448801528260648801520186860137888582860101520116810103017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282610ffb565b519082855af1610eb76110a3565b5015610f1257335f525f602052610ee973ffffffffffffffffffffffffffffffffffffffff60405f20921680926112d0565b5033907f164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d795f80a3005b60846040517f47fc3bab00000000000000000000000000000000000000000000000000000000815260206004820152602760248201527f4572726f7220647572696e6720706f6c69637920696e697469616c697a61746960448201527f6f6e2063616c6c000000000000000000000000000000000000000000000000006064820152fd5b73ffffffffffffffffffffffffffffffffffffffff837fe63549fa000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012c57565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761103c57604052565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b67ffffffffffffffff811161103c57601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660200190565b3d156110cd573d906110b482611069565b916110c26040519384610ffb565b82523d5f602084013e565b606090565b67ffffffffffffffff811161103c5760051b60200190565b80518210156110fe5760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5190811515820361012c57565b73ffffffffffffffffffffffffffffffffffffffff16801515908161115b575090565b9050604051907f9d260809000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115610d4c575f916111d9575090565b90506020813d602011611208575b816111f460209383610ffb565b8101031261012c576112059061112b565b90565b3d91506111e7565b602073ffffffffffffffffffffffffffffffffffffffff7f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9216807fffffffffffffffffffffffff00000000000000000000000000000000000000007ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a005416177ff3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0055604051908152a1565b80548210156110fe575f5260205f2001905f90565b5f828152600182016020526040902054611357578054906801000000000000000082101561103c578261134261130d8460018096018555846112bb565b81939154907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9060031b92831b921b19161790565b90558054925f520160205260405f2055600190565b50505f90565b906001820191815f528260205260405f20548015155f146114db577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81018181116114ae578254907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82019182116114ae57818103611479575b5050508054801561144c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff019061140f82826112bb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82549160031b1b19169055555f526020525f6040812055600190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b61149961148961130d93866112bb565b90549060031b1c928392866112bb565b90555f528360205260405f20555f80806113d7565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b505050505f90565b60ff7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a005460401c161561151257565b7fd7e6bcf8000000000000000000000000000000000000000000000000000000005f5260045ffd5b90611577575080511561154f57805190602001fd5b7fd6bda275000000000000000000000000000000000000000000000000000000005f5260045ffd5b815115806115ca575b611588575090565b73ffffffffffffffffffffffffffffffffffffffff907f9996b315000000000000000000000000000000000000000000000000000000005f521660045260245ffd5b50803b1561158056fea2646970667358221220057c58598f54b9385a4deaa7a40de35f032417baccf5eecb12fbc4fd5ed76c1864736f6c634300081a0033","sourceMap":"904:6459:59:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4360:14:173;;904:6459:59;;;;;;4360:26:173;;5002:70:59;;;;904:6459;;;;;;;;;;5002:70;5050:22;;;;:::i;:::-;5002:70;;;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;8837:64:92;904:6459:59;;;;;;4301:16:92;904:6459:59;;;;4726:16:92;;:34;;;;904:6459:59;4805:1:92;4790:16;:50;;;;904:6459:59;4855:13:92;:30;;;;904:6459:59;4851:91:92;;;904:6459:59;;4805:1:92;904:6459:59;;;;;8837:64:92;904:6459:59;4979:67:92;;904:6459:59;6893:76:92;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;2222:16:90;;;:::i;:::-;6893:76:92;;:::i;:::-;904:6459:59;;3295:62:44;904:6459:59;;;3295:62:44;904:6459:59;5066:101:92;;904:6459:59;5066:101:92;904:6459:59;8837:64:92;904:6459:59;;8837:64:92;904:6459:59;5142:14:92;904:6459:59;;;4805:1:92;904:6459:59;;5142:14:92;904:6459:59;4979:67:92;904:6459:59;;;;8837:64:92;904:6459:59;4979:67:92;;;4851:91;4908:23;904:6459:59;4908:23:92;904:6459:59;;4908:23:92;4855:30;4872:13;;;4855:30;;;4790:50;4818:4;4810:25;:30;;-1:-1:-1;4790:50:92;;4726:34;;;-1:-1:-1;4726:34:92;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;1782:71:90;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;4552:10;904:6459;;;;;8703:53:173;904:6459:59;;;;;;8703:53:173;;;:::i;:::-;;4552:10:59;4593:33;;904:6459;4593:33;;904:6459;;;;;;-1:-1:-1;;904:6459:59;;;;;1782:71:90;904:6459:59;;;;;4698:71:90;;;904:6459:59;;4698:71:90;904:6459:59;;;;;;;;4698:71:90;904:6459:59;;4698:71:90;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;;1521:54;904:6459;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;1782:71:90;904:6459:59;;966:10:96;4258:21:90;4254:92;;4359:24;;:29;4355:110;;4488:12;;;:::i;:::-;904:6459:59;4355:110:90;904:6459:59;4411:43:90;;904:6459:59;4411:43:90;904:6459:59;;;;;4411:43:90;4254:92;4302:33;904:6459:59;4302:33:90;966:10:96;904:6459:59;;;;4302:33:90;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;6278:13;904:6459;;6341:15;;;;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;6358:20;6399:27;904:6459;6414:11;;;;:::i;:::-;904:6459;;6399:27;:::i;:::-;6398:28;6394:42;;904:6459;6464:11;;904:6459;6464:11;;;;:::i;:::-;904:6459;;6450:25;;;;:::i;:::-;904:6459;;6358:20;6326:13;904:6459;6326:13;;;6394:42;6428:8;904:6459;6428:8;;;904:6459;;;;;;;;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;-1:-1:-1;;904:6459:59;;;;;;5115:6:93;904:6459:59;5106:4:93;5098:23;5094:145;;904:6459:59;;;811:66:130;904:6459:59;;;5094:145:93;5199:29;904:6459:59;5199:29:93;904:6459:59;;5199:29:93;904:6459:59;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4692:6:93;904:6459:59;4683:4:93;;4675:23;:120;;;;;904:6459:59;4658:251:93;;;3058:30:44;904:6459:59;;3295:62:44;904:6459:59;;;;3058:30:44;;;;904:6459:59;3058:30:44;;904:6459:59;;3058:30:44;;904:6459:59;1893:10:44;904:6459:59;;;;3058:30:44;;;;;;;904:6459:59;3058:30:44;;;904:6459:59;1869:35:44;;1865:140;;904:6459:59;;;;;;;6156:52:93;;904:6459:59;6156:52:93;904:6459:59;6156:52:93;;;;904:6459:59;;6156:52:93;;;904:6459:59;-1:-1:-1;6152:437:93;;6518:60;;904:6459:59;6518:60:93;904:6459:59;;;;6518:60:93;6152:437;6250:40;811:66:130;6250:40:93;;;6246:120;;1748:29:130;;;:34;1744:119;;904:6459:59;;811:66:130;904:6459:59;;;811:66:130;904:6459:59;2407:36:130;904:6459:59;2407:36:130;;904:6459:59;;2458:15:130;:11;;904:6459:59;4049:25:151;;4091:55;4049:25;;;;;;;;:::i;:::-;4091:55;;:::i;2454:148:130:-;6163:9;;;;6159:70;;904:6459:59;6159:70:130;6199:19;904:6459:59;6199:19:130;904:6459:59;;6199:19:130;1744:119;1805:47;904:6459:59;1805:47:130;904:6459:59;;;;1805:47:130;6246:120:93;6317:34;904:6459:59;6317:34:93;904:6459:59;;;;6317:34:93;6156:52;;;;904:6459:59;6156:52:93;;904:6459:59;6156:52:93;;;;;;904:6459:59;6156:52:93;;;:::i;:::-;;;904:6459:59;;;;;6156:52:93;;;;;;;-1:-1:-1;6156:52:93;;1865:140:44;1927:67;904:6459:59;;1927:67:44;;;904:6459:59;;1927:67:44;;520:1:42;904:6459:59;;520:1:42;;904:6459:59;520:1:42;3058:30:44;904:6459:59;;520:1:42;;;;;;1927:67:44;3058:30;;;904:6459:59;3058:30:44;;904:6459:59;3058:30:44;;;;;;904:6459:59;3058:30:44;;;:::i;:::-;;;904:6459:59;;;;;;;;:::i;:::-;;;;;;;;;;3058:30:44;;;;;;-1:-1:-1;3058:30:44;;;904:6459:59;;;;;;;;;4675:120:93;904:6459:59;;;811:66:130;904:6459:59;;4753:42:93;;4675:120;;;904:6459:59;;;;;-1:-1:-1;;904:6459:59;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3775:22;;;:::i;:::-;3774:23;3770:67;;904:6459;;;3983:54;904:6459;;;;;;3983:54;;;;904:6459;;3983:54;;;;;;4019:10;3983:54;;;904:6459;;;;;;;;;;;;;;;;;;;;;;;;;;;3983:54;;904:6459;3983:54;;;;;;:::i;:::-;3971:67;;;;;;;;:::i;:::-;;4052:8;4048:91;;4019:10;904:6459;;;;;8382:50:173;904:6459:59;;;;;;8382:50:173;;;:::i;:::-;;4019:10:59;4259:33;;904:6459;4259:33;;904:6459;4048:91;904:6459;;;4069:70;;;904:6459;;4069:70;;904:6459;;;;;;;;;;;;;;;;4069:70;3770:67;904:6459;3806:31;;904:6459;3806:31;904:6459;;;;;3806:31;904:6459;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;904:6459:59;;;;;-1:-1:-1;904:6459:59;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;-1:-1:-1;904:6459:59;;;;:::o;:::-;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;7213:148::-;904:6459;;7299:20;;;:54;;;;7291:63;7213:148;:::o;7299:54::-;904:6459;;;;7323:30;904:6459;7323:30;;;;;904:6459;;7323:12;:30;:12;904:6459;7323:12;904:6459;7323:30;;;;;;;7317:1;7323:30;;;7299:54;7213:148;:::o;7323:30::-;;;904:6459;7323:30;;904:6459;7323:30;;;;;;904:6459;7323:30;;;:::i;:::-;;;904:6459;;;;;;;:::i;:::-;7213:148;:::o;7323:30::-;;;-1:-1:-1;7323:30:59;;4964:220:90;904:6459:59;;5147:30:90;4964:220;904:6459:59;;;1782:71:90;904:6459:59;;;1782:71:90;904:6459:59;;;;;;5147:30:90;4964:220::o;904:6459:59:-;;;;;;;;-1:-1:-1;904:6459:59;;-1:-1:-1;904:6459:59;;;-1:-1:-1;904:6459:59;:::o;2241:406:173:-;-1:-1:-1;904:6459:59;;;4360:14:173;;;904:6459:59;;;;;;2325:21:173;;904:6459:59;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;2520:14:173;904:6459:59;;;;;;;2576:11:173;:::o;2320:321::-;2618:12;;904:6459:59;2618:12:173;:::o;2815:1368::-;;3010:14;;;904:6459:59;;;;;;;;;;;3046:13:173;;;3042:1135;3046:13;;;904:6459:59;;;;;;;;;;;;;;;;;;;3521:23:173;;;3517:378;;3042:1135;904:6459:59;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3010:14:173;4112:11;:::o;904:6459:59:-;;;;;;;;;;3517:378:173;904:6459:59;3584:22:173;3705:23;3584:22;;;:::i;:::-;904:6459:59;;;;;;3705:23:173;;;;;:::i;904:6459:59:-;;;;;;;;;;;;3517:378:173;;;;;904:6459:59;;;;;;;;;;3042:1135:173;4154:12;;;;904:6459:59;4154:12:173;:::o;7084:141:92:-;904:6459:59;8837:64:92;904:6459:59;;;;7150:18:92;7146:73;;7084:141::o;7146:73::-;7191:17;-1:-1:-1;7191:17:92;;-1:-1:-1;7191:17:92;4421:582:151;;4593:8;;-1:-1:-1;904:6459:59;;5674:21:151;:17;;5799:158;;;;;;5670:354;5994:19;5694:1;5994:19;;5694:1;5994:19;4589:408;904:6459:59;;4841:22:151;:49;;;4589:408;4837:119;;4969:17;;:::o;4837:119::-;904:6459:59;4917:24:151;;4862:1;4917:24;904:6459:59;4917:24:151;904:6459:59;;4862:1:151;4917:24;4841:49;4867:18;;;:23;4841:49;","linkReferences":{},"immutableReferences":{"50482":[{"start":2219,"length":32},{"start":2476,"length":32}],"5931":[{"start":1505,"length":32},{"start":4518,"length":32}]}},"methodIdentifiers":{"POLICY_AUDIT()":"82e2b7c8","UPGRADE_INTERFACE_VERSION()":"ad3cb1cc","authority()":"bf7e214f","authorizePolicy(address,bytes)":"2f6cc102","getAuthorizedPolicies(address)":"591b43c5","initialize(address)":"c4d66de8","isConsumingScheduledOp()":"8fb36037","isPolicyAuthorized(address,address)":"ca89d8b2","proxiableUUID()":"52d1902d","revokePolicy(address)":"9fda230a","setAuthority(address)":"7a9e5e4b","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policyAudit\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AccessManagedInvalidAuthority\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"},{\"internalType\":\"uint32\",\"name\":\"delay\",\"type\":\"uint32\"}],\"name\":\"AccessManagedRequiredDelay\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"AccessManagedUnauthorized\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"target\",\"type\":\"address\"}],\"name\":\"AddressEmptyCode\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"ERC1967InvalidImplementation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ERC1967NonPayable\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"FailedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"InvalidNotAuditedPolicy\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UUPSUnauthorizedCallContext\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"slot\",\"type\":\"bytes32\"}],\"name\":\"UUPSUnsupportedProxiableUUID\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"authority\",\"type\":\"address\"}],\"name\":\"AuthorityUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"RightsRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"POLICY_AUDIT\",\"outputs\":[{\"internalType\":\"contract IPolicyAuditorVerifiable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"UPGRADE_INTERFACE_VERSION\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"authority\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"authorizePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAuthorizedPolicies\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"accessManager\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isConsumingScheduledOp\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isPolicyAuthorized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"policy\",\"type\":\"address\"}],\"name\":\"revokePolicy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newAuthority\",\"type\":\"address\"}],\"name\":\"setAuthority\",\"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\"}],\"devdoc\":{\"errors\":{\"AddressEmptyCode(address)\":[{\"details\":\"There's no code at `target` (it is not a contract).\"}],\"ERC1967InvalidImplementation(address)\":[{\"details\":\"The `implementation` of the proxy is invalid.\"}],\"ERC1967NonPayable()\":[{\"details\":\"An upgrade function sees `msg.value > 0` that may be lost.\"}],\"FailedCall()\":[{\"details\":\"A call to an address target failed. The target may have reverted.\"}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"InvalidNotAuditedPolicy(address)\":[{\"details\":\"Error thrown when a policy has not been audited or approved for operation.\",\"params\":{\"policy\":\"The address of the unaudited policy.\"}}],\"InvalidPolicyInitialization(string)\":[{\"details\":\"Error thrown when there is an issue with the policy setup.\",\"params\":{\"reason\":\"A string explaining the reason for the invalid policy setup.\"}}],\"InvalidUnauthorizedOperation(string)\":[{\"details\":\"Error thrown when an unauthorized operation is attempted.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}],\"UUPSUnauthorizedCallContext()\":[{\"details\":\"The call is from an unauthorized context.\"}],\"UUPSUnsupportedProxiableUUID(bytes32)\":[{\"details\":\"The storage `slot` is unsupported as a UUID.\"}]},\"events\":{\"AuthorityUpdated(address)\":{\"details\":\"Authority that manages this contract was updated.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"RightsGranted(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address granted rights.\"}},\"RightsRevoked(address,address)\":{\"params\":{\"holder\":\"The address of the asset rights holder.\",\"policy\":\"The policy contract address whose rights are being revoked.\"}},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"authority()\":{\"details\":\"Returns the current authority.\"},\"authorizePolicy(address,bytes)\":{\"params\":{\"data\":\"The data to initialize policy.\",\"policy\":\"The address of the policy contract to be initialized and authorized.\"}},\"constructor\":{\"custom:oz-upgrades-unsafe-allow\":\"constructor\"},\"getAuthorizedPolicies(address)\":{\"details\":\"This function returns an array of policy addresses that have been granted rights by the holder.\",\"params\":{\"holder\":\"The address of the asset rights holder whose authorized policies are being queried.\"}},\"isConsumingScheduledOp()\":{\"details\":\"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls.\"},\"isPolicyAuthorized(address,address)\":{\"details\":\"Verify if the specified policy contract has been delegated the rights by the asset holder.\",\"params\":{\"holder\":\"the asset rights holder to check for delegation.\",\"policy\":\"The address of the policy contract to check for delegation.\"}},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"revokePolicy(address)\":{\"params\":{\"policy\":\"The address of the policy contract whose rights delegation is being revoked.\"}},\"setAuthority(address)\":{\"details\":\"Transfers control to a new authority. The caller must be the current authority.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"stateVariables\":{\"POLICY_AUDIT\":{\"custom:oz-upgrades-unsafe-allow\":\"state-variable-immutable\"},\"_authorizedPolicies\":{\"details\":\"Mapping to store the delegated rights for each policy contract (address)\"}},\"version\":1},\"userdoc\":{\"events\":{\"RightsGranted(address,address)\":{\"notice\":\"Emitted when rights are granted to a policy for content.\"},\"RightsRevoked(address,address)\":{\"notice\":\"Emitted when rights are revoked from a policy for content.\"}},\"kind\":\"user\",\"methods\":{\"authorizePolicy(address,bytes)\":{\"notice\":\"Initializes and authorizes a policy contract for content held by the holder.\"},\"getAuthorizedPolicies(address)\":{\"notice\":\"Retrieves all policies authorized by a specific content holder.\"},\"initialize(address)\":{\"notice\":\"Initializes the proxy state.\"},\"revokePolicy(address)\":{\"notice\":\"Revokes the delegation of rights to a policy contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/rights/RightsPolicyAuthorizer.sol\":\"RightsPolicyAuthorizer\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=contracts/\",\":ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":solady/=lib/solady/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\"],\"viaIR\":true},\"sources\":{\"contracts/core/interfaces/access/IAccessManager.sol\":{\"keccak256\":\"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e\",\"dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ\"]},\"contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836\",\"dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv\"]},\"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol\":{\"keccak256\":\"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9\",\"dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4\"]},\"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130\",\"dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4\"]},\"contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"contracts/core/primitives/Constants.sol\":{\"keccak256\":\"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1\",\"dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3\"]},\"contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]},\"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol\":{\"keccak256\":\"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2\",\"dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj\"]},\"contracts/rights/RightsPolicyAuthorizer.sol\":{\"keccak256\":\"0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d\",\"dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb\"]},\"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol\":{\"keccak256\":\"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447\",\"dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e\",\"dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr\"]},\"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol\":{\"keccak256\":\"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e\",\"dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol\":{\"keccak256\":\"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694\",\"dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol\":{\"keccak256\":\"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4\",\"dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6\"]},\"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol\":{\"keccak256\":\"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c\",\"dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH\"]},\"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d\",\"dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7\"]},\"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196\",\"dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA\"]},\"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol\":{\"keccak256\":\"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c\",\"dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR\"]},\"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa\",\"dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23\",\"dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb\"]},\"node_modules/@openzeppelin/contracts/utils/Errors.sol\":{\"keccak256\":\"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf\",\"dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB\"]},\"node_modules/@openzeppelin/contracts/utils/Panic.sol\":{\"keccak256\":\"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a\",\"dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG\"]},\"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b\",\"dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d\",\"dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1\"]},\"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol\":{\"keccak256\":\"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8\",\"dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy\"]},\"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol\":{\"keccak256\":\"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f\",\"dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz\"]},\"node_modules/@openzeppelin/contracts/utils/types/Time.sol\":{\"keccak256\":\"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6\",\"dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"policyAudit","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"type":"error","name":"AccessManagedInvalidAuthority"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"type":"error","name":"AccessManagedRequiredDelay"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"type":"error","name":"AccessManagedUnauthorized"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"type":"error","name":"AddressEmptyCode"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"type":"error","name":"ERC1967InvalidImplementation"},{"inputs":[],"type":"error","name":"ERC1967NonPayable"},{"inputs":[],"type":"error","name":"FailedCall"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"type":"error","name":"InvalidNotAuditedPolicy"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"","type":"string"}],"type":"error","name":"InvalidUnauthorizedOperation"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"UUPSUnauthorizedCallContext"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"type":"error","name":"UUPSUnsupportedProxiableUUID"},{"inputs":[{"internalType":"address","name":"authority","type":"address","indexed":false}],"type":"event","name":"AuthorityUpdated","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsGranted","anonymous":false},{"inputs":[{"internalType":"address","name":"policy","type":"address","indexed":true},{"internalType":"address","name":"holder","type":"address","indexed":true}],"type":"event","name":"RightsRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"POLICY_AUDIT","outputs":[{"internalType":"contract IPolicyAuditorVerifiable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"authorizePolicy"},{"inputs":[{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAuthorizedPolicies","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[{"internalType":"address","name":"accessManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isPolicyAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"policy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokePolicy"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setAuthority"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"authority()":{"details":"Returns the current authority."},"authorizePolicy(address,bytes)":{"params":{"data":"The data to initialize policy.","policy":"The address of the policy contract to be initialized and authorized."}},"constructor":{"custom:oz-upgrades-unsafe-allow":"constructor"},"getAuthorizedPolicies(address)":{"details":"This function returns an array of policy addresses that have been granted rights by the holder.","params":{"holder":"The address of the asset rights holder whose authorized policies are being queried."}},"isConsumingScheduledOp()":{"details":"Returns true only in the context of a delayed restricted call, at the moment that the scheduled operation is being consumed. Prevents denial of service for delayed restricted calls in the case that the contract performs attacker controlled calls."},"isPolicyAuthorized(address,address)":{"details":"Verify if the specified policy contract has been delegated the rights by the asset holder.","params":{"holder":"the asset rights holder to check for delegation.","policy":"The address of the policy contract to check for delegation."}},"proxiableUUID()":{"details":"Implementation of the ERC-1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"revokePolicy(address)":{"params":{"policy":"The address of the policy contract whose rights delegation is being revoked."}},"setAuthority(address)":{"details":"Transfers control to a new authority. The caller must be the current authority."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"authorizePolicy(address,bytes)":{"notice":"Initializes and authorizes a policy contract for content held by the holder."},"getAuthorizedPolicies(address)":{"notice":"Retrieves all policies authorized by a specific content holder."},"initialize(address)":{"notice":"Initializes the proxy state."},"revokePolicy(address)":{"notice":"Revokes the delegation of rights to a policy contract."}},"version":1}},"settings":{"remappings":["@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=contracts/","ds-test/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/lib/ds-test/src/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","solady/=lib/solady/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/rights/RightsPolicyAuthorizer.sol":"RightsPolicyAuthorizer"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/core/interfaces/access/IAccessManager.sol":{"keccak256":"0x839438bf1e2e7432db801b4734831297e075cb120cf91864fb9c52c3ddccbf0f","urls":["bzz-raw://8008d58c268d046c9bcd9ac5cd4244a666688604bf6be9b243610e041a3c285e","dweb:/ipfs/QmXGXhm8YhdNToMzmAq7aLXQv2vXPkhrTFTwaAYhnhrJkJ"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xde948687c6e43423f1406a2e7f7f17b5f373e445b4612872b2a087949a71dbb4","urls":["bzz-raw://e5da4404cdf33625a3bbf8ab58d9acf0bfd80b78c53658f3bfb365a9c568e836","dweb:/ipfs/QmaKqfhCLzBHoyg3GhUCQcEZo89arwe3YEgoysCWJUPWqv"],"license":"MIT"},"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol":{"keccak256":"0xa16f215a70bb82ebf310086ddd0e3356c8b889146e8c3f64342574cc5d111afa","urls":["bzz-raw://dd46a58675c87225968a17ccf79339f64585310fb3a845e3b4b127222a23d2c9","dweb:/ipfs/QmQEsBEZKJX4h84uqTCAGXQqm81fAtjE1oCGiJ6fm9qLi4"],"license":"MIT"},"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol":{"keccak256":"0x7788d64a9d12536ad06115d72faef14dfc131def88bc15e8901d64d67f231419","urls":["bzz-raw://ecb519a42d82d23498f17644216cd4041b87ee126c2b471f05418af2bb6ae130","dweb:/ipfs/QmTLZw15MB1aXZCvbXfvDozqPm29c3CqiSsgSdMpXEM3o4"],"license":"MIT"},"contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"contracts/core/primitives/Constants.sol":{"keccak256":"0xd3dac9b10f88534046b904f281588f0293fa603ec5c68ffeeaf64eec88ebe65e","urls":["bzz-raw://d9dddce59781d9a41c012aeff533cca898b1553924f09edf192d0f534f4cc4a1","dweb:/ipfs/QmdKPss1KNAneMGaTXqQSWraN1s6MDCHkMgetn5BVxzXn3"],"license":"MIT"},"contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"},"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol":{"keccak256":"0xfeb8d79a1f7938a21fb22008f0e93934de776fcaa1a766517fd20d1a8688a8df","urls":["bzz-raw://0f14114e03e715bb2c539bd98c86c1f9baf3f0549414be68c04d04d61ca855b2","dweb:/ipfs/QmfJSfM9cy57uQ8M336QvUHJmLjsiu68WotYqe33zB5YLj"],"license":"MIT"},"contracts/rights/RightsPolicyAuthorizer.sol":{"keccak256":"0x7085af875aabb7e28420dceb6e73101b66642712e03b4319cc9de389b3ccf27f","urls":["bzz-raw://0c0d12e58e6e284ee12c61eab7e9f245d263b9fd9593575d938b54dc36c4e02d","dweb:/ipfs/QmZyJgKPpDfns4TziFziFnmmUVDRy5gkUXE4kNDayuCbeb"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol":{"keccak256":"0x89017bb026363fdc9fdc4b7c995aaf83e4c5af5c022eafa2e96352f843297373","urls":["bzz-raw://dff6e61ba53c87ad06cbdddb9ff36dec215a41beff91746a80f4a9a32d37f447","dweb:/ipfs/QmUm6hznJTihCTaRx7TXHXKbgyuDEEgehyRzi7TAs8GLvB"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xf72d3b11f41fccbbdcacd121f994daab8267ccfceb1fb4f247e4ba274c169d27","urls":["bzz-raw://1e46ee40ddc9e2009176ce5d76aa2c046fd68f2ed52d02d77db191365b7c5b2e","dweb:/ipfs/QmZnxgPmCCHosdvbh4J65uTaFYeGtZGzQ1sXRdeh1y68Zr"],"license":"MIT"},"node_modules/@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/AuthorityUtils.sol":{"keccak256":"0xb3875997b0d8705e29aa20fee88e1dfef93df438794ae1ad8ba2eb016a4dd4e4","urls":["bzz-raw://f9e50192f7c7a22829cacfbd14221c3a3d869da64a2333f330d527777f275d9e","dweb:/ipfs/QmaxMQb26ggDmW3SDwJ8y6hRC8dbWbLMpUZBVzZtXqzycJ"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManaged.sol":{"keccak256":"0xaba93d42cd70e1418782951132d97b31ddce5f50ad81090884b6d0e41caac9d6","urls":["bzz-raw://b110886f83e3e98a11255a3b56790322e8d83e513304dde71299406685fc6694","dweb:/ipfs/QmPwroS7MUUk1EmsvaJqU6aarhQ8ewJtJMg7xxmTsaxZEv"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAccessManager.sol":{"keccak256":"0x9be2d08a326515805bc9cf6315b7953f8d1ebe88abf48c2d645fb1fa8211a0e2","urls":["bzz-raw://e750d656e37efaefbb2300051ec2c4c725db266c5ff89bc985f7ecb8d214c4f4","dweb:/ipfs/QmT51FsZes2n2nrLLh3d8YkBYKY43CtwScZxixcLGzL9r6"],"license":"MIT"},"node_modules/@openzeppelin/contracts/access/manager/IAuthority.sol":{"keccak256":"0x4cc0766bd7fb7b3bafb70afa2a93b6e313a0baec7a35ad1b57505be7861c1030","urls":["bzz-raw://85871c47ac00d10664b858ef71ecd8b9787c1d313e544ab2c57210c520a3c06c","dweb:/ipfs/QmUMTwojLzURuHftQLzAVuDmib9roj4KwcHCkg3LhZ2AdH"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/IERC1967.sol":{"keccak256":"0xb25a4f11fa80c702bf5cd85adec90e6f6f507f32f4a8e6f5dbc31e8c10029486","urls":["bzz-raw://6917f8a323e7811f041aecd4d9fd6e92455a6fba38a797ac6f6e208c7912b79d","dweb:/ipfs/QmShuYv55wYHGi4EFkDB8QfF7ZCHoKk2efyz3AWY1ExSq7"],"license":"MIT"},"node_modules/@openzeppelin/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0xc42facb5094f2f35f066a7155bda23545e39a3156faef3ddc00185544443ba7d","urls":["bzz-raw://d3b36282ab029b46bd082619a308a2ea11c309967b9425b7b7a6eb0b0c1c3196","dweb:/ipfs/QmP2YVfDB2FoREax3vJu7QhDnyYRMw52WPrCD4vdT2kuDA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol":{"keccak256":"0x911c3346ee26afe188f3b9dc267ef62a7ccf940aba1afa963e3922f0ca3d8a06","urls":["bzz-raw://04539f4419e44a831807d7203375d2bc6a733da256efd02e51290f5d5015218c","dweb:/ipfs/QmPZ97gsAAgaMRPiE2WJfkzRsudQnW5tPAvMgGj1jcTJtR"],"license":"MIT"},"node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xc59a78b07b44b2cf2e8ab4175fca91e8eca1eee2df7357b8d2a8833e5ea1f64c","urls":["bzz-raw://5aa4f07e65444784c29cd7bfcc2341b34381e4e5b5da9f0c5bd00d7f430e66fa","dweb:/ipfs/QmWRMh4Q9DpaU9GvsiXmDdoNYMyyece9if7hnfLz7uqzWM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Address.sol":{"keccak256":"0x9d8da059267bac779a2dbbb9a26c2acf00ca83085e105d62d5d4ef96054a47f5","urls":["bzz-raw://c78e2aa4313323cecd1ef12a8d6265b96beee1a199923abf55d9a2a9e291ad23","dweb:/ipfs/QmUTs2KStXucZezzFo3EYeqYu47utu56qrF7jj1Gue65vb"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Errors.sol":{"keccak256":"0x6afa713bfd42cf0f7656efa91201007ac465e42049d7de1d50753a373648c123","urls":["bzz-raw://ba1d02f4847670a1b83dec9f7d37f0b0418d6043447b69f3a29a5f9efc547fcf","dweb:/ipfs/QmQ7iH2keLNUKgq2xSWcRmuBE5eZ3F5whYAkAGzCNNoEWB"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/Panic.sol":{"keccak256":"0xf7fe324703a64fc51702311dc51562d5cb1497734f074e4f483bfb6717572d7a","urls":["bzz-raw://c6a5ff4f9fd8649b7ee20800b7fa387d3465bd77cf20c2d1068cd5c98e1ed57a","dweb:/ipfs/QmVSaVJf9FXFhdYEYeCEfjMVHrxDh5qL4CGkxdMWpQCrqG"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/StorageSlot.sol":{"keccak256":"0xcf74f855663ce2ae00ed8352666b7935f6cddea2932fdf2c3ecd30a9b1cd0e97","urls":["bzz-raw://9f660b1f351b757dfe01438e59888f31f33ded3afcf5cb5b0d9bf9aa6f320a8b","dweb:/ipfs/QmarDJ5hZEgBtCmmrVzEZWjub9769eD686jmzb2XpSU1cM"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/Math.sol":{"keccak256":"0xa00be322d7db5786750ce0ac7e2f5b633ac30a5ed5fa1ced1e74acfc19acecea","urls":["bzz-raw://6c84e822f87cbdc4082533b626667b6928715bb2b1e8e7eb96954cebb9e38c8d","dweb:/ipfs/QmZmy9dgxLTerBAQDuuHqbL6EpgRxddqgv5KmwpXYVbKz1"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/math/SafeCast.sol":{"keccak256":"0x195533c86d0ef72bcc06456a4f66a9b941f38eb403739b00f21fd7c1abd1ae54","urls":["bzz-raw://b1d578337048cad08c1c03041cca5978eff5428aa130c781b271ad9e5566e1f8","dweb:/ipfs/QmPFKL2r9CBsMwmUqqdcFPfHZB2qcs9g1HDrPxzWSxomvy"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol":{"keccak256":"0x9b161e97b8967d4bc0c08d25741889a30692cdda4b71910bf1b0e315f1962212","urls":["bzz-raw://821500c39d095eaa25b06f46e65f1d0e97c4c96b39227f79077dee7d9e84051f","dweb:/ipfs/QmSTeGorKzSWF6HAmxo32uCZiEuKNvreQdUiX1AaYtUMTz"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/types/Time.sol":{"keccak256":"0x36776530f012618bc7526ceb28e77b85e582cb12d9b9466a71d4bd6bf952e4cc","urls":["bzz-raw://9f867d046908497287d8a67643dd5d7e38c4027af4ab0a74ffbe1d6790c383c6","dweb:/ipfs/QmQ7s9gMP1nkwThFmoDifnGgpUMsMe5q5ZrAxGDsNnRGza"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5937,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_authorizedPolicies","offset":0,"slot":"0","type":"t_mapping(t_address,t_struct(AddressSet)69868_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_struct(AddressSet)69868_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct EnumerableSet.AddressSet)","numberOfBytes":"32","value":"t_struct(AddressSet)69868_storage"},"t_mapping(t_bytes32,t_uint256)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(AddressSet)69868_storage":{"encoding":"inplace","label":"struct EnumerableSet.AddressSet","numberOfBytes":"64","members":[{"astId":69867,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_inner","offset":0,"slot":"0","type":"t_struct(Set)69553_storage"}]},"t_struct(Set)69553_storage":{"encoding":"inplace","label":"struct EnumerableSet.Set","numberOfBytes":"64","members":[{"astId":69548,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_values","offset":0,"slot":"0","type":"t_array(t_bytes32)dyn_storage"},{"astId":69552,"contract":"contracts/rights/RightsPolicyAuthorizer.sol:RightsPolicyAuthorizer","label":"_positions","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_uint256)"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/rights/RightsPolicyAuthorizer.sol","id":6203,"exportedSymbols":{"AccessControlledUpgradeable":[2660],"EnumerableSet":[70155],"IPolicy":[1353],"IPolicyAuditorVerifiable":[1399],"IRightsPolicyAuthorizer":[1482],"Initializable":[50462],"LoopOps":[2051],"RightsPolicyAuthorizer":[6202],"UUPSUpgradeable":[50644]},"nodeType":"SourceUnit","src":"124:7240:59","nodes":[{"id":5896,"nodeType":"PragmaDirective","src":"124:23:59","nodes":[],"literals":["solidity","0.8",".26"]},{"id":5898,"nodeType":"ImportDirective","src":"149:98:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":50463,"symbolAliases":[{"foreign":{"id":5897,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50462,"src":"158:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5900,"nodeType":"ImportDirective","src":"248:88:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts/utils/structs/EnumerableSet.sol","file":"@openzeppelin/contracts/utils/structs/EnumerableSet.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":70156,"symbolAliases":[{"foreign":{"id":5899,"name":"EnumerableSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70155,"src":"257:13:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5902,"nodeType":"ImportDirective","src":"337:102:59","nodes":[],"absolutePath":"node_modules/@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":50645,"symbolAliases":[{"foreign":{"id":5901,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50644,"src":"346:15:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5904,"nodeType":"ImportDirective","src":"440:115:59","nodes":[],"absolutePath":"contracts/core/primitives/upgradeable/AccessControlledUpgradeable.sol","file":"@synaps3/core/primitives/upgradeable/AccessControlledUpgradeable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":2661,"symbolAliases":[{"foreign":{"id":5903,"name":"AccessControlledUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2660,"src":"449:27:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5906,"nodeType":"ImportDirective","src":"557:72:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicy.sol","file":"@synaps3/core/interfaces/policies/IPolicy.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1354,"symbolAliases":[{"foreign":{"id":5905,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"566:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5908,"nodeType":"ImportDirective","src":"630:102:59","nodes":[],"absolutePath":"contracts/core/interfaces/rights/IRightsPolicyAuthorizer.sol","file":"@synaps3/core/interfaces/rights/IRightsPolicyAuthorizer.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1483,"symbolAliases":[{"foreign":{"id":5907,"name":"IRightsPolicyAuthorizer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1482,"src":"639:23:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5910,"nodeType":"ImportDirective","src":"733:106:59","nodes":[],"absolutePath":"contracts/core/interfaces/policies/IPolicyAuditorVerifiable.sol","file":"@synaps3/core/interfaces/policies/IPolicyAuditorVerifiable.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":1400,"symbolAliases":[{"foreign":{"id":5909,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"742:24:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5912,"nodeType":"ImportDirective","src":"840:62:59","nodes":[],"absolutePath":"contracts/core/libraries/LoopOps.sol","file":"@synaps3/core/libraries/LoopOps.sol","nameLocation":"-1:-1:-1","scope":6203,"sourceUnit":2052,"symbolAliases":[{"foreign":{"id":5911,"name":"LoopOps","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2051,"src":"849:7:59","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":6202,"nodeType":"ContractDefinition","src":"904:6459:59","nodes":[{"id":5923,"nodeType":"UsingForDirective","src":"1046:26:59","nodes":[],"global":false,"libraryName":{"id":5921,"name":"LoopOps","nameLocations":["1052:7:59"],"nodeType":"IdentifierPath","referencedDeclaration":2051,"src":"1052:7:59"},"typeName":{"id":5922,"name":"uint256","nodeType":"ElementaryTypeName","src":"1064:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":5927,"nodeType":"UsingForDirective","src":"1077:49:59","nodes":[],"global":false,"libraryName":{"id":5924,"name":"EnumerableSet","nameLocations":["1083:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":70155,"src":"1083:13:59"},"typeName":{"id":5926,"nodeType":"UserDefinedTypeName","pathNode":{"id":5925,"name":"EnumerableSet.AddressSet","nameLocations":["1101:13:59","1115:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69868,"src":"1101:24:59"},"referencedDeclaration":69868,"src":"1101:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},{"id":5931,"nodeType":"VariableDeclaration","src":"1521:54:59","nodes":[],"constant":false,"documentation":{"id":5928,"nodeType":"StructuredDocumentation","src":"1455:61:59","text":"@custom:oz-upgrades-unsafe-allow state-variable-immutable"},"functionSelector":"82e2b7c8","mutability":"immutable","name":"POLICY_AUDIT","nameLocation":"1563:12:59","scope":6202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"},"typeName":{"id":5930,"nodeType":"UserDefinedTypeName","pathNode":{"id":5929,"name":"IPolicyAuditorVerifiable","nameLocations":["1521:24:59"],"nodeType":"IdentifierPath","referencedDeclaration":1399,"src":"1521:24:59"},"referencedDeclaration":1399,"src":"1521:24:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"visibility":"public"},{"id":5937,"nodeType":"VariableDeclaration","src":"1668:72:59","nodes":[],"constant":false,"documentation":{"id":5932,"nodeType":"StructuredDocumentation","src":"1582:81:59","text":"@dev Mapping to store the delegated rights for each policy contract (address)"},"mutability":"mutable","name":"_authorizedPolicies","nameLocation":"1721:19:59","scope":6202,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"typeName":{"id":5936,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":5933,"name":"address","nodeType":"ElementaryTypeName","src":"1676:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1668:44:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":5935,"nodeType":"UserDefinedTypeName","pathNode":{"id":5934,"name":"EnumerableSet.AddressSet","nameLocations":["1687:13:59","1701:10:59"],"nodeType":"IdentifierPath","referencedDeclaration":69868,"src":"1687:24:59"},"referencedDeclaration":69868,"src":"1687:24:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage_ptr","typeString":"struct EnumerableSet.AddressSet"}}},"visibility":"private"},{"id":5944,"nodeType":"EventDefinition","src":"1947:68:59","nodes":[],"anonymous":false,"documentation":{"id":5938,"nodeType":"StructuredDocumentation","src":"1746:196:59","text":"@notice Emitted when rights are granted to a policy for content.\n @param policy The policy contract address granted rights.\n @param holder The address of the asset rights holder."},"eventSelector":"164745c0d5815644c1e92a17e242e89f9c0fd523fc3e94071b60f165692f3d79","name":"RightsGranted","nameLocation":"1953:13:59","parameters":{"id":5943,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5940,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"1983:6:59","nodeType":"VariableDeclaration","scope":5944,"src":"1967:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5939,"name":"address","nodeType":"ElementaryTypeName","src":"1967:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5942,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2007:6:59","nodeType":"VariableDeclaration","scope":5944,"src":"1991:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5941,"name":"address","nodeType":"ElementaryTypeName","src":"1991:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1966:48:59"}},{"id":5951,"nodeType":"EventDefinition","src":"2239:68:59","nodes":[],"anonymous":false,"documentation":{"id":5945,"nodeType":"StructuredDocumentation","src":"2020:214:59","text":"@notice Emitted when rights are revoked from a policy for content.\n @param policy The policy contract address whose rights are being revoked.\n @param holder The address of the asset rights holder."},"eventSelector":"e26ab5559d9c979fe9df51c8a6ac8f71ef871393f720d7bd56f2e600d1bb680e","name":"RightsRevoked","nameLocation":"2245:13:59","parameters":{"id":5950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5947,"indexed":true,"mutability":"mutable","name":"policy","nameLocation":"2275:6:59","nodeType":"VariableDeclaration","scope":5951,"src":"2259:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5946,"name":"address","nodeType":"ElementaryTypeName","src":"2259:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5949,"indexed":true,"mutability":"mutable","name":"holder","nameLocation":"2299:6:59","nodeType":"VariableDeclaration","scope":5951,"src":"2283:22:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5948,"name":"address","nodeType":"ElementaryTypeName","src":"2283:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2258:48:59"}},{"id":5956,"nodeType":"ErrorDefinition","src":"2460:46:59","nodes":[],"documentation":{"id":5952,"nodeType":"StructuredDocumentation","src":"2313:142:59","text":"@dev Error thrown when a policy has not been audited or approved for operation.\n @param policy The address of the unaudited policy."},"errorSelector":"e63549fa","name":"InvalidNotAuditedPolicy","nameLocation":"2466:23:59","parameters":{"id":5955,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5954,"mutability":"mutable","name":"policy","nameLocation":"2498:6:59","nodeType":"VariableDeclaration","scope":5956,"src":"2490:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5953,"name":"address","nodeType":"ElementaryTypeName","src":"2490:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2489:16:59"}},{"id":5961,"nodeType":"ErrorDefinition","src":"2666:49:59","nodes":[],"documentation":{"id":5957,"nodeType":"StructuredDocumentation","src":"2511:150:59","text":"@dev Error thrown when there is an issue with the policy setup.\n @param reason A string explaining the reason for the invalid policy setup."},"errorSelector":"47fc3bab","name":"InvalidPolicyInitialization","nameLocation":"2672:27:59","parameters":{"id":5960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5959,"mutability":"mutable","name":"reason","nameLocation":"2707:6:59","nodeType":"VariableDeclaration","scope":5961,"src":"2700:13:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":5958,"name":"string","nodeType":"ElementaryTypeName","src":"2700:6:59","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2699:15:59"}},{"id":5977,"nodeType":"FunctionDefinition","src":"2774:385:59","nodes":[],"body":{"id":5976,"nodeType":"Block","src":"2807:352:59","nodes":[],"statements":[{"documentation":"https://forum.openzeppelin.com/t/uupsupgradeable-vulnerability-post-mortem/15680\n https://forum.openzeppelin.com/t/what-does-disableinitializers-function-mean/28730/5","expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5967,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50430,"src":"3007:20:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5968,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3007:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5969,"nodeType":"ExpressionStatement","src":"3007:22:59"},{"expression":{"id":5974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5970,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"3100:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":5972,"name":"policyAudit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5964,"src":"3140:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5971,"name":"IPolicyAuditorVerifiable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1399,"src":"3115:24:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicyAuditorVerifiable_$1399_$","typeString":"type(contract IPolicyAuditorVerifiable)"}},"id":5973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3115:37:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"src":"3100:52:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"id":5975,"nodeType":"ExpressionStatement","src":"3100:52:59"}]},"documentation":{"id":5962,"nodeType":"StructuredDocumentation","src":"2721:48:59","text":"@custom:oz-upgrades-unsafe-allow constructor"},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":5965,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5964,"mutability":"mutable","name":"policyAudit","nameLocation":"2794:11:59","nodeType":"VariableDeclaration","scope":5977,"src":"2786:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5963,"name":"address","nodeType":"ElementaryTypeName","src":"2786:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2785:21:59"},"returnParameters":{"id":5966,"nodeType":"ParameterList","parameters":[],"src":"2807:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":5993,"nodeType":"FunctionDefinition","src":"3210:151:59","nodes":[],"body":{"id":5992,"nodeType":"Block","src":"3272:89:59","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5985,"name":"__UUPSUpgradeable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50516,"src":"3282:22:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3282:24:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5987,"nodeType":"ExpressionStatement","src":"3282:24:59"},{"expression":{"arguments":[{"id":5989,"name":"accessManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5980,"src":"3340:13:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":5988,"name":"__AccessControlled_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2595,"src":"3316:23:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":5990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3316:38:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5991,"nodeType":"ExpressionStatement","src":"3316:38:59"}]},"documentation":{"id":5978,"nodeType":"StructuredDocumentation","src":"3165:40:59","text":"@notice Initializes the proxy state."},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":5983,"kind":"modifierInvocation","modifierName":{"id":5982,"name":"initializer","nameLocations":["3260:11:59"],"nodeType":"IdentifierPath","referencedDeclaration":50316,"src":"3260:11:59"},"nodeType":"ModifierInvocation","src":"3260:11:59"}],"name":"initialize","nameLocation":"3219:10:59","parameters":{"id":5981,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5980,"mutability":"mutable","name":"accessManager","nameLocation":"3238:13:59","nodeType":"VariableDeclaration","scope":5993,"src":"3230:21:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5979,"name":"address","nodeType":"ElementaryTypeName","src":"3230:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3229:23:59"},"returnParameters":{"id":5984,"nodeType":"ParameterList","parameters":[],"src":"3272:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":6047,"nodeType":"FunctionDefinition","src":"3602:697:59","nodes":[],"body":{"id":6046,"nodeType":"Block","src":"3673:626:59","nodes":[],"statements":[{"condition":{"id":6004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3774:23:59","subExpression":{"arguments":[{"id":6002,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3790:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6001,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"3775:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6003,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3775:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6009,"nodeType":"IfStatement","src":"3770:67:59","trueBody":{"errorCall":{"arguments":[{"id":6006,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3830:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6005,"name":"InvalidNotAuditedPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5956,"src":"3806:23:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$_t_error_$","typeString":"function (address) pure returns (error)"}},"id":6007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3806:31:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6008,"nodeType":"RevertStatement","src":"3799:38:59"}},{"assignments":[6011,null],"declarations":[{"constant":false,"id":6011,"mutability":"mutable","name":"success","nameLocation":"3958:7:59","nodeType":"VariableDeclaration","scope":6046,"src":"3953:12:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6010,"name":"bool","nodeType":"ElementaryTypeName","src":"3953:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},null],"id":6024,"initialValue":{"arguments":[{"arguments":[{"expression":{"id":6016,"name":"IPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"3998:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPolicy_$1353_$","typeString":"type(contract IPolicy)"}},"id":6017,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4006:10:59","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1305,"src":"3998:18:59","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"}},{"components":[{"expression":{"id":6018,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4019:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6019,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4023:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4019:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":6020,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5998,"src":"4031:4:59","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"id":6021,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4018:18:59","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_bytes_calldata_ptr_$returns$__$","typeString":"function IPolicy.initialize(address,bytes calldata)"},{"typeIdentifier":"t_tuple$_t_address_$_t_bytes_calldata_ptr_$","typeString":"tuple(address,bytes calldata)"}],"expression":{"id":6014,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3983:3:59","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":6015,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3987:10:59","memberName":"encodeCall","nodeType":"MemberAccess","src":"3983:14:59","typeDescriptions":{"typeIdentifier":"t_function_abiencodecall_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":6022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3983:54:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":6012,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"3971:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3978:4:59","memberName":"call","nodeType":"MemberAccess","src":"3971:11:59","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":6023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3971:67:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"3952:86:59"},{"condition":{"id":6026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4052:8:59","subExpression":{"id":6025,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6011,"src":"4053:7:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6031,"nodeType":"IfStatement","src":"4048:91:59","trueBody":{"errorCall":{"arguments":[{"hexValue":"4572726f7220647572696e6720706f6c69637920696e697469616c697a6174696f6e2063616c6c","id":6028,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4097:41:59","typeDescriptions":{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""},"value":"Error during policy initialization call"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_466ff33af544a3258ce48b30829c401c1b82fc1a667216dc12b6fb6a650ffe3f","typeString":"literal_string \"Error during policy initialization call\""}],"id":6027,"name":"InvalidPolicyInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5961,"src":"4069:27:59","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":6029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4069:70:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":6030,"nodeType":"RevertStatement","src":"4062:77:59"}},{"expression":{"arguments":[{"id":6037,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"4185:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6032,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"4149:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6035,"indexExpression":{"expression":{"id":6033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4169:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4173:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4169:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4149:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6036,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4181:3:59","memberName":"add","nodeType":"MemberAccess","referencedDeclaration":69895,"src":"4149:35:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6038,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4149:43:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6039,"nodeType":"ExpressionStatement","src":"4149:43:59"},{"eventCall":{"arguments":[{"id":6041,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5996,"src":"4273:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6042,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4281:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4285:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4281:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6040,"name":"RightsGranted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5944,"src":"4259:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4259:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6045,"nodeType":"EmitStatement","src":"4254:38:59"}]},"baseFunctions":[1475],"documentation":{"id":5994,"nodeType":"StructuredDocumentation","src":"3367:230:59","text":"@notice Initializes and authorizes a policy contract for content held by the holder.\n @param policy The address of the policy contract to be initialized and authorized.\n @param data The data to initialize policy."},"functionSelector":"2f6cc102","implemented":true,"kind":"function","modifiers":[],"name":"authorizePolicy","nameLocation":"3611:15:59","parameters":{"id":5999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5996,"mutability":"mutable","name":"policy","nameLocation":"3635:6:59","nodeType":"VariableDeclaration","scope":6047,"src":"3627:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5995,"name":"address","nodeType":"ElementaryTypeName","src":"3627:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":5998,"mutability":"mutable","name":"data","nameLocation":"3658:4:59","nodeType":"VariableDeclaration","scope":6047,"src":"3643:19:59","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":5997,"name":"bytes","nodeType":"ElementaryTypeName","src":"3643:5:59","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3626:37:59"},"returnParameters":{"id":6000,"nodeType":"ParameterList","parameters":[],"src":"3673:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6068,"nodeType":"FunctionDefinition","src":"4475:158:59","nodes":[],"body":{"id":6067,"nodeType":"Block","src":"4522:111:59","nodes":[],"statements":[{"expression":{"arguments":[{"id":6058,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6050,"src":"4571:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6053,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"4532:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6056,"indexExpression":{"expression":{"id":6054,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4552:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6055,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4552:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4532:31:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6057,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4564:6:59","memberName":"remove","nodeType":"MemberAccess","referencedDeclaration":69922,"src":"4532:38:59","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) returns (bool)"}},"id":6059,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4532:46:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6060,"nodeType":"ExpressionStatement","src":"4532:46:59"},{"eventCall":{"arguments":[{"id":6062,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6050,"src":"4607:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":6063,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4615:3:59","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":6064,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4619:6:59","memberName":"sender","nodeType":"MemberAccess","src":"4615:10:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":6061,"name":"RightsRevoked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5951,"src":"4593:13:59","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":6065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4593:33:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":6066,"nodeType":"EmitStatement","src":"4588:38:59"}]},"baseFunctions":[1481],"documentation":{"id":6048,"nodeType":"StructuredDocumentation","src":"4305:165:59","text":"@notice Revokes the delegation of rights to a policy contract.\n @param policy The address of the policy contract whose rights delegation is being revoked."},"functionSelector":"9fda230a","implemented":true,"kind":"function","modifiers":[],"name":"revokePolicy","nameLocation":"4484:12:59","parameters":{"id":6051,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6050,"mutability":"mutable","name":"policy","nameLocation":"4505:6:59","nodeType":"VariableDeclaration","scope":6068,"src":"4497:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6049,"name":"address","nodeType":"ElementaryTypeName","src":"4497:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4496:16:59"},"returnParameters":{"id":6052,"nodeType":"ParameterList","parameters":[],"src":"4522:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":6090,"nodeType":"FunctionDefinition","src":"4896:183:59","nodes":[],"body":{"id":6089,"nodeType":"Block","src":"4985:94:59","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6087,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":6082,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"5039:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":6078,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"5002:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6080,"indexExpression":{"id":6079,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6073,"src":"5022:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5002:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6081,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5030:8:59","memberName":"contains","nodeType":"MemberAccess","referencedDeclaration":69949,"src":"5002:36:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$_t_address_$returns$_t_bool_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer,address) view returns (bool)"}},"id":6083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5002:44:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6085,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6071,"src":"5065:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6084,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"5050:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5050:22:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5002:70:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6077,"id":6088,"nodeType":"Return","src":"4995:77:59"}]},"baseFunctions":[1467],"documentation":{"id":6069,"nodeType":"StructuredDocumentation","src":"4639:252:59","text":"@dev Verify if the specified policy contract has been delegated the rights by the asset holder.\n @param policy The address of the policy contract to check for delegation.\n @param holder the asset rights holder to check for delegation."},"functionSelector":"ca89d8b2","implemented":true,"kind":"function","modifiers":[],"name":"isPolicyAuthorized","nameLocation":"4905:18:59","parameters":{"id":6074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6071,"mutability":"mutable","name":"policy","nameLocation":"4932:6:59","nodeType":"VariableDeclaration","scope":6090,"src":"4924:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6070,"name":"address","nodeType":"ElementaryTypeName","src":"4924:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":6073,"mutability":"mutable","name":"holder","nameLocation":"4948:6:59","nodeType":"VariableDeclaration","scope":6090,"src":"4940:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6072,"name":"address","nodeType":"ElementaryTypeName","src":"4940:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4923:32:59"},"returnParameters":{"id":6077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6076,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6090,"src":"4979:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6075,"name":"bool","nodeType":"ElementaryTypeName","src":"4979:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4978:6:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6169,"nodeType":"FunctionDefinition","src":"5380:1286:59","nodes":[],"body":{"id":6168,"nodeType":"Block","src":"5468:1198:59","nodes":[],"statements":[{"assignments":[6103],"declarations":[{"constant":false,"id":6103,"mutability":"mutable","name":"policies","nameLocation":"6106:8:59","nodeType":"VariableDeclaration","scope":6168,"src":"6089:25:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6101,"name":"address","nodeType":"ElementaryTypeName","src":"6089:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6102,"nodeType":"ArrayTypeName","src":"6089:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":6109,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"baseExpression":{"id":6104,"name":"_authorizedPolicies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5937,"src":"6117:19:59","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_AddressSet_$69868_storage_$","typeString":"mapping(address => struct EnumerableSet.AddressSet storage ref)"}},"id":6106,"indexExpression":{"id":6105,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6093,"src":"6137:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6117:27:59","typeDescriptions":{"typeIdentifier":"t_struct$_AddressSet_$69868_storage","typeString":"struct EnumerableSet.AddressSet storage ref"}},"id":6107,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"6145:6:59","memberName":"values","nodeType":"MemberAccess","referencedDeclaration":70021,"src":"6117:34:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_AddressSet_$69868_storage_ptr_$returns$_t_array$_t_address_$dyn_memory_ptr_$attached_to$_t_struct$_AddressSet_$69868_storage_ptr_$","typeString":"function (struct EnumerableSet.AddressSet storage pointer) view returns (address[] memory)"}},"id":6108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6117:36:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6089:64:59"},{"assignments":[6114],"declarations":[{"constant":false,"id":6114,"mutability":"mutable","name":"filtered","nameLocation":"6180:8:59","nodeType":"VariableDeclaration","scope":6168,"src":"6163:25:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6112,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6113,"nodeType":"ArrayTypeName","src":"6163:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":6121,"initialValue":{"arguments":[{"expression":{"id":6118,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6205:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6119,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6214:6:59","memberName":"length","nodeType":"MemberAccess","src":"6205:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":6117,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"6191:13:59","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":6115,"name":"address","nodeType":"ElementaryTypeName","src":"6195:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6116,"nodeType":"ArrayTypeName","src":"6195:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":6120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6191:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"6163:58:59"},{"assignments":[6123],"declarations":[{"constant":false,"id":6123,"mutability":"mutable","name":"policiesLen","nameLocation":"6239:11:59","nodeType":"VariableDeclaration","scope":6168,"src":"6231:19:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6122,"name":"uint256","nodeType":"ElementaryTypeName","src":"6231:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6126,"initialValue":{"expression":{"id":6124,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6253:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6262:6:59","memberName":"length","nodeType":"MemberAccess","src":"6253:15:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6231:37:59"},{"assignments":[6128],"declarations":[{"constant":false,"id":6128,"mutability":"mutable","name":"j","nameLocation":"6286:1:59","nodeType":"VariableDeclaration","scope":6168,"src":"6278:9:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6127,"name":"uint256","nodeType":"ElementaryTypeName","src":"6278:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6130,"initialValue":{"hexValue":"30","id":6129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6290:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6278:13:59"},{"body":{"id":6164,"nodeType":"Block","src":"6380:254:59","statements":[{"condition":{"id":6149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6398:28:59","subExpression":{"arguments":[{"baseExpression":{"id":6145,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6414:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6147,"indexExpression":{"id":6146,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6423:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6414:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":6144,"name":"_isValidPolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6201,"src":"6399:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":6148,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6399:27:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6151,"nodeType":"IfStatement","src":"6394:42:59","trueBody":{"id":6150,"nodeType":"Continue","src":"6428:8:59"}},{"expression":{"id":6158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":6152,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"6450:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6154,"indexExpression":{"id":6153,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"6459:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6450:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":6155,"name":"policies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6103,"src":"6464:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":6157,"indexExpression":{"id":6156,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6473:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6464:11:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6450:25:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6159,"nodeType":"ExpressionStatement","src":"6450:25:59"},{"id":6163,"nodeType":"UncheckedBlock","src":"6578:46:59","statements":[{"expression":{"id":6161,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"6606:3:59","subExpression":{"id":6160,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6128,"src":"6608:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6162,"nodeType":"ExpressionStatement","src":"6606:3:59"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":6137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6135,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6341:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":6136,"name":"policiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6123,"src":"6345:11:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6341:15:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":6165,"initializationExpression":{"assignments":[6132],"declarations":[{"constant":false,"id":6132,"mutability":"mutable","name":"i","nameLocation":"6334:1:59","nodeType":"VariableDeclaration","scope":6165,"src":"6326:9:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":6131,"name":"uint256","nodeType":"ElementaryTypeName","src":"6326:7:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":6134,"initialValue":{"hexValue":"30","id":6133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6338:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"6326:13:59"},"isSimpleCounterLoop":false,"loopExpression":{"expression":{"id":6142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":6138,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6358:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":6139,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6132,"src":"6362:1:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6140,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6364:12:59","memberName":"uncheckedInc","nodeType":"MemberAccess","referencedDeclaration":2050,"src":"6362:14:59","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$attached_to$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":6141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6362:16:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6358:20:59","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":6143,"nodeType":"ExpressionStatement","src":"6358:20:59"},"nodeType":"ForStatement","src":"6321:313:59"},{"expression":{"id":6166,"name":"filtered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6114,"src":"6651:8:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":6098,"id":6167,"nodeType":"Return","src":"6644:15:59"}]},"baseFunctions":[1457],"documentation":{"id":6091,"nodeType":"StructuredDocumentation","src":"5085:290:59","text":"@notice Retrieves all policies authorized by a specific content holder.\n @dev This function returns an array of policy addresses that have been granted rights by the holder.\n @param holder The address of the asset rights holder whose authorized policies are being queried."},"functionSelector":"591b43c5","implemented":true,"kind":"function","modifiers":[],"name":"getAuthorizedPolicies","nameLocation":"5389:21:59","parameters":{"id":6094,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6093,"mutability":"mutable","name":"holder","nameLocation":"5419:6:59","nodeType":"VariableDeclaration","scope":6169,"src":"5411:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6092,"name":"address","nodeType":"ElementaryTypeName","src":"5411:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5410:16:59"},"returnParameters":{"id":6098,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6097,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6169,"src":"5450:16:59","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":6095,"name":"address","nodeType":"ElementaryTypeName","src":"5450:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":6096,"nodeType":"ArrayTypeName","src":"5450:9:59","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"5449:18:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":6179,"nodeType":"FunctionDefinition","src":"6864:84:59","nodes":[],"body":{"id":6178,"nodeType":"Block","src":"6946:2:59","nodes":[],"statements":[]},"baseFunctions":[50598],"documentation":{"id":6170,"nodeType":"StructuredDocumentation","src":"6672:187:59","text":"@dev Authorizes the upgrade of the contract.\n @notice Only the owner can authorize the upgrade.\n @param newImplementation The address of the new implementation contract."},"implemented":true,"kind":"function","modifiers":[{"id":6176,"kind":"modifierInvocation","modifierName":{"id":6175,"name":"onlyAdmin","nameLocations":["6936:9:59"],"nodeType":"IdentifierPath","referencedDeclaration":2578,"src":"6936:9:59"},"nodeType":"ModifierInvocation","src":"6936:9:59"}],"name":"_authorizeUpgrade","nameLocation":"6873:17:59","overrides":{"id":6174,"nodeType":"OverrideSpecifier","overrides":[],"src":"6927:8:59"},"parameters":{"id":6173,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6172,"mutability":"mutable","name":"newImplementation","nameLocation":"6899:17:59","nodeType":"VariableDeclaration","scope":6179,"src":"6891:25:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6171,"name":"address","nodeType":"ElementaryTypeName","src":"6891:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6890:27:59"},"returnParameters":{"id":6177,"nodeType":"ParameterList","parameters":[],"src":"6946:0:59"},"scope":6202,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":6201,"nodeType":"FunctionDefinition","src":"7213:148:59","nodes":[],"body":{"id":6200,"nodeType":"Block","src":"7281:80:59","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":6197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":6192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":6187,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"7299:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":6190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7317:1:59","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":6189,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7309:7:59","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":6188,"name":"address","nodeType":"ElementaryTypeName","src":"7309:7:59","typeDescriptions":{}}},"id":6191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7309:10:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7299:20:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"id":6195,"name":"policy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":6182,"src":"7346:6:59","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":6193,"name":"POLICY_AUDIT","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5931,"src":"7323:12:59","typeDescriptions":{"typeIdentifier":"t_contract$_IPolicyAuditorVerifiable_$1399","typeString":"contract IPolicyAuditorVerifiable"}},"id":6194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7336:9:59","memberName":"isAudited","nodeType":"MemberAccess","referencedDeclaration":1398,"src":"7323:22:59","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":6196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7323:30:59","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7299:54:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":6198,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7298:56:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":6186,"id":6199,"nodeType":"Return","src":"7291:63:59"}]},"documentation":{"id":6180,"nodeType":"StructuredDocumentation","src":"6954:254:59","text":"@notice Verifies whether a given policy is valid.\n @dev The function ensures that the policy address is not the zero address\n and that the policy has been audited.\n @param policy The address of the policy contract to verify."},"implemented":true,"kind":"function","modifiers":[],"name":"_isValidPolicy","nameLocation":"7222:14:59","parameters":{"id":6183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6182,"mutability":"mutable","name":"policy","nameLocation":"7245:6:59","nodeType":"VariableDeclaration","scope":6201,"src":"7237:14:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":6181,"name":"address","nodeType":"ElementaryTypeName","src":"7237:7:59","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7236:16:59"},"returnParameters":{"id":6186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":6185,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":6201,"src":"7275:4:59","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":6184,"name":"bool","nodeType":"ElementaryTypeName","src":"7275:4:59","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7274:6:59"},"scope":6202,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":5913,"name":"Initializable","nameLocations":["943:13:59"],"nodeType":"IdentifierPath","referencedDeclaration":50462,"src":"943:13:59"},"id":5914,"nodeType":"InheritanceSpecifier","src":"943:13:59"},{"baseName":{"id":5915,"name":"UUPSUpgradeable","nameLocations":["962:15:59"],"nodeType":"IdentifierPath","referencedDeclaration":50644,"src":"962:15:59"},"id":5916,"nodeType":"InheritanceSpecifier","src":"962:15:59"},{"baseName":{"id":5917,"name":"AccessControlledUpgradeable","nameLocations":["983:27:59"],"nodeType":"IdentifierPath","referencedDeclaration":2660,"src":"983:27:59"},"id":5918,"nodeType":"InheritanceSpecifier","src":"983:27:59"},{"baseName":{"id":5919,"name":"IRightsPolicyAuthorizer","nameLocations":["1016:23:59"],"nodeType":"IdentifierPath","referencedDeclaration":1482,"src":"1016:23:59"},"id":5920,"nodeType":"InheritanceSpecifier","src":"1016:23:59"}],"canonicalName":"RightsPolicyAuthorizer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[6202,1482,2660,48089,53586,52254,50644,59214,50462],"name":"RightsPolicyAuthorizer","nameLocation":"913:22:59","scope":6203,"usedErrors":[2560,5956,5961,50225,50228,50489,50494,53557,53563,53567,59409,59422,61705,61997],"usedEvents":[5944,5951,50233,53553,59136]}],"license":"MIT"},"id":59} \ No newline at end of file diff --git a/src/config/abi/SubscriptionPolicy.json b/src/config/abi/SubscriptionPolicy.json index ba2d64318..d5289a595 100644 --- a/src/config/abi/SubscriptionPolicy.json +++ b/src/config/abi/SubscriptionPolicy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"total","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AttestedAgreement","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c757601f61192f38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c757610047816100df565b61005f6040610058602085016100df565b93016100df565b60015f556001600160a01b0390811660805290811660a0521660c05260405161183b90816100f4823960805181818161053c01528181610dc401526115cb015260a05181818161014101528181610296015261093e015260c05181818160ed01526116850152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f08738957dec52d6b68103ced4084c78b9861d69257f4019a4d16836ffcdbe7e64736f6c634300081a0033","sourceMap":"281:6160:0:-:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;-1:-1:-1;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:3;-1:-1:-1;1857:1:3;-1:-1:-1;;;;;281:6160:0;;;4819:60:11;;281:6160:0;;;;4889:65:11;281:6160:0;4964:49:11;;281:6160:0;;;;;;;;4819:60:11;281:6160:0;;;;;;;;;;;;;;;4889:65:11;281:6160:0;;;;;;;;;;;;;;;4964:49:11;281:6160:0;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;-1:-1:-1;281:6160:0;;;;;-1:-1:-1;281:6160:0;;;;-1:-1:-1;;;;;281:6160:0;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220f08738957dec52d6b68103ced4084c78b9861d69257f4019a4d16836ffcdbe7e64736f6c634300081a0033","sourceMap":"281:6160:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;1140:48:11;281:6160:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;1075:59:11;281:6160:0;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5575:13:11;281:6160:0;;;;;;5575:32:11;281:6160:0;-1:-1:-1;281:6160:0;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3566:43:11;;;:21;281:6160:0;3566:21:11;281:6160:0;3566:21:11;281:6160:0;3566:43:11;;;;;;281:6160:0;3566:43:11;281:6160:0;3566:43:11;;;281:6160:0;;;3544:10:11;:66;3540:169;;281:6160:0;;;;4097:20:11;281:6160:0;;4097:20:11;281:6160:0;2041:36;;281:6160;;;;;;3566:43:11;281:6160:0;;;;;:::i;:::-;;2091:10;;;2087:75;;281:6160;;;4097:20:11;281:6160:0;;;;;;;:::i;:::-;;;3566:43:11;2242:24:0;;281:6160;;;;;;2222:9;3566:43:11;281:6160:0;;;;;;;;;;;;;;;;;;;4097:20:11;281:6160:0;;;;;4097:20:11;281:6160:0;;;;2087:75;2110:52;281:6160;;2110:52;;;3566:43:11;281:6160:0;2110:52;;281:6160;;;;;;;;;;;2110:52;3540:169:11;3633:65;281:6160:0;;3633:65:11;;;3566:43;281:6160:0;3633:65:11;;281:6160:0;;;;;;;;;;;;;;;;3633:65:11;3566:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;6313:20:11;281:6160:0;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4347:26;;;;:::i;:::-;4346:27;4342:95;;4464:31;281:6160;4464:31;;;281:6160;;;;;;;;:::i;:::-;;;;4526:9;281:6160;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4596:68;;281:6160;;;;4596:68;;4635:17;281:6160;;;;;;;;;;:::i;:::-;;;;;;;;;;4596:68;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4342:95;4396:30;281:6160;4396:30;281:6160;;4396:30;281:6160;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;3277:21:11;281:6160:0;3255:10:11;:44;3251:144;;281:6160:0;4621:12:11;281:6160:0;;4620:13:11;4616:80;;281:6160:0;;;;;;2612:9;281:6160;;;;;;;;;;;;:::i;:::-;;4621:12:11;281:6160:0;;;;;;;;;;;;;2643:20;2639:213;;2883:15;;;281:6160;2929:17;281:6160;2929:17;;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5159:49;4939:19;5160:34;5047:31;4939:19;;;;;:::i;:::-;5047:31;:::i;:::-;5160:34;;;:::i;:::-;5159:49;:::i;:::-;5222:14;;5218:84;;3293:6;281:6160;;;;;;3293:6;281:6160;;;;;;;3263:15;281:6160;3263:15;;;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2929:17;281:6160;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:21:11;;;281:6160:0;7804:21:11;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;2929:17;281:6160;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7804:21:11;281:6160:0;7804:21:11;;;;;;;;:::i;:::-;281:6160:0;;;7910:17:11;;281:6160:0;;;7855:91:11;;;;281:6160:0;7855:91:11;;281:6160:0;;;;;7903:4:11;281:6160:0;;;;;;;2929:17;281:6160;;;;;;;;:::i;:::-;;;;;;2929:17;281:6160;;;;;;:::i;:::-;7855:91:11;281:6160:0;7855:91:11;;;;;;;;:::i;:::-;8018:17;;281:6160:0;;;7990:62:11;;;281:6160:0;7990:62:11;;281:6160:0;7990:62:11;;281:6160:0;;;2883:15;281:6160;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;:::i;:::-;7990:62:11;:20;;281:6160:0;;7990:62:11;;;281:6160:0;7990:62:11;;;;;;;;;281:6160:0;7990:62:11;;;281:6160:0;8110:17:11;;281:6160:0;;;8571:13:11;281:6160:0;8586:14:11;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;4621:12:11;281:6160:0;;;8602:20:11;8674:17;;4621:12;8674:17;;;:::i;:::-;281:6160:0;;8652:10:11;;;;:::i;:::-;281:6160:0;;;;8638:13:11;281:6160:0;;;;;;;;;;;;;;;8736:10:11;;;;:::i;:::-;281:6160:0;;8748:17:11;8710:56;281:6160:0;8748:17:11;;;;:::i;:::-;281:6160:0;;;;;;8710:56:11;281:6160:0;8571:13:11;;7990:62;;;;;;281:6160:0;7990:62:11;;;;;;:::i;:::-;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:62:11;;;;;;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5218:84;5245:57;281:6160;;5245:57;;;281:6160;;5245:57;;281:6160;;;;;;;;;;;;2883:15;281:6160;;;5245:57;2639:213;2778:63;281:6160;;2778:63;;;281:6160;;2778:63;;281:6160;;;;;;;;;;;;;;;;2778:63;4616:80:11;4656:29;281:6160:0;4656:29:11;281:6160:0;;4656:29:11;3251:144;3322:62;281:6160:0;;3322:62:11;;;281:6160:0;;3322:62:11;;281:6160:0;;;;;;;;;;;;;;;;3322:62:11;281:6160:0;;;;;-1:-1:-1;;281:6160:0;;;;;;;5156:12:11;281:6160:0;;;;;;;;;;;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;5992:40:11;6007:25;281:6160:0;5992:40:11;;:80;;;;;281:6160:0;;;;;;;5992:80:11;877:25:4;862:40;;;5992:80:11;;;281:6160:0;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;281:6160:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;3450:527::-;;;;281:6160;3450:527;3624:26;;;;:::i;:::-;3620:186;;3882:31;;281:6160;;;;3951:18;3930:40;281:6160;;3951:18;:::i;3930:40::-;3450:527;:::o;3620:186::-;3715:31;;281:6160;;;;;;3767:28;281:6160;;:::i;:::-;;3767:28;;:::i;281:6160::-;;;;;;;;;;;;;;;;;;:::o;6603:364:11:-;281:6160:0;;;;;;6718:13:11;281:6160:0;;;;;;6718:30:11;281:6160:0;-1:-1:-1;281:6160:0;;;;-1:-1:-1;281:6160:0;;6833:18:11;;;6829:36;;281:6160:0;;6909:51:11;281:6160:0;6909:51:11;;;;;281:6160:0;;;;;;6909:20:11;:51;:20;281:6160:0;6909:20:11;281:6160:0;6909:51:11;;;;;;;281:6160:0;6909:51:11;;;6902:58;6603:364;:::o;6909:51::-;;;281:6160:0;6909:51:11;;281:6160:0;6909:51:11;;;;;;281:6160:0;6909:51:11;;;:::i;:::-;;;281:6160:0;;;;;;;;;;;;6603:364:11;:::o;6909:51::-;;;-1:-1:-1;6909:51:11;;6829:36;6853:12;;281:6160:0;6853:12:11;:::o;7112:155::-;281:6160:0;;7195:32:11;281:6160:0;7195:32:11;;;;;281:6160:0;;7195:15:11;:32;:15;281:6160:0;7195:15:11;281:6160:0;7195:32:11;;;;;;;-1:-1:-1;7195:32:11;;;7188:39;7112:155;:::o;7195:32::-;;;;281:6160:0;7195:32:11;281:6160:0;7195:32:11;;;;;;;:::i;281:6160:0:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6160:0;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;5352:1087;6213:2;6194:21;;6190:64;;281:6160;6213:2;281:6160;;;;6300:2;281:6160;;;;6283:38;;281:6160;6300:2;281:6160;;;6405:27;;;6398:34;5352:1087;:::o;6405:27::-;281:6160;;;;;6351:37;5352:1087;:::o;281:6160::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"846":[{"start":1340,"length":32},{"start":3524,"length":32},{"start":5579,"length":32}],"849":[{"start":321,"length":32},{"start":662,"length":32},{"start":2366,"length":32}],"852":[{"start":237,"length":32},{"start":5765,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","description()":"7284e416","enforce(address,(address,address,address,uint256,uint256,address[],bytes))":"464c0aeb","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,bytes)":"cfdce1a7","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(bytes)":"a3937111","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation id associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0xbfcc3f66602963c0415c6d294684e36c4207bbe340cd0fa8d63da74314a0e189\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a731f3b1cfa931141761a4783d18ad7462741aed14d7f949aa1b36ebd9a7a70\",\"dweb:/ipfs/QmVPPFN6jKjRepjtasysDuoDrUHtqqzfGx17az5eSGV3Ws\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf\",\"dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AttestedAgreement","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation id associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,bytes)":{"notice":"Verifies if an account has access to holder's content or asset id."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the policy has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(bytes)":{"notice":"Retrieves the terms associated with a specific criteria and policy."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/policies/SubscriptionPolicy.sol":{"keccak256":"0xbfcc3f66602963c0415c6d294684e36c4207bbe340cd0fa8d63da74314a0e189","urls":["bzz-raw://3a731f3b1cfa931141761a4783d18ad7462741aed14d7f949aa1b36ebd9a7a70","dweb:/ipfs/QmVPPFN6jKjRepjtasysDuoDrUHtqqzfGx17az5eSGV3Ws"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol":{"keccak256":"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8","urls":["bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f","dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol":{"keccak256":"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753","urls":["bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf","dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":514,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":854,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":861,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":19,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)14_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)14_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)14_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)14_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":11,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":13,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/SubscriptionPolicy.sol","id":359,"exportedSymbols":{"BasePolicy":[1209],"SubscriptionPolicy":[358],"T":[1274]},"nodeType":"SourceUnit","src":"32:6410:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"32:23:0","nodes":[],"literals":["solidity","0.8",".26"]},{"id":3,"nodeType":"ImportDirective","src":"57:69:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol","file":"@synaps3/core/primitives/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":359,"sourceUnit":1210,"symbolAliases":[{"foreign":{"id":2,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1209,"src":"66:10:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"127:55:0","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":359,"sourceUnit":1275,"symbolAliases":[{"foreign":{"id":4,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"136:1:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":358,"nodeType":"ContractDefinition","src":"281:6160:0","nodes":[{"id":14,"nodeType":"StructDefinition","src":"386:77:0","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":9,"nodeType":"StructuredDocumentation","src":"329:52:0","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":11,"mutability":"mutable","name":"pricePerDay","nameLocation":"419:11:0","nodeType":"VariableDeclaration","scope":14,"src":"411:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":10,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":13,"mutability":"mutable","name":"currency","nameLocation":"448:8:0","nodeType":"VariableDeclaration","scope":14,"src":"440:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":12,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"393:7:0","scope":358,"visibility":"public"},{"id":19,"nodeType":"VariableDeclaration","src":"553:45:0","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"589:9:0","scope":358,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":18,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":15,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"553:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":17,"nodeType":"UserDefinedTypeName","pathNode":{"id":16,"name":"Package","nameLocations":["572:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"572:7:0"},"referencedDeclaration":14,"src":"572:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":34,"nodeType":"FunctionDefinition","src":"605:203:0","nodes":[],"body":{"id":33,"nodeType":"Block","src":"806:2:0","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":28,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":21,"src":"744:25:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":29,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":23,"src":"771:16:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":30,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":25,"src":"789:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":31,"kind":"baseConstructorSpecifier","modifierName":{"id":27,"name":"BasePolicy","nameLocations":["733:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"733:10:0"},"nodeType":"ModifierInvocation","src":"733:72:0"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":26,"nodeType":"ParameterList","parameters":[{"constant":false,"id":21,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"634:25:0","nodeType":"VariableDeclaration","scope":34,"src":"626:33:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":20,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":23,"mutability":"mutable","name":"ownershipAddress","nameLocation":"677:16:0","nodeType":"VariableDeclaration","scope":34,"src":"669:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":22,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":25,"mutability":"mutable","name":"providerAddress","nameLocation":"711:15:0","nodeType":"VariableDeclaration","scope":34,"src":"703:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":24,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"616:116:0"},"returnParameters":{"id":32,"nodeType":"ParameterList","parameters":[],"src":"806:0:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":43,"nodeType":"FunctionDefinition","src":"862:98:0","nodes":[],"body":{"id":42,"nodeType":"Block","src":"916:44:0","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":40,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"933:20:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":39,"id":41,"nodeType":"Return","src":"926:27:0"}]},"baseFunctions":[677],"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"814:43:0","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"871:4:0","parameters":{"id":36,"nodeType":"ParameterList","parameters":[],"src":"875:2:0"},"returnParameters":{"id":39,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":43,"src":"901:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":37,"name":"string","nodeType":"ElementaryTypeName","src":"901:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"900:15:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":52,"nodeType":"FunctionDefinition","src":"1045:458:0","nodes":[],"body":{"id":51,"nodeType":"Block","src":"1106:397:0","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":49,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:361:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":48,"id":50,"nodeType":"Return","src":"1116:380:0"}]},"baseFunctions":[683],"documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"966:74:0","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1054:11:0","parameters":{"id":45,"nodeType":"ParameterList","parameters":[],"src":"1065:2:0"},"returnParameters":{"id":48,"nodeType":"ParameterList","parameters":[{"constant":false,"id":47,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52,"src":"1091:13:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":46,"name":"string","nodeType":"ElementaryTypeName","src":"1091:6:0","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1090:15:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":95,"nodeType":"FunctionDefinition","src":"1896:377:0","nodes":[],"body":{"id":94,"nodeType":"Block","src":"1995:278:0","nodes":[],"statements":[{"assignments":[64,66],"declarations":[{"constant":false,"id":64,"mutability":"mutable","name":"price","nameLocation":"2014:5:0","nodeType":"VariableDeclaration","scope":94,"src":"2006:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":63,"name":"uint256","nodeType":"ElementaryTypeName","src":"2006:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":66,"mutability":"mutable","name":"currency","nameLocation":"2029:8:0","nodeType":"VariableDeclaration","scope":94,"src":"2021:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"2021:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76,"initialValue":{"arguments":[{"id":69,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56,"src":"2052:4:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":71,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2059:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":70,"name":"uint256","nodeType":"ElementaryTypeName","src":"2059:7:0","typeDescriptions":{}}},{"id":73,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2068:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":72,"name":"address","nodeType":"ElementaryTypeName","src":"2068:7:0","typeDescriptions":{}}}],"id":74,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2058:18:0","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":67,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2041:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":68,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2045:6:0","memberName":"decode","nodeType":"MemberAccess","src":"2041:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":75,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2041:36:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"2005:72:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2091:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2100:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2091:10:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":84,"nodeType":"IfStatement","src":"2087:75:0","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":81,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2132:29:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":80,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":897,"src":"2110:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:52:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":83,"nodeType":"RevertStatement","src":"2103:59:0"}},{"expression":{"id":92,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":85,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"2222:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":87,"indexExpression":{"id":86,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54,"src":"2232:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2222:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":89,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":64,"src":"2250:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":90,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"2257:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":88,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":14,"src":"2242:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$14_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":91,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2242:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"2222:44:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":93,"nodeType":"ExpressionStatement","src":"2222:44:0"}]},"baseFunctions":[691],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":59,"kind":"modifierInvocation","modifierName":{"id":58,"name":"onlyPolicyAuthorizer","nameLocations":["1962:20:0"],"nodeType":"IdentifierPath","referencedDeclaration":935,"src":"1962:20:0"},"nodeType":"ModifierInvocation","src":"1962:20:0"},{"id":61,"kind":"modifierInvocation","modifierName":{"id":60,"name":"initializer","nameLocations":["1983:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":948,"src":"1983:11:0"},"nodeType":"ModifierInvocation","src":"1983:11:0"}],"name":"initialize","nameLocation":"1905:10:0","parameters":{"id":57,"nodeType":"ParameterList","parameters":[{"constant":false,"id":54,"mutability":"mutable","name":"holder","nameLocation":"1924:6:0","nodeType":"VariableDeclaration","scope":95,"src":"1916:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":53,"name":"address","nodeType":"ElementaryTypeName","src":"1916:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56,"mutability":"mutable","name":"init","nameLocation":"1947:4:0","nodeType":"VariableDeclaration","scope":95,"src":"1932:19:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":55,"name":"bytes","nodeType":"ElementaryTypeName","src":"1932:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1915:37:0"},"returnParameters":{"id":62,"nodeType":"ParameterList","parameters":[],"src":"1995:0:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":168,"nodeType":"FunctionDefinition","src":"2428:933:0","nodes":[],"body":{"id":167,"nodeType":"Block","src":"2581:780:0","nodes":[],"statements":[{"assignments":[112],"declarations":[{"constant":false,"id":112,"mutability":"mutable","name":"pkg","nameLocation":"2606:3:0","nodeType":"VariableDeclaration","scope":167,"src":"2591:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":111,"nodeType":"UserDefinedTypeName","pathNode":{"id":110,"name":"Package","nameLocations":["2591:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"2591:7:0"},"referencedDeclaration":14,"src":"2591:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":116,"initialValue":{"baseExpression":{"id":113,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"2612:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":115,"indexExpression":{"id":114,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"2622:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2612:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2591:38:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":120,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":117,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2643:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":118,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2647:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"2643:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":119,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2662:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2643:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":126,"nodeType":"IfStatement","src":"2639:213:0","trueBody":{"id":125,"nodeType":"Block","src":"2665:187:0","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73","id":122,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2797:43:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""},"value":"Invalid not initialized holder conditions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""}],"id":121,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"2778:18:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2778:63:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":124,"nodeType":"RevertStatement","src":"2771:70:0"}]}},{"assignments":[128],"declarations":[{"constant":false,"id":128,"mutability":"mutable","name":"paidAmount","nameLocation":"2870:10:0","nodeType":"VariableDeclaration","scope":167,"src":"2862:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":127,"name":"uint256","nodeType":"ElementaryTypeName","src":"2862:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":131,"initialValue":{"expression":{"id":129,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"2883:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2893:5:0","memberName":"total","nodeType":"MemberAccess","referencedDeclaration":1232,"src":"2883:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2862:36:0"},{"assignments":[133],"declarations":[{"constant":false,"id":133,"mutability":"mutable","name":"partiesLen","nameLocation":"2916:10:0","nodeType":"VariableDeclaration","scope":167,"src":"2908:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":132,"name":"uint256","nodeType":"ElementaryTypeName","src":"2908:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":137,"initialValue":{"expression":{"expression":{"id":134,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"2929:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":135,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2939:7:0","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":1237,"src":"2929:17:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2947:6:0","memberName":"length","nodeType":"MemberAccess","src":"2929:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2908:45:0"},{"assignments":[139],"declarations":[{"constant":false,"id":139,"mutability":"mutable","name":"pricePerDay","nameLocation":"2971:11:0","nodeType":"VariableDeclaration","scope":167,"src":"2963:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":138,"name":"uint256","nodeType":"ElementaryTypeName","src":"2963:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":142,"initialValue":{"expression":{"id":140,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":112,"src":"2985:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2989:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"2985:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2963:37:0"},{"assignments":[144],"declarations":[{"constant":false,"id":144,"mutability":"mutable","name":"duration","nameLocation":"3098:8:0","nodeType":"VariableDeclaration","scope":167,"src":"3090:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":143,"name":"uint256","nodeType":"ElementaryTypeName","src":"3090:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":150,"initialValue":{"arguments":[{"id":146,"name":"paidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"3131:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":147,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":139,"src":"3143:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":148,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":133,"src":"3156:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":145,"name":"_verifyDaysFromAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":307,"src":"3109:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3109:58:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3090:77:0"},{"assignments":[152],"declarations":[{"constant":false,"id":152,"mutability":"mutable","name":"subExpire","nameLocation":"3251:9:0","nodeType":"VariableDeclaration","scope":167,"src":"3243:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":151,"name":"uint256","nodeType":"ElementaryTypeName","src":"3243:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":160,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":153,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3263:5:0","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3269:9:0","memberName":"timestamp","nodeType":"MemberAccess","src":"3263:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":155,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":144,"src":"3282:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3293:6:0","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3282:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":158,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3281:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3263:37:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3243:57:0"},{"expression":{"arguments":[{"id":162,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":97,"src":"3325:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":163,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100,"src":"3333:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":164,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":152,"src":"3344:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":161,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1153,"src":"3317:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$1240_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)"}},"id":165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3317:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":109,"id":166,"nodeType":"Return","src":"3310:44:0"}]},"baseFunctions":[703],"functionSelector":"464c0aeb","implemented":true,"kind":"function","modifiers":[{"id":103,"kind":"modifierInvocation","modifierName":{"id":102,"name":"onlyPolicyManager","nameLocations":["2524:17:0"],"nodeType":"IdentifierPath","referencedDeclaration":915,"src":"2524:17:0"},"nodeType":"ModifierInvocation","src":"2524:17:0"},{"id":105,"kind":"modifierInvocation","modifierName":{"id":104,"name":"initialized","nameLocations":["2542:11:0"],"nodeType":"IdentifierPath","referencedDeclaration":960,"src":"2542:11:0"},"nodeType":"ModifierInvocation","src":"2542:11:0"}],"name":"enforce","nameLocation":"2437:7:0","parameters":{"id":101,"nodeType":"ParameterList","parameters":[{"constant":false,"id":97,"mutability":"mutable","name":"holder","nameLocation":"2462:6:0","nodeType":"VariableDeclaration","scope":168,"src":"2454:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":96,"name":"address","nodeType":"ElementaryTypeName","src":"2454:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100,"mutability":"mutable","name":"agreement","nameLocation":"2499:9:0","nodeType":"VariableDeclaration","scope":168,"src":"2478:30:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":99,"nodeType":"UserDefinedTypeName","pathNode":{"id":98,"name":"T.Agreement","nameLocations":["2478:1:0","2480:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":1240,"src":"2478:11:0"},"referencedDeclaration":1240,"src":"2478:11:0","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$1240_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2444:70:0"},"returnParameters":{"id":109,"nodeType":"ParameterList","parameters":[{"constant":false,"id":108,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":168,"src":"2563:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":106,"name":"uint256","nodeType":"ElementaryTypeName","src":"2563:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":107,"nodeType":"ArrayTypeName","src":"2563:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2562:18:0"},"scope":358,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":216,"nodeType":"FunctionDefinition","src":"3450:527:0","nodes":[],"body":{"id":215,"nodeType":"Block","src":"3546:431:0","nodes":[],"statements":[{"condition":{"arguments":[{"id":179,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3641:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":178,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"3624:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3624:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":197,"nodeType":"IfStatement","src":"3620:186:0","trueBody":{"id":196,"nodeType":"Block","src":"3652:154:0","statements":[{"assignments":[182],"declarations":[{"constant":false,"id":182,"mutability":"mutable","name":"holder","nameLocation":"3706:6:0","nodeType":"VariableDeclaration","scope":196,"src":"3698:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":181,"name":"address","nodeType":"ElementaryTypeName","src":"3698:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":190,"initialValue":{"arguments":[{"id":185,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3726:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":187,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3737:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":186,"name":"address","nodeType":"ElementaryTypeName","src":"3737:7:0","typeDescriptions":{}}}],"id":188,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3736:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":183,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3715:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":184,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3719:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3715:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3715:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3698:48:0"},{"expression":{"arguments":[{"id":192,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3779:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":193,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"3788:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":191,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"3767:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3767:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":177,"id":195,"nodeType":"Return","src":"3760:35:0"}]}},{"assignments":[199],"declarations":[{"constant":false,"id":199,"mutability":"mutable","name":"assetId","nameLocation":"3872:7:0","nodeType":"VariableDeclaration","scope":215,"src":"3864:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":198,"name":"uint256","nodeType":"ElementaryTypeName","src":"3864:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":207,"initialValue":{"arguments":[{"id":202,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":173,"src":"3893:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3904:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":203,"name":"uint256","nodeType":"ElementaryTypeName","src":"3904:7:0","typeDescriptions":{}}}],"id":205,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3903:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":200,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3882:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":201,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3886:6:0","memberName":"decode","nodeType":"MemberAccess","src":"3882:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":206,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3882:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3864:49:0"},{"expression":{"arguments":[{"id":209,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":171,"src":"3942:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":211,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":199,"src":"3961:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":210,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1093,"src":"3951:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":208,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1079,"src":"3930:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":213,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3930:40:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":177,"id":214,"nodeType":"Return","src":"3923:47:0"}]},"baseFunctions":[713],"documentation":{"id":169,"nodeType":"StructuredDocumentation","src":"3367:78:0","text":"@notice Verifies if an account has access to holder's content or asset id."},"functionSelector":"cfdce1a7","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3459:15:0","parameters":{"id":174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":171,"mutability":"mutable","name":"account","nameLocation":"3483:7:0","nodeType":"VariableDeclaration","scope":216,"src":"3475:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":170,"name":"address","nodeType":"ElementaryTypeName","src":"3475:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":173,"mutability":"mutable","name":"criteria","nameLocation":"3507:8:0","nodeType":"VariableDeclaration","scope":216,"src":"3492:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":172,"name":"bytes","nodeType":"ElementaryTypeName","src":"3492:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3474:42:0"},"returnParameters":{"id":177,"nodeType":"ParameterList","parameters":[{"constant":false,"id":176,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":216,"src":"3540:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":175,"name":"bool","nodeType":"ElementaryTypeName","src":"3540:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3539:6:0"},"scope":358,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":264,"nodeType":"FunctionDefinition","src":"4067:604:0","nodes":[],"body":{"id":263,"nodeType":"Block","src":"4153:518:0","nodes":[],"statements":[{"condition":{"id":228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4346:27:0","subExpression":{"arguments":[{"id":226,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"4364:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":225,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":357,"src":"4347:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4347:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":233,"nodeType":"IfStatement","src":"4342:95:0","trueBody":{"id":232,"nodeType":"Block","src":"4375:62:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":229,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"4396:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":231,"nodeType":"RevertStatement","src":"4389:37:0"}]}},{"assignments":[235],"declarations":[{"constant":false,"id":235,"mutability":"mutable","name":"holder","nameLocation":"4455:6:0","nodeType":"VariableDeclaration","scope":263,"src":"4447:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":234,"name":"address","nodeType":"ElementaryTypeName","src":"4447:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":243,"initialValue":{"arguments":[{"id":238,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":219,"src":"4475:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":240,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4486:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":239,"name":"address","nodeType":"ElementaryTypeName","src":"4486:7:0","typeDescriptions":{}}}],"id":241,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4485:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":236,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4464:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":237,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4468:6:0","memberName":"decode","nodeType":"MemberAccess","src":"4464:10:0","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4464:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4447:48:0"},{"assignments":[246],"declarations":[{"constant":false,"id":246,"mutability":"mutable","name":"pkg","nameLocation":"4520:3:0","nodeType":"VariableDeclaration","scope":263,"src":"4505:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":245,"nodeType":"UserDefinedTypeName","pathNode":{"id":244,"name":"Package","nameLocations":["4505:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":14,"src":"4505:7:0"},"referencedDeclaration":14,"src":"4505:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":250,"initialValue":{"baseExpression":{"id":247,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":19,"src":"4526:9:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$14_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":249,"indexExpression":{"id":248,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"4536:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4526:17:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4505:38:0"},{"expression":{"arguments":[{"expression":{"id":253,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4604:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4608:11:0","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":11,"src":"4604:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":255,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":246,"src":"4621:3:0","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$14_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4625:8:0","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":13,"src":"4621:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":257,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"4635:1:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$1274_$","typeString":"type(library T)"}},"id":258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4637:9:0","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":1252,"src":"4635:11:0","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$1252_$","typeString":"type(enum T.RateBasis)"}},"id":259,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4647:5:0","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":1250,"src":"4635:17:0","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$1252","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4654:9:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$1252","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":251,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1274,"src":"4596:1:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$1274_$","typeString":"type(library T)"}},"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4598:5:0","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":1263,"src":"4596:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$1263_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4596:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":224,"id":262,"nodeType":"Return","src":"4589:75:0"}]},"baseFunctions":[722],"documentation":{"id":217,"nodeType":"StructuredDocumentation","src":"3983:79:0","text":"@notice Retrieves the terms associated with a specific criteria and policy."},"functionSelector":"a3937111","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4076:12:0","parameters":{"id":220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":219,"mutability":"mutable","name":"criteria","nameLocation":"4104:8:0","nodeType":"VariableDeclaration","scope":264,"src":"4089:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":218,"name":"bytes","nodeType":"ElementaryTypeName","src":"4089:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4088:25:0"},"returnParameters":{"id":224,"nodeType":"ParameterList","parameters":[{"constant":false,"id":223,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":264,"src":"4137:14:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":222,"nodeType":"UserDefinedTypeName","pathNode":{"id":221,"name":"T.Terms","nameLocations":["4137:1:0","4139:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":1263,"src":"4137:7:0"},"referencedDeclaration":1263,"src":"4137:7:0","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$1263_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4136:16:0"},"scope":358,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":307,"nodeType":"FunctionDefinition","src":"4677:669:0","nodes":[],"body":{"id":306,"nodeType":"Block","src":"4826:520:0","nodes":[],"statements":[{"assignments":[276],"declarations":[{"constant":false,"id":276,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"4919:17:0","nodeType":"VariableDeclaration","scope":306,"src":"4911:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":275,"name":"uint256","nodeType":"ElementaryTypeName","src":"4911:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":280,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":277,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":266,"src":"4939:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":278,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"4948:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4939:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4911:47:0"},{"assignments":[282],"declarations":[{"constant":false,"id":282,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"5024:20:0","nodeType":"VariableDeclaration","scope":306,"src":"5016:28:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":281,"name":"uint256","nodeType":"ElementaryTypeName","src":"5016:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":286,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":283,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"5047:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":284,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"5067:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5047:31:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5016:62:0"},{"assignments":[288],"declarations":[{"constant":false,"id":288,"mutability":"mutable","name":"total","nameLocation":"5151:5:0","nodeType":"VariableDeclaration","scope":306,"src":"5143:13:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":287,"name":"uint256","nodeType":"ElementaryTypeName","src":"5143:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":295,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":289,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":282,"src":"5160:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":290,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":268,"src":"5183:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5160:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":292,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5159:36:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":293,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":270,"src":"5198:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5159:49:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5143:65:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":298,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":266,"src":"5222:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":297,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":288,"src":"5231:5:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5222:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":303,"nodeType":"IfStatement","src":"5218:84:0","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5264:37:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":299,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":889,"src":"5245:18:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5245:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":302,"nodeType":"RevertStatement","src":"5238:64:0"}},{"expression":{"id":304,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":282,"src":"5319:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":274,"id":305,"nodeType":"Return","src":"5312:27:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyDaysFromAmount","nameLocation":"4686:21:0","parameters":{"id":271,"nodeType":"ParameterList","parameters":[{"constant":false,"id":266,"mutability":"mutable","name":"amount","nameLocation":"4725:6:0","nodeType":"VariableDeclaration","scope":307,"src":"4717:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":265,"name":"uint256","nodeType":"ElementaryTypeName","src":"4717:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":268,"mutability":"mutable","name":"pricePerDay","nameLocation":"4749:11:0","nodeType":"VariableDeclaration","scope":307,"src":"4741:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":267,"name":"uint256","nodeType":"ElementaryTypeName","src":"4741:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":270,"mutability":"mutable","name":"partiesLen","nameLocation":"4778:10:0","nodeType":"VariableDeclaration","scope":307,"src":"4770:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":269,"name":"uint256","nodeType":"ElementaryTypeName","src":"4770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4707:87:0"},"returnParameters":{"id":274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":307,"src":"4817:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":272,"name":"uint256","nodeType":"ElementaryTypeName","src":"4817:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4816:9:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":357,"nodeType":"FunctionDefinition","src":"5352:1087:0","nodes":[],"body":{"id":356,"nodeType":"Block","src":"5431:1008:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":314,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6194:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6203:6:0","memberName":"length","nodeType":"MemberAccess","src":"6194:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6213:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6194:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":321,"nodeType":"IfStatement","src":"6190:64:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":318,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":876,"src":"6224:28:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6224:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":320,"nodeType":"RevertStatement","src":"6217:37:0"}},{"assignments":[323],"declarations":[{"constant":false,"id":323,"mutability":"mutable","name":"last20Valid","nameLocation":"6269:11:0","nodeType":"VariableDeclaration","scope":356,"src":"6264:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":322,"name":"bool","nodeType":"ElementaryTypeName","src":"6264:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":336,"initialValue":{"commonType":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"id":335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":326,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6291:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":328,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6303:2:0","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6291:15:0","startExpression":{"hexValue":"3132","id":327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6300:2:0","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":325,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6283:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":324,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6283:7:0","typeDescriptions":{}}},"id":330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6283:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6319:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":332,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6311:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":331,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6311:7:0","typeDescriptions":{}}},"id":334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6311:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"src":"6283:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6264:57:0"},{"assignments":[338],"declarations":[{"constant":false,"id":338,"mutability":"mutable","name":"first12Valid","nameLocation":"6336:12:0","nodeType":"VariableDeclaration","scope":356,"src":"6331:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":337,"name":"bool","nodeType":"ElementaryTypeName","src":"6331:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":351,"initialValue":{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":341,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":309,"src":"6359:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3132","id":343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6370:2:0","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"id":344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6359:14:0","startExpression":{"hexValue":"30","id":342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6368:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":340,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6351:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":339,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6351:7:0","typeDescriptions":{}}},"id":345,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6351:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6386:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6378:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":346,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6378:7:0","typeDescriptions":{}}},"id":349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6378:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"6351:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6331:57:0"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":352,"name":"last20Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":323,"src":"6405:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":353,"name":"first12Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":338,"src":"6420:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6405:27:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":313,"id":355,"nodeType":"Return","src":"6398:34:0"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isHolderAddress","nameLocation":"5361:16:0","parameters":{"id":310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":309,"mutability":"mutable","name":"criteria","nameLocation":"5393:8:0","nodeType":"VariableDeclaration","scope":357,"src":"5378:23:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":308,"name":"bytes","nodeType":"ElementaryTypeName","src":"5378:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5377:25:0"},"returnParameters":{"id":313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":312,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":357,"src":"5425:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":311,"name":"bool","nodeType":"ElementaryTypeName","src":"5425:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5424:6:0"},"scope":358,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":7,"name":"BasePolicy","nameLocations":["312:10:0"],"nodeType":"IdentifierPath","referencedDeclaration":1209,"src":"312:10:0"},"id":8,"nodeType":"InheritanceSpecifier","src":"312:10:0"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":6,"nodeType":"StructuredDocumentation","src":"184:97:0","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[358,1209,596,608,739,572],"name":"SubscriptionPolicy","nameLocation":"290:18:0","scope":359,"usedErrors":[517,873,876,881,884,889,892,897],"usedEvents":[870]}],"license":"MIT"},"id":0} +{"abi":[{"type":"constructor","inputs":[{"name":"rightPolicyManagerAddress","type":"address","internalType":"address"},{"name":"ownershipAddress","type":"address","internalType":"address"},{"name":"providerAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"ASSET_OWNERSHIP","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAssetOwnership"}],"stateMutability":"view"},{"type":"function","name":"ATTESTATION_PROVIDER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAttestationProvider"}],"stateMutability":"view"},{"type":"function","name":"RIGHTS_POLICY_MANAGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRightsPolicyManager"}],"stateMutability":"view"},{"type":"function","name":"description","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"enforce","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"agreement","type":"tuple","internalType":"struct T.Agreement","components":[{"name":"broker","type":"address","internalType":"address"},{"name":"currency","type":"address","internalType":"address"},{"name":"initiator","type":"address","internalType":"address"},{"name":"total","type":"uint256","internalType":"uint256"},{"name":"fees","type":"uint256","internalType":"uint256"},{"name":"parties","type":"address[]","internalType":"address[]"},{"name":"payload","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"uint256[]","internalType":"uint256[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"getAttestation","inputs":[{"name":"recipient","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getAttestationProvider","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getHolder","inputs":[{"name":"assetId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"holder","type":"address","internalType":"address"},{"name":"init","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isAccessAllowed","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isCompliant","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"holder","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isInitialized","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"pure"},{"type":"function","name":"resolveTerms","inputs":[{"name":"criteria","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"tuple","internalType":"struct T.Terms","components":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"currency","type":"address","internalType":"address"},{"name":"rateBasis","type":"uint8","internalType":"enum T.RateBasis"},{"name":"uri","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"event","name":"AttestedAgreement","inputs":[{"name":"holder","type":"address","indexed":true,"internalType":"address"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"attestationId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"InvalidAssetHolder","inputs":[]},{"type":"error","name":"InvalidAttestation","inputs":[]},{"type":"error","name":"InvalidEnforcement","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidInitialization","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"InvalidNotSupportedOperation","inputs":[]},{"type":"error","name":"InvalidPolicyInitialization","inputs":[]},{"type":"error","name":"InvalidUnauthorizedCall","inputs":[{"name":"reason","type":"string","internalType":"string"}]},{"type":"error","name":"ReentrancyGuardReentrantCall","inputs":[]}],"bytecode":{"object":"0x60e0346100c757601f61192f38819003918201601f19168301916001600160401b038311848410176100cb578084926060946040528339810103126100c757610047816100df565b61005f6040610058602085016100df565b93016100df565b60015f556001600160a01b0390811660805290811660a0521660c05260405161183b90816100f4823960805181818161053c01528181610dc401526115cb015260a05181818161014101528181610296015261093e015260c05181818160ed01526116850152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b03821682036100c75756fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033","sourceMap":"281:6159:7:-:0;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;:::i;:::-;1857:1:78;-1:-1:-1;1857:1:78;-1:-1:-1;;;;;281:6159:7;;;4819:60:99;;281:6159:7;;;;4889:65:99;281:6159:7;4964:49:99;;281:6159:7;;;;;;;;4819:60:99;281:6159:7;;;;;;;;;;;;;;;4889:65:99;281:6159:7;;;;;;;;;;;;;;;4964:49:99;281:6159:7;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;-1:-1:-1;;;;;281:6159:7;;;;;;:::o","linkReferences":{}},"deployedBytecode":{"object":"0x6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a71461123f5750806306fdde03146111e057806319ad44fc14610510578063392e53cd146111be578063464c0aeb146108eb5780637284e41614610730578063a393711114610560578063b1b87ffb14610510578063cfdce1a7146104f7578063d1f5789414610245578063dd4fcc3f1461020f578063e8a96b46146101d3578063e8d55ccf14610165578063f1bdc452146101155763f520d4eb146100c1575f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5f80fd5b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760406003193601126101115761017e611320565b73ffffffffffffffffffffffffffffffffffffffff61019b611343565b91165f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b346101115760206003193601126101115760206101f160043561163c565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461011157604060031936011261011157602061023b61022d611320565b610235611343565b90611532565b6040519015158152f35b3461011157610253366113b5565b6040517f8ae2ba5900000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa80156104ec5773ffffffffffffffffffffffffffffffffffffffff915f916104bd575b5016330361043957816040917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060015416600155810103126101115773ffffffffffffffffffffffffffffffffffffffff61033a602083359301611366565b169181156103db5773ffffffffffffffffffffffffffffffffffffffff91826001926040519261036984611406565b835260208301958652165f52600360205260405f2090518155019151167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416176001555f80f35b60646040517f8e53d58600000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f496e76616c696420737562736372697074696f6e2070726963652e00000000006044820152fd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f6e6c792072696768747320706f6c69637920617574686f72697a657220616c60448201527f6c6f7765642e00000000000000000000000000000000000000000000000000006064820152fd5b6104df915060203d6020116104e5575b6104d7818361143e565b810190611506565b856102db565b503d6104cd565b6040513d5f823e3d90fd5b3461011157602061023b61050a366113b5565b916114aa565b34610111575f60031936011261011157602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101115760206003193601126101115760043567ffffffffffffffff811161011157610591903690600401611387565b6060806040516105a081611422565b5f81525f60208201525f604082015201526105bb8183611751565b15610708578160209181010312610111576105ea73ffffffffffffffffffffffffffffffffffffffff91611366565b165f52600360205260405f20602060405161060481611406565b73ffffffffffffffffffffffffffffffffffffffff600184549485845201541691829101526040519161063683611422565b825260208201908152604082016002815273ffffffffffffffffffffffffffffffffffffffff6040519261066b60408561143e565b600784527f697066733a2f2f000000000000000000000000000000000000000000000000006020850152606085019384526040519460208652516020860152511660408401525160048110156106db5782916106d79160608401525160808084015260a08301906112dd565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b7f0ea7889c000000000000000000000000000000000000000000000000000000005f5260045ffd5b34610111575f600319360112610111576106d7610160610753604051918261143e565b61012781527f5468697320706f6c69637920666f6c6c6f77732061207375627363726970746960208201527f6f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c60408201527f6f77696e6720757365727320746f20616363657373206120636f6e74656e742060608201527f686f6c646572277320636174616c6f6720627920706179696e6720612064616960808201527f6c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b60a08201527f65792066656174757265733a0a312920466c657869626c65207375627363726960c08201527f7074696f6e20706572696f64732073657420627920746865206173736574206860e08201527f6f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c206101008201527f636f6e74656e7420647572696e672074686520737562736372697074696f6e206101208201527f706572696f642e000000000000000000000000000000000000000000000000006101408201526040519182916020835260208301906112dd565b3461011157604060031936011261011157610904611320565b6024359067ffffffffffffffff8211610111578136039060e06003198301126101115773ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016330361113a5760ff60015416156111125773ffffffffffffffffffffffffffffffffffffffff1690815f52600360205260405f2090604051916109a083611406565b73ffffffffffffffffffffffffffffffffffffffff600182549283865201541660208401521561108e576064840135917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdd60a48601359201821215610111578185019160048301359367ffffffffffffffff85116101115760248401918560051b9384360384136101115751610a5287610a4d610a4684610a4184896116d1565b6116d1565b938461147f565b61147f565b831061100a5762015180810290808204620151801490151715610fdd57420197884211610fdd576040519360e0850185811067ffffffffffffffff821117610f9857604052610aa382600401611366565b8552610ab160248301611366565b9660208601978852610ac560448401611366565b96604087019788526060870195865267ffffffffffffffff608088019560848601358752116101115736602383011215610111576004602091610b078c611492565b9b610b156040519d8e61143e565b8c52828c01930101019136831161011157905b828210610fc55750505060a0840196875260c48101359067ffffffffffffffff82116101115701913660238401121561011157600483013567ffffffffffffffff8111610f985760405193610ba5601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0166020018661143e565b8185523660248284010111610111576024829101602086013783016020015f905260c0840192835260405195869460208601602090525173ffffffffffffffffffffffffffffffffffffffff1660408601525173ffffffffffffffffffffffffffffffffffffffff166060850152845173ffffffffffffffffffffffffffffffffffffffff1660808501525160a08401525160c0830152845160e0830160e090526101208301610c5491611708565b9051908281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc001610100840152610c8b916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018352610cbb908361143e565b5173ffffffffffffffffffffffffffffffffffffffff1682519160405192839286602085015260408401523060608401526080830160a0905260c08301610d0191611708565b8281037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00160a0840152610d34916112dd565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe081018252610d64908261143e565b8151906040519485927f8ca86cad000000000000000000000000000000000000000000000000000000008452600484016060905260648401610da591611708565b906024840152828103600319016044840152610dc0916112dd565b03837f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1691815a5f948591f19283156104ec575f93610f05575b5051908151915f5b838110610e6357846040518091602082016020835281518091526020604084019201905f5b818110610e4a575050500390f35b8251845285945060209384019390920191600101610e3c565b80610e70600192876117c4565b5173ffffffffffffffffffffffffffffffffffffffff610e9083866117c4565b51165f52600260205260405f20855f5260205260405f205573ffffffffffffffffffffffffffffffffffffffff610ec782856117c4565b5116847f73d17651f9707de6298c73100b356249df3c275337d70f593670c60c5d7da3536020610ef7858b6117c4565b51604051908152a301610e17565b9092503d805f833e610f17818361143e565b8101906020818303126101115780519067ffffffffffffffff821161011157019080601f83011215610111578151610f4e81611492565b92610f5c604051948561143e565b81845260208085019260051b82010192831161011157602001905b828210610f88575050509183610e0f565b8151815260209182019101610f77565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60208091610fd284611366565b815201910190610b28565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f496e73756666696369656e742066756e647320666f722073756273637269707460448201527f696f6e00000000000000000000000000000000000000000000000000000000006064820152fd5b60846040517f66360cb000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f496e76616c6964206e6f7420696e697469616c697a656420686f6c646572206360448201527f6f6e646974696f6e7300000000000000000000000000000000000000000000006064820152fd5b7f83403c5c000000000000000000000000000000000000000000000000000000005f5260045ffd5b60846040517f2ce89adb00000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f4f6e6c792072696768747320706f6c696379206d616e6167657220616c6c6f7760448201527f65642e00000000000000000000000000000000000000000000000000000000006064820152fd5b34610111575f60031936011261011157602060ff600154166040519015158152f35b34610111575f600319360112610111576106d760405161120160408261143e565b601281527f537562736372697074696f6e506f6c696379000000000000000000000000000060208201526040519182916020835260208301906112dd565b3461011157602060031936011261011157600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361011157817fd6e2fbe800000000000000000000000000000000000000000000000000000000602093149081156112b3575b5015158152f35b7f01ffc9a700000000000000000000000000000000000000000000000000000000915014836112ac565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b359073ffffffffffffffffffffffffffffffffffffffff8216820361011157565b9181601f840112156101115782359167ffffffffffffffff8311610111576020838186019501011161011157565b9060406003198301126101115760043573ffffffffffffffffffffffffffffffffffffffff8116810361011157916024359067ffffffffffffffff82116101115761140291600401611387565b9091565b6040810190811067ffffffffffffffff821117610f9857604052565b6080810190811067ffffffffffffffff821117610f9857604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117610f9857604052565b81810292918115918404141715610fdd57565b67ffffffffffffffff8111610f985760051b60200190565b9091826020916114ba8183611751565b6114d65781010312610111576102356114d3923561163c565b90565b810103126101115773ffffffffffffffffffffffffffffffffffffffff6114ff6114d393611366565b1690611532565b90816020910312610111575173ffffffffffffffffffffffffffffffffffffffff811681036101115790565b73ffffffffffffffffffffffffffffffffffffffff1690815f52600260205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f5260205260405f205490811561163657604051917febfa62b90000000000000000000000000000000000000000000000000000000083526004830152602482015260208160448173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916115fe575090565b90506020813d60201161162e575b816116196020938361143e565b81010312610111575180151581036101115790565b3d915061160c565b50505f90565b604051907f6352211e000000000000000000000000000000000000000000000000000000008252600482015260208160248173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156104ec575f916116b8575090565b6114d3915060203d6020116104e5576104d7818361143e565b81156116db570490565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b90602080835192838152019201905f5b8181106117255750505090565b825173ffffffffffffffffffffffffffffffffffffffff16845260209384019390920191600101611718565b602082036107085781602011610111577fffffffffffffffffffffffffffffffffffffffff000000000000000000000000600c82013516151591600c11610111578161179b575090565b7fffffffffffffffffffffffff0000000000000000000000000000000000000000915035161590565b80518210156117d85760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea2646970667358221220be604af8fb0b84f1fc09211529cb8338c36bfb5d68c195302c8b7b98a5cf7b2964736f6c634300081a0033","sourceMap":"281:6159:7:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1140:48:99;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;1075:59:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;:::i;:::-;;;;;5575:13:99;281:6159:7;;;;;;5575:32:99;281:6159:7;-1:-1:-1;281:6159:7;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;:::i;:::-;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;3566:43:99;;;:21;281:6159:7;3566:21:99;281:6159:7;3566:21:99;281:6159:7;3566:43:99;;;;;;281:6159:7;3566:43:99;281:6159:7;3566:43:99;;;281:6159:7;;;3544:10:99;:66;3540:169;;281:6159:7;;;;4097:20:99;281:6159:7;;4097:20:99;281:6159:7;2040:36;;281:6159;;;;;;3566:43:99;281:6159:7;;;;;:::i;:::-;;2090:10;;;2086:75;;281:6159;;;4097:20:99;281:6159:7;;;;;;;:::i;:::-;;;3566:43:99;2241:24:7;;281:6159;;;;;;2221:9;3566:43:99;281:6159:7;;;;;;;;;;;;;;;;;;;4097:20:99;281:6159:7;;;;;4097:20:99;281:6159:7;;;;2086:75;2109:52;281:6159;;2109:52;;;3566:43:99;281:6159:7;2109:52;;281:6159;;;;;;;;;;;2109:52;3540:169:99;3633:65;281:6159:7;;3633:65:99;;;3566:43;281:6159:7;3633:65:99;;281:6159:7;;;;;;;;;;;;;;;;3633:65:99;3566:43;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;6313:20:99;281:6159:7;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;4346:26;;;;:::i;:::-;4345:27;4341:95;;4463:31;281:6159;4463:31;;;281:6159;;;;;;;;:::i;:::-;;;;4525:9;281:6159;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4595:68;;281:6159;;;;4595:68;;4634:17;281:6159;;;;;;;;;;:::i;:::-;;;;;;;;;;4595:68;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;4341:95;4395:30;281:6159;4395:30;281:6159;;4395:30;281:6159;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;:::i;:::-;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;3277:21:99;281:6159:7;3255:10:99;:44;3251:144;;281:6159:7;4621:12:99;281:6159:7;;4620:13:99;4616:80;;281:6159:7;;;;;;2611:9;281:6159;;;;;;;;;;;;:::i;:::-;;4621:12:99;281:6159:7;;;;;;;;;;;;;2642:20;2638:213;;2882:15;;;281:6159;2928:17;281:6159;2928:17;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5158:49;4938:19;5159:34;5046:31;4938:19;;;;;:::i;:::-;5046:31;:::i;:::-;5159:34;;;:::i;:::-;5158:49;:::i;:::-;5221:14;;5217:84;;3292:6;281:6159;;;;;;3292:6;281:6159;;;;;;;3262:15;281:6159;3262:15;;;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7804:21:99;;;281:6159:7;7804:21:99;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;2928:17;281:6159;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;7804:21:99;281:6159:7;7804:21:99;;;;;;;;:::i;:::-;281:6159:7;;;7910:17:99;;281:6159:7;;;7855:91:99;;;;281:6159:7;7855:91:99;;281:6159:7;;;;;7903:4:99;281:6159:7;;;;;;;2928:17;281:6159;;;;;;;;:::i;:::-;;;;;;2928:17;281:6159;;;;;;:::i;:::-;7855:91:99;281:6159:7;7855:91:99;;;;;;;;:::i;:::-;8018:17;;281:6159:7;;;7990:62:99;;;281:6159:7;7990:62:99;;281:6159:7;7990:62:99;;281:6159:7;;;2882:15;281:6159;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;:::i;:::-;7990:62:99;:20;;281:6159:7;;7990:62:99;;;281:6159:7;7990:62:99;;;;;;;;;281:6159:7;7990:62:99;;;281:6159:7;8110:17:99;;281:6159:7;;;8571:13:99;281:6159:7;8586:14:99;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;4621:12:99;281:6159:7;;;8602:20:99;8674:17;;4621:12;8674:17;;;:::i;:::-;281:6159:7;;8652:10:99;;;;:::i;:::-;281:6159:7;;;;8638:13:99;281:6159:7;;;;;;;;;;;;;;;8736:10:99;;;;:::i;:::-;281:6159:7;;8748:17:99;8710:56;281:6159:7;8748:17:99;;;;:::i;:::-;281:6159:7;;;;;;8710:56:99;281:6159:7;8571:13:99;;7990:62;;;;;;281:6159:7;7990:62:99;;;;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7990:62:99;;;;;;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5217:84;5244:57;281:6159;;5244:57;;;281:6159;;5244:57;;281:6159;;;;;;;;;;;;2882:15;281:6159;;;5244:57;2638:213;2777:63;281:6159;;2777:63;;;281:6159;;2777:63;;281:6159;;;;;;;;;;;;;;;;2777:63;4616:80:99;4656:29;281:6159:7;4656:29:99;281:6159:7;;4656:29:99;3251:144;3322:62;281:6159:7;;3322:62:99;;;281:6159:7;;3322:62:99;;281:6159:7;;;;;;;;;;;;;;;;3322:62:99;281:6159:7;;;;;-1:-1:-1;;281:6159:7;;;;;;;5156:12:99;281:6159:7;;;;;;;;;;;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;5992:40:99;6007:25;281:6159:7;5992:40:99;;:80;;;;;281:6159:7;;;;;;;5992:80:99;877:25:81;862:40;;;5992:80:99;;;281:6159:7;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;281:6159:7;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;3449:527::-;;;;281:6159;3449:527;3623:26;;;;:::i;:::-;3619:186;;3881:31;;281:6159;;;;3950:18;3929:40;281:6159;;3950:18;:::i;3929:40::-;3449:527;:::o;3619:186::-;3714:31;;281:6159;;;;;;3766:28;281:6159;;:::i;:::-;;3766:28;;:::i;281:6159::-;;;;;;;;;;;;;;;;;;:::o;6603:364:99:-;281:6159:7;;;;;;6718:13:99;281:6159:7;;;;;;6718:30:99;281:6159:7;-1:-1:-1;281:6159:7;;;;-1:-1:-1;281:6159:7;;6833:18:99;;;6829:36;;281:6159:7;;6909:51:99;281:6159:7;6909:51:99;;;;;281:6159:7;;;;;;6909:20:99;:51;:20;281:6159:7;6909:20:99;281:6159:7;6909:51:99;;;;;;;281:6159:7;6909:51:99;;;6902:58;6603:364;:::o;6909:51::-;;;281:6159:7;6909:51:99;;281:6159:7;6909:51:99;;;;;;281:6159:7;6909:51:99;;;:::i;:::-;;;281:6159:7;;;;;;;;;;;;6603:364:99;:::o;6909:51::-;;;-1:-1:-1;6909:51:99;;6829:36;6853:12;;281:6159:7;6853:12:99;:::o;7112:155::-;281:6159:7;;7195:32:99;281:6159:7;7195:32:99;;;;;281:6159:7;;7195:15:99;:32;:15;281:6159:7;7195:15:99;281:6159:7;7195:32:99;;;;;;;-1:-1:-1;7195:32:99;;;7188:39;7112:155;:::o;7195:32::-;;;;281:6159:7;7195:32:99;281:6159:7;7195:32:99;;;;;;;:::i;281:6159:7:-;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;281:6159:7;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;5351:1087;6212:2;6193:21;;6189:64;;281:6159;6212:2;281:6159;;;;6299:2;281:6159;;;;6282:38;;281:6159;6299:2;281:6159;;;6404:27;;;6397:34;5351:1087;:::o;6404:27::-;281:6159;;;;;6350:37;5351:1087;:::o;281:6159::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;","linkReferences":{},"immutableReferences":{"50776":[{"start":1340,"length":32},{"start":3524,"length":32},{"start":5579,"length":32}],"50779":[{"start":321,"length":32},{"start":662,"length":32},{"start":2366,"length":32}],"50782":[{"start":237,"length":32},{"start":5765,"length":32}]}},"methodIdentifiers":{"ASSET_OWNERSHIP()":"f520d4eb","ATTESTATION_PROVIDER()":"19ad44fc","RIGHTS_POLICY_MANAGER()":"f1bdc452","description()":"7284e416","enforce(address,(address,address,address,uint256,uint256,address[],bytes))":"464c0aeb","getAttestation(address,address)":"e8d55ccf","getAttestationProvider()":"b1b87ffb","getHolder(uint256)":"e8a96b46","initialize(address,bytes)":"d1f57894","isAccessAllowed(address,bytes)":"cfdce1a7","isCompliant(address,address)":"dd4fcc3f","isInitialized()":"392e53cd","name()":"06fdde03","resolveTerms(bytes)":"a3937111","supportsInterface(bytes4)":"01ffc9a7"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"rightPolicyManagerAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"ownershipAddress\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"providerAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidAssetHolder\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidAttestation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidEnforcement\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidNotSupportedOperation\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPolicyInitialization\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"reason\",\"type\":\"string\"}],\"name\":\"InvalidUnauthorizedCall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ReentrancyGuardReentrantCall\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"attestationId\",\"type\":\"uint256\"}],\"name\":\"AttestedAgreement\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ASSET_OWNERSHIP\",\"outputs\":[{\"internalType\":\"contract IAssetOwnership\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ATTESTATION_PROVIDER\",\"outputs\":[{\"internalType\":\"contract IAttestationProvider\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RIGHTS_POLICY_MANAGER\",\"outputs\":[{\"internalType\":\"contract IRightsPolicyManager\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"description\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"broker\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"initiator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"total\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"fees\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"parties\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"payload\",\"type\":\"bytes\"}],\"internalType\":\"struct T.Agreement\",\"name\":\"agreement\",\"type\":\"tuple\"}],\"name\":\"enforce\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipient\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"getAttestation\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAttestationProvider\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"assetId\",\"type\":\"uint256\"}],\"name\":\"getHolder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"init\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"isAccessAllowed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"holder\",\"type\":\"address\"}],\"name\":\"isCompliant\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isInitialized\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"criteria\",\"type\":\"bytes\"}],\"name\":\"resolveTerms\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"currency\",\"type\":\"address\"},{\"internalType\":\"enum T.RateBasis\",\"name\":\"rateBasis\",\"type\":\"uint8\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"internalType\":\"struct T.Terms\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"InvalidAssetHolder()\":[{\"details\":\"Thrown when an attempt is made to access content without proper authorization. This error is used to prevent unauthorized access to content protected by policies or rights.\"}],\"InvalidAttestation()\":[{\"details\":\"Thrown when there is an issue with the attestation, such as when an attestation is missing or invalid.\"}],\"InvalidEnforcement(string)\":[{\"details\":\"This error is thrown when the policy enforcement process fails.\",\"params\":{\"reason\":\"A descriptive message providing details about the enforcement failure.\"}}],\"InvalidInitialization(string)\":[{\"details\":\"This error is thrown when there is an issue with the initial setup or configuration.\"}],\"InvalidPolicyInitialization()\":[{\"details\":\"Thrown when attempting to initialize a policy for unregistered or invalid content.\"}],\"ReentrancyGuardReentrantCall()\":[{\"details\":\"Unauthorized reentrant call.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"params\":{\"account\":\"The address of the user whose access or compliance is being enforced.\",\"attestationId\":\"The unique identifier of the attestations that confirms compliance or access.\",\"holder\":\"The address of the rights holder managing the asset or access.\"}}},\"kind\":\"dev\",\"methods\":{\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"details\":\"Rights Policies Manager contract should be the only one allowed to call this method.\",\"params\":{\"agreement\":\"An object containing the terms agreed upon between the asset holder and the user.\",\"holder\":\"The rights holder whose authorization is required for accessing the asset.\"}},\"getAttestation(address,address)\":{\"params\":{\"holder\":\"The address of the rights holder with whom the agreement was made.\",\"recipient\":\"The address of the account for which the attestation is being retrieved.\"}},\"getAttestationProvider()\":{\"returns\":{\"_0\":\"The address of the provider associated with the policy.\"}},\"getHolder(uint256)\":{\"params\":{\"assetId\":\"the asset ID to retrieve the holder.\"}},\"initialize(address,bytes)\":{\"details\":\"Only the Rights Policies Authorizer contract has permission to call this function.\",\"params\":{\"holder\":\"The address of the holder for whom the policy is being initialized.\",\"init\":\"Initialization data required to configure the policy.\"}},\"isCompliant(address,address)\":{\"details\":\"The function checks if the provided account complies with the attestation.\",\"params\":{\"account\":\"The address of the user whose access is being verified.\"}},\"supportsInterface(bytes4)\":{\"params\":{\"interfaceId\":\"The bytes4 identifier of the interface to check for support.\"},\"returns\":{\"_0\":\"A boolean indicating whether the interface ID is supported (true) or not (false).\"}}},\"title\":\"SubscriptionPolicy\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidNotSupportedOperation()\":[{\"notice\":\"This error is thrown when a method not implemented is called.\"}],\"InvalidUnauthorizedCall(string)\":[{\"notice\":\"Thrown when a function is called by an address other than the authorized Rights Manager. This restricts access to functions that are intended to be executed only by the Rights Manager.\"}]},\"events\":{\"AttestedAgreement(address,address,uint256)\":{\"notice\":\"Emitted when an enforcement process is successfully completed for a given account and holder.\"}},\"kind\":\"user\",\"methods\":{\"description()\":{\"notice\":\"Returns the business/strategy model implemented by the policy.\"},\"enforce(address,(address,address,address,uint256,uint256,address[],bytes))\":{\"notice\":\"Executes the agreement between the asset holder and the account based on the policy's rules.\"},\"getAttestation(address,address)\":{\"notice\":\"Retrieves the attestation id associated with a specific account and rights holder.\"},\"getAttestationProvider()\":{\"notice\":\"Retrieves the address of the attestation provider.\"},\"getHolder(uint256)\":{\"notice\":\"Returns the asset holder registered in the ownership contract.\"},\"initialize(address,bytes)\":{\"notice\":\"Initializes the policy with specific data for a given holder.\"},\"isAccessAllowed(address,bytes)\":{\"notice\":\"Verifies if an account has access to holder's content or asset id.\"},\"isCompliant(address,address)\":{\"notice\":\"Verifies whether the on-chain access terms are satisfied for an account.\"},\"isInitialized()\":{\"notice\":\"Checks if the policy has been initialized.\"},\"name()\":{\"notice\":\"Returns the name of the policy.\"},\"resolveTerms(bytes)\":{\"notice\":\"Retrieves the terms associated with a specific criteria and policy.\"},\"supportsInterface(bytes4)\":{\"notice\":\"Checks if a given interface ID is supported by this contract.\"}},\"notice\":\"Implements a subscription-based content access policy.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/policies/SubscriptionPolicy.sol\":\"SubscriptionPolicy\"},\"evmVersion\":\"cancun\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":20000},\"remappings\":[\":@account-abstraction/=node_modules/@account-abstraction/\",\":@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/\",\":@ethsign/=node_modules/@ethsign/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":@synaps3/=node_modules/@synaps3/types/contracts/\",\":@uniswap/=node_modules/@uniswap/\",\":base64-sol/=node_modules/base64-sol/\",\":forge-std/=lib/forge-std/src/\",\":hardhat/=node_modules/hardhat/\",\":solady/=lib/solady/src/\"],\"viaIR\":true},\"sources\":{\"contracts/policies/SubscriptionPolicy.sol\":{\"keccak256\":\"0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995\",\"dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a\",\"dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287\",\"dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol\":{\"keccak256\":\"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025\",\"dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol\":{\"keccak256\":\"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f\",\"dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol\":{\"keccak256\":\"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405\",\"dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP\"]},\"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol\":{\"keccak256\":\"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6\",\"dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu\"]},\"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol\":{\"keccak256\":\"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2\",\"dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL\"]},\"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol\":{\"keccak256\":\"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf\",\"dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM\"]},\"node_modules/@synaps3/types/contracts/core/primitives/Types.sol\":{\"keccak256\":\"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf\",\"dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"rightPolicyManagerAddress","type":"address"},{"internalType":"address","name":"ownershipAddress","type":"address"},{"internalType":"address","name":"providerAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"InvalidAssetHolder"},{"inputs":[],"type":"error","name":"InvalidAttestation"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidEnforcement"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidNotSupportedOperation"},{"inputs":[],"type":"error","name":"InvalidPolicyInitialization"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"type":"error","name":"InvalidUnauthorizedCall"},{"inputs":[],"type":"error","name":"ReentrancyGuardReentrantCall"},{"inputs":[{"internalType":"address","name":"holder","type":"address","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"uint256","name":"attestationId","type":"uint256","indexed":false}],"type":"event","name":"AttestedAgreement","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ASSET_OWNERSHIP","outputs":[{"internalType":"contract IAssetOwnership","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"ATTESTATION_PROVIDER","outputs":[{"internalType":"contract IAttestationProvider","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"RIGHTS_POLICY_MANAGER","outputs":[{"internalType":"contract IRightsPolicyManager","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"description","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"struct T.Agreement","name":"agreement","type":"tuple","components":[{"internalType":"address","name":"broker","type":"address"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"address","name":"initiator","type":"address"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"fees","type":"uint256"},{"internalType":"address[]","name":"parties","type":"address[]"},{"internalType":"bytes","name":"payload","type":"bytes"}]}],"stateMutability":"nonpayable","type":"function","name":"enforce","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}]},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"getAttestation","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getAttestationProvider","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"assetId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getHolder","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bytes","name":"init","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"isAccessAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"holder","type":"address"}],"stateMutability":"view","type":"function","name":"isCompliant","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isInitialized","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"bytes","name":"criteria","type":"bytes"}],"stateMutability":"view","type":"function","name":"resolveTerms","outputs":[{"internalType":"struct T.Terms","name":"","type":"tuple","components":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"currency","type":"address"},{"internalType":"enum T.RateBasis","name":"rateBasis","type":"uint8"},{"internalType":"string","name":"uri","type":"string"}]}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"details":"Rights Policies Manager contract should be the only one allowed to call this method.","params":{"agreement":"An object containing the terms agreed upon between the asset holder and the user.","holder":"The rights holder whose authorization is required for accessing the asset."}},"getAttestation(address,address)":{"params":{"holder":"The address of the rights holder with whom the agreement was made.","recipient":"The address of the account for which the attestation is being retrieved."}},"getAttestationProvider()":{"returns":{"_0":"The address of the provider associated with the policy."}},"getHolder(uint256)":{"params":{"assetId":"the asset ID to retrieve the holder."}},"initialize(address,bytes)":{"details":"Only the Rights Policies Authorizer contract has permission to call this function.","params":{"holder":"The address of the holder for whom the policy is being initialized.","init":"Initialization data required to configure the policy."}},"isCompliant(address,address)":{"details":"The function checks if the provided account complies with the attestation.","params":{"account":"The address of the user whose access is being verified."}},"supportsInterface(bytes4)":{"params":{"interfaceId":"The bytes4 identifier of the interface to check for support."},"returns":{"_0":"A boolean indicating whether the interface ID is supported (true) or not (false)."}}},"version":1},"userdoc":{"kind":"user","methods":{"description()":{"notice":"Returns the business/strategy model implemented by the policy."},"enforce(address,(address,address,address,uint256,uint256,address[],bytes))":{"notice":"Executes the agreement between the asset holder and the account based on the policy's rules."},"getAttestation(address,address)":{"notice":"Retrieves the attestation id associated with a specific account and rights holder."},"getAttestationProvider()":{"notice":"Retrieves the address of the attestation provider."},"getHolder(uint256)":{"notice":"Returns the asset holder registered in the ownership contract."},"initialize(address,bytes)":{"notice":"Initializes the policy with specific data for a given holder."},"isAccessAllowed(address,bytes)":{"notice":"Verifies if an account has access to holder's content or asset id."},"isCompliant(address,address)":{"notice":"Verifies whether the on-chain access terms are satisfied for an account."},"isInitialized()":{"notice":"Checks if the policy has been initialized."},"name()":{"notice":"Returns the name of the policy."},"resolveTerms(bytes)":{"notice":"Retrieves the terms associated with a specific criteria and policy."},"supportsInterface(bytes4)":{"notice":"Checks if a given interface ID is supported by this contract."}},"version":1}},"settings":{"remappings":["@account-abstraction/=node_modules/@account-abstraction/","@ethereum-attestation-service/=node_modules/@ethereum-attestation-service/","@ethsign/=node_modules/@ethsign/","@openzeppelin/=node_modules/@openzeppelin/","@synaps3/=node_modules/@synaps3/types/contracts/","@uniswap/=node_modules/@uniswap/","base64-sol/=node_modules/base64-sol/","forge-std/=lib/forge-std/src/","hardhat/=node_modules/hardhat/","solady/=lib/solady/src/"],"optimizer":{"enabled":true,"runs":20000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"contracts/policies/SubscriptionPolicy.sol":"SubscriptionPolicy"},"evmVersion":"cancun","libraries":{},"viaIR":true},"sources":{"contracts/policies/SubscriptionPolicy.sol":{"keccak256":"0x17caa3281a451aedf75776764eedec7628b03347fdd369c229d60e887bd0cf54","urls":["bzz-raw://9dbc13584e69fecfaf7f6f79e5f6b100f0923dd3b90fc5c20e76036abf6ff995","dweb:/ipfs/QmZQSp7sHVmncnNTRob65WFuJCrrxkdyTjya1LSZv7ZHUA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261","urls":["bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11","dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq"],"license":"MIT"},"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x11a5a79827df29e915a12740caf62fe21ebe27c08c9ae3e09abe9ee3ba3866d3","urls":["bzz-raw://3cf0c69ab827e3251db9ee6a50647d62c90ba580a4d7bbff21f2bea39e7b2f4a","dweb:/ipfs/QmZiKwtKU1SBX4RGfQtY7PZfiapbbu6SZ9vizGQD9UHjRA"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xddce8e17e3d3f9ed818b4f4c4478a8262aab8b11ed322f1bf5ed705bb4bd97fa","urls":["bzz-raw://8084aa71a4cc7d2980972412a88fe4f114869faea3fefa5436431644eb5c0287","dweb:/ipfs/Qmbqfs5dRdPvHVKY8kTaeyc65NdqXRQwRK7h9s5UJEhD1p"],"license":"MIT"},"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8","urls":["bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621","dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/assets/IAssetOwnership.sol":{"keccak256":"0x266376c23b74506b9b8d9ed90f1bc310cc7330b8d3e6ca6e6eb4021b3668aa18","urls":["bzz-raw://3614788ae9f18a9b472baaf6bb6dc1abe3d78a397f791e30efbe4f1965b3e025","dweb:/ipfs/QmPhLLbi88yH9NxhV18xutazHAYm2HSaEpSoTwR6v5BiDB"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/base/IAttestationProvider.sol":{"keccak256":"0x33857a9a398c81f5a8cb00f94fa6b67545638acfc7cb728ba12d6ad8f5278ea8","urls":["bzz-raw://d33a8beadb20c46b8cdf80cebe3640f6ee411ec1e0dcf0b99ac4498c8548b79f","dweb:/ipfs/QmVjkZppdWpowdob77ymvzhbTsMXLEZuPAJ6G7mcmSTgzj"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/policies/IPolicy.sol":{"keccak256":"0xade7578d52bec1c17d843104b93bca712ce9e43b65620fad96ef730ebfd9ec02","urls":["bzz-raw://8d630dc692ae9ca0ef0243ad1d21fe8baecc5267a753ff12fa1d239feb620405","dweb:/ipfs/QmRGDRbrPd5zBSWzYtFRxZcKZ8Em67GkQyWn9D3N4e1dkP"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/interfaces/rights/IRightsPolicyManager.sol":{"keccak256":"0xd9f5e37622cbe3b6d916e56246962663c2cc36ce58df508cad438bb09076813e","urls":["bzz-raw://7f8b4742c75eef161c9f207dbdb20d8b293b77b8a98c9a83f4f68bbedaad6dc6","dweb:/ipfs/QmWpgen4NWbCNR9g4fpCdfreTV3AG5oyLGBSE33jfg7Jwu"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/libraries/LoopOps.sol":{"keccak256":"0x7e0219ea94f0f4ff1577385dd8407ec4081c54c75b8cb8e82e2ff64904a7c411","urls":["bzz-raw://607a06ba07bb2d337ed23582d6ee902457adc27164fdf1560bd23d0f68cbceb2","dweb:/ipfs/QmZENM1tBNEeMBpjdRUPkprZ2Qmnu2cG1StLMrSQxcuJQL"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol":{"keccak256":"0xbec0c6dae3148c9c400255b1107181ea037e6f178c141505a1ce883941557753","urls":["bzz-raw://fd187cdee309d7965ca81a3bd91836fe4c281d97256db519b10a23ebf414fcbf","dweb:/ipfs/Qma6ZXgXr35Pv3c1h3XvX8V9vUeKVXHAJ3CrhLndoGEMHM"],"license":"MIT"},"node_modules/@synaps3/types/contracts/core/primitives/Types.sol":{"keccak256":"0x82754505a2cd1c924a74e7b540ee1562f3ece9464bfa46a90982d336858850b1","urls":["bzz-raw://6804018fed4f0dc32e0fd61ddfafe28e9922209f8ccd26205c11755f2def78cf","dweb:/ipfs/QmTrEZYSC67aA1Ye8sBFXz2AmcTA4WWSxna5v6QhKYemZe"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":45796,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":50784,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_initialized","offset":0,"slot":"1","type":"t_bool"},{"astId":50791,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_attestations","offset":0,"slot":"2","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":1308,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"_packages","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(Package)1303_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Package)1303_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct SubscriptionPolicy.Package)","numberOfBytes":"32","value":"t_struct(Package)1303_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_struct(Package)1303_storage":{"encoding":"inplace","label":"struct SubscriptionPolicy.Package","numberOfBytes":"64","members":[{"astId":1300,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"pricePerDay","offset":0,"slot":"0","type":"t_uint256"},{"astId":1302,"contract":"contracts/policies/SubscriptionPolicy.sol:SubscriptionPolicy","label":"currency","offset":0,"slot":"1","type":"t_address"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"contracts/policies/SubscriptionPolicy.sol","id":1648,"exportedSymbols":{"BasePolicy":[51139],"SubscriptionPolicy":[1647],"T":[51233]},"nodeType":"SourceUnit","src":"32:6409:7","nodes":[{"id":1290,"nodeType":"PragmaDirective","src":"32:23:7","nodes":[],"literals":["solidity","0.8",".26"]},{"id":1292,"nodeType":"ImportDirective","src":"57:69:7","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/BasePolicy.sol","file":"@synaps3/core/primitives/BasePolicy.sol","nameLocation":"-1:-1:-1","scope":1648,"sourceUnit":51140,"symbolAliases":[{"foreign":{"id":1291,"name":"BasePolicy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51139,"src":"66:10:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1294,"nodeType":"ImportDirective","src":"127:55:7","nodes":[],"absolutePath":"node_modules/@synaps3/types/contracts/core/primitives/Types.sol","file":"@synaps3/core/primitives/Types.sol","nameLocation":"-1:-1:-1","scope":1648,"sourceUnit":51234,"symbolAliases":[{"foreign":{"id":1293,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"136:1:7","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1647,"nodeType":"ContractDefinition","src":"281:6159:7","nodes":[{"id":1303,"nodeType":"StructDefinition","src":"386:77:7","nodes":[],"canonicalName":"SubscriptionPolicy.Package","documentation":{"id":1298,"nodeType":"StructuredDocumentation","src":"329:52:7","text":"@dev Structure to define a subscription package."},"members":[{"constant":false,"id":1300,"mutability":"mutable","name":"pricePerDay","nameLocation":"419:11:7","nodeType":"VariableDeclaration","scope":1303,"src":"411:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1299,"name":"uint256","nodeType":"ElementaryTypeName","src":"411:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1302,"mutability":"mutable","name":"currency","nameLocation":"448:8:7","nodeType":"VariableDeclaration","scope":1303,"src":"440:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1301,"name":"address","nodeType":"ElementaryTypeName","src":"440:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"Package","nameLocation":"393:7:7","scope":1647,"visibility":"public"},{"id":1308,"nodeType":"VariableDeclaration","src":"553:45:7","nodes":[],"constant":false,"mutability":"mutable","name":"_packages","nameLocation":"589:9:7","scope":1647,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"typeName":{"id":1307,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1304,"name":"address","nodeType":"ElementaryTypeName","src":"561:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"553:27:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1306,"nodeType":"UserDefinedTypeName","pathNode":{"id":1305,"name":"Package","nameLocations":["572:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"572:7:7"},"referencedDeclaration":1303,"src":"572:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}}},"visibility":"private"},{"id":1323,"nodeType":"FunctionDefinition","src":"605:203:7","nodes":[],"body":{"id":1322,"nodeType":"Block","src":"806:2:7","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"id":1317,"name":"rightPolicyManagerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1310,"src":"744:25:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1318,"name":"ownershipAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1312,"src":"771:16:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1319,"name":"providerAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1314,"src":"789:15:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":1320,"kind":"baseConstructorSpecifier","modifierName":{"id":1316,"name":"BasePolicy","nameLocations":["733:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":51139,"src":"733:10:7"},"nodeType":"ModifierInvocation","src":"733:72:7"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1310,"mutability":"mutable","name":"rightPolicyManagerAddress","nameLocation":"634:25:7","nodeType":"VariableDeclaration","scope":1323,"src":"626:33:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1309,"name":"address","nodeType":"ElementaryTypeName","src":"626:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1312,"mutability":"mutable","name":"ownershipAddress","nameLocation":"677:16:7","nodeType":"VariableDeclaration","scope":1323,"src":"669:24:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1311,"name":"address","nodeType":"ElementaryTypeName","src":"669:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1314,"mutability":"mutable","name":"providerAddress","nameLocation":"711:15:7","nodeType":"VariableDeclaration","scope":1323,"src":"703:23:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"703:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"616:116:7"},"returnParameters":{"id":1321,"nodeType":"ParameterList","parameters":[],"src":"806:0:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":1332,"nodeType":"FunctionDefinition","src":"862:98:7","nodes":[],"body":{"id":1331,"nodeType":"Block","src":"916:44:7","nodes":[],"statements":[{"expression":{"hexValue":"537562736372697074696f6e506f6c696379","id":1329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"933:20:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_cf969a651e510b963d800a99660818c73f95de791671120782050ada205e0116","typeString":"literal_string \"SubscriptionPolicy\""},"value":"SubscriptionPolicy"},"functionReturnParameters":1328,"id":1330,"nodeType":"Return","src":"926:27:7"}]},"baseFunctions":[50246],"documentation":{"id":1324,"nodeType":"StructuredDocumentation","src":"814:43:7","text":"@notice Returns the name of the policy."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"871:4:7","parameters":{"id":1325,"nodeType":"ParameterList","parameters":[],"src":"875:2:7"},"returnParameters":{"id":1328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1332,"src":"901:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1326,"name":"string","nodeType":"ElementaryTypeName","src":"901:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"900:15:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":1341,"nodeType":"FunctionDefinition","src":"1045:458:7","nodes":[],"body":{"id":1340,"nodeType":"Block","src":"1106:397:7","nodes":[],"statements":[{"expression":{"hexValue":"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e","id":1338,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1135:361:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_194b266123184e70dc22bea7312509d4d684e05e0185bd5a1d15a300a36c3030","typeString":"literal_string hex\"5468697320706f6c69637920666f6c6c6f7773206120737562736372697074696f6e206d6f64656c2077697468206461696c792070726963696e672c20616c6c6f77696e6720757365727320746f20616363657373206120636f6e74656e7420686f6c646572277320636174616c6f6720627920706179696e672061206461696c792066656520666f7220612063686f73656e206475726174696f6e2e0a0a4b65792066656174757265733a0a312920466c657869626c6520737562736372697074696f6e20706572696f6473207365742062792074686520617373657420686f6c6465722e0a322920496e7374616e742061636365737320746f20616c6c20636f6e74656e7420647572696e672074686520737562736372697074696f6e20706572696f642e\""},"value":"This policy follows a subscription model with daily pricing, allowing users to access a content holder's catalog by paying a daily fee for a chosen duration.\n\nKey features:\n1) Flexible subscription periods set by the asset holder.\n2) Instant access to all content during the subscription period."},"functionReturnParameters":1337,"id":1339,"nodeType":"Return","src":"1116:380:7"}]},"baseFunctions":[50252],"documentation":{"id":1333,"nodeType":"StructuredDocumentation","src":"966:74:7","text":"@notice Returns the business/strategy model implemented by the policy."},"functionSelector":"7284e416","implemented":true,"kind":"function","modifiers":[],"name":"description","nameLocation":"1054:11:7","parameters":{"id":1334,"nodeType":"ParameterList","parameters":[],"src":"1065:2:7"},"returnParameters":{"id":1337,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1336,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1341,"src":"1091:13:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1335,"name":"string","nodeType":"ElementaryTypeName","src":"1091:6:7","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1090:15:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":1384,"nodeType":"FunctionDefinition","src":"1895:377:7","nodes":[],"body":{"id":1383,"nodeType":"Block","src":"1994:278:7","nodes":[],"statements":[{"assignments":[1353,1355],"declarations":[{"constant":false,"id":1353,"mutability":"mutable","name":"price","nameLocation":"2013:5:7","nodeType":"VariableDeclaration","scope":1383,"src":"2005:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1352,"name":"uint256","nodeType":"ElementaryTypeName","src":"2005:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1355,"mutability":"mutable","name":"currency","nameLocation":"2028:8:7","nodeType":"VariableDeclaration","scope":1383,"src":"2020:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1354,"name":"address","nodeType":"ElementaryTypeName","src":"2020:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1365,"initialValue":{"arguments":[{"id":1358,"name":"init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1345,"src":"2051:4:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1360,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2058:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1359,"name":"uint256","nodeType":"ElementaryTypeName","src":"2058:7:7","typeDescriptions":{}}},{"id":1362,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2067:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1361,"name":"address","nodeType":"ElementaryTypeName","src":"2067:7:7","typeDescriptions":{}}}],"id":1363,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"2057:18:7","typeDescriptions":{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_tuple$_t_type$_t_uint256_$_$_t_type$_t_address_$_$","typeString":"tuple(type(uint256),type(address))"}],"expression":{"id":1356,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2040:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1357,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2044:6:7","memberName":"decode","nodeType":"MemberAccess","src":"2040:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1364,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2040:36:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_payable_$","typeString":"tuple(uint256,address payable)"}},"nodeType":"VariableDeclarationStatement","src":"2004:72:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1366,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2090:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1367,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2099:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2090:10:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1373,"nodeType":"IfStatement","src":"2086:75:7","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e76616c696420737562736372697074696f6e2070726963652e","id":1370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2131:29:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""},"value":"Invalid subscription price."}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c34de7f84731edc9f4306314e0fbfea34befcd31b45a6958b105a0d671747e17","typeString":"literal_string \"Invalid subscription price.\""}],"id":1369,"name":"InvalidInitialization","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50827,"src":"2109:21:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2109:52:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1372,"nodeType":"RevertStatement","src":"2102:59:7"}},{"expression":{"id":1381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1374,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"2221:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1376,"indexExpression":{"id":1375,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1343,"src":"2231:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"2221:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1378,"name":"price","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1353,"src":"2249:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1379,"name":"currency","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1355,"src":"2256:8:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1377,"name":"Package","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1303,"src":"2241:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Package_$1303_storage_ptr_$","typeString":"type(struct SubscriptionPolicy.Package storage pointer)"}},"id":1380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2241:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"src":"2221:44:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"id":1382,"nodeType":"ExpressionStatement","src":"2221:44:7"}]},"baseFunctions":[50260],"functionSelector":"d1f57894","implemented":true,"kind":"function","modifiers":[{"id":1348,"kind":"modifierInvocation","modifierName":{"id":1347,"name":"onlyPolicyAuthorizer","nameLocations":["1961:20:7"],"nodeType":"IdentifierPath","referencedDeclaration":50865,"src":"1961:20:7"},"nodeType":"ModifierInvocation","src":"1961:20:7"},{"id":1350,"kind":"modifierInvocation","modifierName":{"id":1349,"name":"initializer","nameLocations":["1982:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":50878,"src":"1982:11:7"},"nodeType":"ModifierInvocation","src":"1982:11:7"}],"name":"initialize","nameLocation":"1904:10:7","parameters":{"id":1346,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1343,"mutability":"mutable","name":"holder","nameLocation":"1923:6:7","nodeType":"VariableDeclaration","scope":1384,"src":"1915:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1342,"name":"address","nodeType":"ElementaryTypeName","src":"1915:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1345,"mutability":"mutable","name":"init","nameLocation":"1946:4:7","nodeType":"VariableDeclaration","scope":1384,"src":"1931:19:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1344,"name":"bytes","nodeType":"ElementaryTypeName","src":"1931:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"1914:37:7"},"returnParameters":{"id":1351,"nodeType":"ParameterList","parameters":[],"src":"1994:0:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1457,"nodeType":"FunctionDefinition","src":"2427:933:7","nodes":[],"body":{"id":1456,"nodeType":"Block","src":"2580:780:7","nodes":[],"statements":[{"assignments":[1401],"declarations":[{"constant":false,"id":1401,"mutability":"mutable","name":"pkg","nameLocation":"2605:3:7","nodeType":"VariableDeclaration","scope":1456,"src":"2590:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":1400,"nodeType":"UserDefinedTypeName","pathNode":{"id":1399,"name":"Package","nameLocations":["2590:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"2590:7:7"},"referencedDeclaration":1303,"src":"2590:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":1405,"initialValue":{"baseExpression":{"id":1402,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"2611:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1404,"indexExpression":{"id":1403,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1386,"src":"2621:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2611:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"2590:38:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1406,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2642:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1407,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2646:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"2642:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":1408,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2661:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2642:20:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1415,"nodeType":"IfStatement","src":"2638:213:7","trueBody":{"id":1414,"nodeType":"Block","src":"2664:187:7","statements":[{"errorCall":{"arguments":[{"hexValue":"496e76616c6964206e6f7420696e697469616c697a656420686f6c64657220636f6e646974696f6e73","id":1411,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2796:43:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""},"value":"Invalid not initialized holder conditions"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1aec205e23794276aa0afcfadd0b767e900e2e41565fc044513d6e45af83bcbd","typeString":"literal_string \"Invalid not initialized holder conditions\""}],"id":1410,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50819,"src":"2777:18:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:63:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1413,"nodeType":"RevertStatement","src":"2770:70:7"}]}},{"assignments":[1417],"declarations":[{"constant":false,"id":1417,"mutability":"mutable","name":"paidAmount","nameLocation":"2869:10:7","nodeType":"VariableDeclaration","scope":1456,"src":"2861:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1416,"name":"uint256","nodeType":"ElementaryTypeName","src":"2861:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1420,"initialValue":{"expression":{"id":1418,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"2882:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":1419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2892:5:7","memberName":"total","nodeType":"MemberAccess","referencedDeclaration":51191,"src":"2882:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2861:36:7"},{"assignments":[1422],"declarations":[{"constant":false,"id":1422,"mutability":"mutable","name":"partiesLen","nameLocation":"2915:10:7","nodeType":"VariableDeclaration","scope":1456,"src":"2907:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1421,"name":"uint256","nodeType":"ElementaryTypeName","src":"2907:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1426,"initialValue":{"expression":{"expression":{"id":1423,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"2928:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},"id":1424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2938:7:7","memberName":"parties","nodeType":"MemberAccess","referencedDeclaration":51196,"src":"2928:17:7","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":1425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2946:6:7","memberName":"length","nodeType":"MemberAccess","src":"2928:24:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2907:45:7"},{"assignments":[1428],"declarations":[{"constant":false,"id":1428,"mutability":"mutable","name":"pricePerDay","nameLocation":"2970:11:7","nodeType":"VariableDeclaration","scope":1456,"src":"2962:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1427,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1431,"initialValue":{"expression":{"id":1429,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1401,"src":"2984:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2988:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"2984:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2962:37:7"},{"assignments":[1433],"declarations":[{"constant":false,"id":1433,"mutability":"mutable","name":"duration","nameLocation":"3097:8:7","nodeType":"VariableDeclaration","scope":1456,"src":"3089:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1432,"name":"uint256","nodeType":"ElementaryTypeName","src":"3089:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1439,"initialValue":{"arguments":[{"id":1435,"name":"paidAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1417,"src":"3130:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1436,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1428,"src":"3142:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1437,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1422,"src":"3155:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1434,"name":"_verifyDaysFromAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1596,"src":"3108:21:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) pure returns (uint256)"}},"id":1438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3108:58:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3089:77:7"},{"assignments":[1441],"declarations":[{"constant":false,"id":1441,"mutability":"mutable","name":"subExpire","nameLocation":"3250:9:7","nodeType":"VariableDeclaration","scope":1456,"src":"3242:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1440,"name":"uint256","nodeType":"ElementaryTypeName","src":"3242:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1449,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1442,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3262:5:7","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":1443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3268:9:7","memberName":"timestamp","nodeType":"MemberAccess","src":"3262:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1444,"name":"duration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1433,"src":"3281:8:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"31","id":1445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3292:6:7","subdenomination":"days","typeDescriptions":{"typeIdentifier":"t_rational_86400_by_1","typeString":"int_const 86400"},"value":"1"},"src":"3281:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1447,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"3280:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3262:37:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3242:57:7"},{"expression":{"arguments":[{"id":1451,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1386,"src":"3324:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1452,"name":"agreement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1389,"src":"3332:9:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"}},{"id":1453,"name":"subExpire","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1441,"src":"3343:9:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement calldata"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1450,"name":"_commit","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51083,"src":"3316:7:7","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_Agreement_$51199_memory_ptr_$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (address,struct T.Agreement memory,uint256) returns (uint256[] memory)"}},"id":1454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3316:37:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"functionReturnParameters":1398,"id":1455,"nodeType":"Return","src":"3309:44:7"}]},"baseFunctions":[50272],"functionSelector":"464c0aeb","implemented":true,"kind":"function","modifiers":[{"id":1392,"kind":"modifierInvocation","modifierName":{"id":1391,"name":"onlyPolicyManager","nameLocations":["2523:17:7"],"nodeType":"IdentifierPath","referencedDeclaration":50845,"src":"2523:17:7"},"nodeType":"ModifierInvocation","src":"2523:17:7"},{"id":1394,"kind":"modifierInvocation","modifierName":{"id":1393,"name":"initialized","nameLocations":["2541:11:7"],"nodeType":"IdentifierPath","referencedDeclaration":50890,"src":"2541:11:7"},"nodeType":"ModifierInvocation","src":"2541:11:7"}],"name":"enforce","nameLocation":"2436:7:7","parameters":{"id":1390,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1386,"mutability":"mutable","name":"holder","nameLocation":"2461:6:7","nodeType":"VariableDeclaration","scope":1457,"src":"2453:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1385,"name":"address","nodeType":"ElementaryTypeName","src":"2453:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1389,"mutability":"mutable","name":"agreement","nameLocation":"2498:9:7","nodeType":"VariableDeclaration","scope":1457,"src":"2477:30:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_calldata_ptr","typeString":"struct T.Agreement"},"typeName":{"id":1388,"nodeType":"UserDefinedTypeName","pathNode":{"id":1387,"name":"T.Agreement","nameLocations":["2477:1:7","2479:9:7"],"nodeType":"IdentifierPath","referencedDeclaration":51199,"src":"2477:11:7"},"referencedDeclaration":51199,"src":"2477:11:7","typeDescriptions":{"typeIdentifier":"t_struct$_Agreement_$51199_storage_ptr","typeString":"struct T.Agreement"}},"visibility":"internal"}],"src":"2443:70:7"},"returnParameters":{"id":1398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1457,"src":"2562:16:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":1395,"name":"uint256","nodeType":"ElementaryTypeName","src":"2562:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1396,"nodeType":"ArrayTypeName","src":"2562:9:7","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"src":"2561:18:7"},"scope":1647,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1505,"nodeType":"FunctionDefinition","src":"3449:527:7","nodes":[],"body":{"id":1504,"nodeType":"Block","src":"3545:431:7","nodes":[],"statements":[{"condition":{"arguments":[{"id":1468,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3640:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1467,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"3623:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":1469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3623:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1486,"nodeType":"IfStatement","src":"3619:186:7","trueBody":{"id":1485,"nodeType":"Block","src":"3651:154:7","statements":[{"assignments":[1471],"declarations":[{"constant":false,"id":1471,"mutability":"mutable","name":"holder","nameLocation":"3705:6:7","nodeType":"VariableDeclaration","scope":1485,"src":"3697:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1470,"name":"address","nodeType":"ElementaryTypeName","src":"3697:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1479,"initialValue":{"arguments":[{"id":1474,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3725:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1476,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3736:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1475,"name":"address","nodeType":"ElementaryTypeName","src":"3736:7:7","typeDescriptions":{}}}],"id":1477,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3735:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":1472,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3714:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1473,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3718:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3714:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3714:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"3697:48:7"},{"expression":{"arguments":[{"id":1481,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3778:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1482,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1471,"src":"3787:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1480,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51009,"src":"3766:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1483,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3766:28:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1466,"id":1484,"nodeType":"Return","src":"3759:35:7"}]}},{"assignments":[1488],"declarations":[{"constant":false,"id":1488,"mutability":"mutable","name":"assetId","nameLocation":"3871:7:7","nodeType":"VariableDeclaration","scope":1504,"src":"3863:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1487,"name":"uint256","nodeType":"ElementaryTypeName","src":"3863:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1496,"initialValue":{"arguments":[{"id":1491,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1462,"src":"3892:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1493,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3903:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":1492,"name":"uint256","nodeType":"ElementaryTypeName","src":"3903:7:7","typeDescriptions":{}}}],"id":1494,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"3902:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":1489,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3881:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1490,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3885:6:7","memberName":"decode","nodeType":"MemberAccess","src":"3881:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3881:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3863:49:7"},{"expression":{"arguments":[{"id":1498,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1460,"src":"3941:7:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1500,"name":"assetId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1488,"src":"3960:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1499,"name":"getHolder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51023,"src":"3950:9:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":1501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3950:18:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1497,"name":"isCompliant","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51009,"src":"3929:11:7","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view returns (bool)"}},"id":1502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3929:40:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1466,"id":1503,"nodeType":"Return","src":"3922:47:7"}]},"baseFunctions":[50282],"documentation":{"id":1458,"nodeType":"StructuredDocumentation","src":"3366:78:7","text":"@notice Verifies if an account has access to holder's content or asset id."},"functionSelector":"cfdce1a7","implemented":true,"kind":"function","modifiers":[],"name":"isAccessAllowed","nameLocation":"3458:15:7","parameters":{"id":1463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1460,"mutability":"mutable","name":"account","nameLocation":"3482:7:7","nodeType":"VariableDeclaration","scope":1505,"src":"3474:15:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1459,"name":"address","nodeType":"ElementaryTypeName","src":"3474:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1462,"mutability":"mutable","name":"criteria","nameLocation":"3506:8:7","nodeType":"VariableDeclaration","scope":1505,"src":"3491:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1461,"name":"bytes","nodeType":"ElementaryTypeName","src":"3491:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"3473:42:7"},"returnParameters":{"id":1466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1465,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1505,"src":"3539:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1464,"name":"bool","nodeType":"ElementaryTypeName","src":"3539:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3538:6:7"},"scope":1647,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1553,"nodeType":"FunctionDefinition","src":"4066:604:7","nodes":[],"body":{"id":1552,"nodeType":"Block","src":"4152:518:7","nodes":[],"statements":[{"condition":{"id":1517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4345:27:7","subExpression":{"arguments":[{"id":1515,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"4363:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}],"id":1514,"name":"_isHolderAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1646,"src":"4346:16:7","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bytes_calldata_ptr_$returns$_t_bool_$","typeString":"function (bytes calldata) pure returns (bool)"}},"id":1516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4346:26:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1522,"nodeType":"IfStatement","src":"4341:95:7","trueBody":{"id":1521,"nodeType":"Block","src":"4374:62:7","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1518,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50806,"src":"4395:28:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4395:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1520,"nodeType":"RevertStatement","src":"4388:37:7"}]}},{"assignments":[1524],"declarations":[{"constant":false,"id":1524,"mutability":"mutable","name":"holder","nameLocation":"4454:6:7","nodeType":"VariableDeclaration","scope":1552,"src":"4446:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1523,"name":"address","nodeType":"ElementaryTypeName","src":"4446:7:7","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1532,"initialValue":{"arguments":[{"id":1527,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1508,"src":"4474:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},{"components":[{"id":1529,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4485:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1528,"name":"address","nodeType":"ElementaryTypeName","src":"4485:7:7","typeDescriptions":{}}}],"id":1530,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"4484:9:7","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"},{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"}],"expression":{"id":1525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4463:3:7","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":1526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4467:6:7","memberName":"decode","nodeType":"MemberAccess","src":"4463:10:7","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":1531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4463:31:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"VariableDeclarationStatement","src":"4446:48:7"},{"assignments":[1535],"declarations":[{"constant":false,"id":1535,"mutability":"mutable","name":"pkg","nameLocation":"4519:3:7","nodeType":"VariableDeclaration","scope":1552,"src":"4504:18:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package"},"typeName":{"id":1534,"nodeType":"UserDefinedTypeName","pathNode":{"id":1533,"name":"Package","nameLocations":["4504:7:7"],"nodeType":"IdentifierPath","referencedDeclaration":1303,"src":"4504:7:7"},"referencedDeclaration":1303,"src":"4504:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage_ptr","typeString":"struct SubscriptionPolicy.Package"}},"visibility":"internal"}],"id":1539,"initialValue":{"baseExpression":{"id":1536,"name":"_packages","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1308,"src":"4525:9:7","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Package_$1303_storage_$","typeString":"mapping(address => struct SubscriptionPolicy.Package storage ref)"}},"id":1538,"indexExpression":{"id":1537,"name":"holder","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1524,"src":"4535:6:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4525:17:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_storage","typeString":"struct SubscriptionPolicy.Package storage ref"}},"nodeType":"VariableDeclarationStatement","src":"4504:38:7"},{"expression":{"arguments":[{"expression":{"id":1542,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1535,"src":"4603:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1543,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4607:11:7","memberName":"pricePerDay","nodeType":"MemberAccess","referencedDeclaration":1300,"src":"4603:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1544,"name":"pkg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1535,"src":"4620:3:7","typeDescriptions":{"typeIdentifier":"t_struct$_Package_$1303_memory_ptr","typeString":"struct SubscriptionPolicy.Package memory"}},"id":1545,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"4624:8:7","memberName":"currency","nodeType":"MemberAccess","referencedDeclaration":1302,"src":"4620:12:7","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"expression":{"id":1546,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4634:1:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":1547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4636:9:7","memberName":"RateBasis","nodeType":"MemberAccess","referencedDeclaration":51211,"src":"4634:11:7","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_RateBasis_$51211_$","typeString":"type(enum T.RateBasis)"}},"id":1548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4646:5:7","memberName":"DAILY","nodeType":"MemberAccess","referencedDeclaration":51209,"src":"4634:17:7","typeDescriptions":{"typeIdentifier":"t_enum$_RateBasis_$51211","typeString":"enum T.RateBasis"}},{"hexValue":"697066733a2f2f","id":1549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4653:9:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""},"value":"ipfs://"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_RateBasis_$51211","typeString":"enum T.RateBasis"},{"typeIdentifier":"t_stringliteral_66f0790b1cbe0dcac007f07341b00cafe2bda254914729058b5209e04b702afe","typeString":"literal_string \"ipfs://\""}],"expression":{"id":1540,"name":"T","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":51233,"src":"4595:1:7","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_T_$51233_$","typeString":"type(library T)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4597:5:7","memberName":"Terms","nodeType":"MemberAccess","referencedDeclaration":51222,"src":"4595:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Terms_$51222_storage_ptr_$","typeString":"type(struct T.Terms storage pointer)"}},"id":1550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4595:68:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms memory"}},"functionReturnParameters":1513,"id":1551,"nodeType":"Return","src":"4588:75:7"}]},"baseFunctions":[50291],"documentation":{"id":1506,"nodeType":"StructuredDocumentation","src":"3982:79:7","text":"@notice Retrieves the terms associated with a specific criteria and policy."},"functionSelector":"a3937111","implemented":true,"kind":"function","modifiers":[],"name":"resolveTerms","nameLocation":"4075:12:7","parameters":{"id":1509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1508,"mutability":"mutable","name":"criteria","nameLocation":"4103:8:7","nodeType":"VariableDeclaration","scope":1553,"src":"4088:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1507,"name":"bytes","nodeType":"ElementaryTypeName","src":"4088:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4087:25:7"},"returnParameters":{"id":1513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1512,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1553,"src":"4136:14:7","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_memory_ptr","typeString":"struct T.Terms"},"typeName":{"id":1511,"nodeType":"UserDefinedTypeName","pathNode":{"id":1510,"name":"T.Terms","nameLocations":["4136:1:7","4138:5:7"],"nodeType":"IdentifierPath","referencedDeclaration":51222,"src":"4136:7:7"},"referencedDeclaration":51222,"src":"4136:7:7","typeDescriptions":{"typeIdentifier":"t_struct$_Terms_$51222_storage_ptr","typeString":"struct T.Terms"}},"visibility":"internal"}],"src":"4135:16:7"},"scope":1647,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1596,"nodeType":"FunctionDefinition","src":"4676:669:7","nodes":[],"body":{"id":1595,"nodeType":"Block","src":"4825:520:7","nodes":[],"statements":[{"assignments":[1565],"declarations":[{"constant":false,"id":1565,"mutability":"mutable","name":"paymentPerAccount","nameLocation":"4918:17:7","nodeType":"VariableDeclaration","scope":1595,"src":"4910:25:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1564,"name":"uint256","nodeType":"ElementaryTypeName","src":"4910:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1569,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1566,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"4938:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1567,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"4947:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4938:19:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4910:47:7"},{"assignments":[1571],"declarations":[{"constant":false,"id":1571,"mutability":"mutable","name":"subscriptionDuration","nameLocation":"5023:20:7","nodeType":"VariableDeclaration","scope":1595,"src":"5015:28:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1570,"name":"uint256","nodeType":"ElementaryTypeName","src":"5015:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1575,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1572,"name":"paymentPerAccount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1565,"src":"5046:17:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":1573,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"5066:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5046:31:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5015:62:7"},{"assignments":[1577],"declarations":[{"constant":false,"id":1577,"mutability":"mutable","name":"total","nameLocation":"5150:5:7","nodeType":"VariableDeclaration","scope":1595,"src":"5142:13:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1576,"name":"uint256","nodeType":"ElementaryTypeName","src":"5142:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1584,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1583,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1578,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"5159:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1579,"name":"pricePerDay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1557,"src":"5182:11:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5159:34:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":1581,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5158:36:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":1582,"name":"partiesLen","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1559,"src":"5197:10:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5158:49:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5142:65:7"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1585,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1555,"src":"5221:6:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1586,"name":"total","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1577,"src":"5230:5:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5221:14:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1592,"nodeType":"IfStatement","src":"5217:84:7","trueBody":{"errorCall":{"arguments":[{"hexValue":"496e73756666696369656e742066756e647320666f7220737562736372697074696f6e","id":1589,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5263:37:7","typeDescriptions":{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""},"value":"Insufficient funds for subscription"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_672f704359c96e0312355040ab5c89b621a6d70e08076807a34681fa7dc8d2e7","typeString":"literal_string \"Insufficient funds for subscription\""}],"id":1588,"name":"InvalidEnforcement","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50819,"src":"5244:18:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_string_memory_ptr_$returns$_t_error_$","typeString":"function (string memory) pure returns (error)"}},"id":1590,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5244:57:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1591,"nodeType":"RevertStatement","src":"5237:64:7"}},{"expression":{"id":1593,"name":"subscriptionDuration","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1571,"src":"5318:20:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1563,"id":1594,"nodeType":"Return","src":"5311:27:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_verifyDaysFromAmount","nameLocation":"4685:21:7","parameters":{"id":1560,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1555,"mutability":"mutable","name":"amount","nameLocation":"4724:6:7","nodeType":"VariableDeclaration","scope":1596,"src":"4716:14:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1554,"name":"uint256","nodeType":"ElementaryTypeName","src":"4716:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1557,"mutability":"mutable","name":"pricePerDay","nameLocation":"4748:11:7","nodeType":"VariableDeclaration","scope":1596,"src":"4740:19:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1556,"name":"uint256","nodeType":"ElementaryTypeName","src":"4740:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1559,"mutability":"mutable","name":"partiesLen","nameLocation":"4777:10:7","nodeType":"VariableDeclaration","scope":1596,"src":"4769:18:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1558,"name":"uint256","nodeType":"ElementaryTypeName","src":"4769:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4706:87:7"},"returnParameters":{"id":1563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1596,"src":"4816:7:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1561,"name":"uint256","nodeType":"ElementaryTypeName","src":"4816:7:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4815:9:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":1646,"nodeType":"FunctionDefinition","src":"5351:1087:7","nodes":[],"body":{"id":1645,"nodeType":"Block","src":"5430:1008:7","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1603,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6193:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"id":1604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6202:6:7","memberName":"length","nodeType":"MemberAccess","src":"6193:15:7","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"3332","id":1605,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6212:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"src":"6193:21:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1610,"nodeType":"IfStatement","src":"6189:64:7","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1607,"name":"InvalidNotSupportedOperation","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":50806,"src":"6223:28:7","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$_t_error_$","typeString":"function () pure returns (error)"}},"id":1608,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6223:30:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_error","typeString":"error"}},"id":1609,"nodeType":"RevertStatement","src":"6216:37:7"}},{"assignments":[1612],"declarations":[{"constant":false,"id":1612,"mutability":"mutable","name":"last20Valid","nameLocation":"6268:11:7","nodeType":"VariableDeclaration","scope":1645,"src":"6263:16:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1611,"name":"bool","nodeType":"ElementaryTypeName","src":"6263:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1625,"initialValue":{"commonType":{"typeIdentifier":"t_bytes20","typeString":"bytes20"},"id":1624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1615,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6290:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3332","id":1617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6302:2:7","typeDescriptions":{"typeIdentifier":"t_rational_32_by_1","typeString":"int_const 32"},"value":"32"},"id":1618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6290:15:7","startExpression":{"hexValue":"3132","id":1616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6299:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6282:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1613,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6282:7:7","typeDescriptions":{}}},"id":1619,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6282:24:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6318:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1621,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6310:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes20_$","typeString":"type(bytes20)"},"typeName":{"id":1620,"name":"bytes20","nodeType":"ElementaryTypeName","src":"6310:7:7","typeDescriptions":{}}},"id":1623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6310:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes20","typeString":"bytes20"}},"src":"6282:38:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6263:57:7"},{"assignments":[1627],"declarations":[{"constant":false,"id":1627,"mutability":"mutable","name":"first12Valid","nameLocation":"6335:12:7","nodeType":"VariableDeclaration","scope":1645,"src":"6330:17:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1626,"name":"bool","nodeType":"ElementaryTypeName","src":"6330:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":1640,"initialValue":{"commonType":{"typeIdentifier":"t_bytes12","typeString":"bytes12"},"id":1639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"baseExpression":{"id":1630,"name":"criteria","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1598,"src":"6358:8:7","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes calldata"}},"endExpression":{"hexValue":"3132","id":1632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6369:2:7","typeDescriptions":{"typeIdentifier":"t_rational_12_by_1","typeString":"int_const 12"},"value":"12"},"id":1633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexRangeAccess","src":"6358:14:7","startExpression":{"hexValue":"30","id":1631,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6367:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_calldata_ptr_slice","typeString":"bytes calldata slice"}],"id":1629,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6350:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1628,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6350:7:7","typeDescriptions":{}}},"id":1634,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6350:23:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1637,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6385:1:7","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":1636,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6377:7:7","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes12_$","typeString":"type(bytes12)"},"typeName":{"id":1635,"name":"bytes12","nodeType":"ElementaryTypeName","src":"6377:7:7","typeDescriptions":{}}},"id":1638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6377:10:7","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes12","typeString":"bytes12"}},"src":"6350:37:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"6330:57:7"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1641,"name":"last20Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1612,"src":"6404:11:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"id":1642,"name":"first12Valid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1627,"src":"6419:12:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6404:27:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1602,"id":1644,"nodeType":"Return","src":"6397:34:7"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isHolderAddress","nameLocation":"5360:16:7","parameters":{"id":1599,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1598,"mutability":"mutable","name":"criteria","nameLocation":"5392:8:7","nodeType":"VariableDeclaration","scope":1646,"src":"5377:23:7","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":1597,"name":"bytes","nodeType":"ElementaryTypeName","src":"5377:5:7","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5376:25:7"},"returnParameters":{"id":1602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1601,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1646,"src":"5424:4:7","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1600,"name":"bool","nodeType":"ElementaryTypeName","src":"5424:4:7","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5423:6:7"},"scope":1647,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":1296,"name":"BasePolicy","nameLocations":["312:10:7"],"nodeType":"IdentifierPath","referencedDeclaration":51139,"src":"312:10:7"},"id":1297,"nodeType":"InheritanceSpecifier","src":"312:10:7"}],"canonicalName":"SubscriptionPolicy","contractDependencies":[],"contractKind":"contract","documentation":{"id":1295,"nodeType":"StructuredDocumentation","src":"184:97:7","text":"@title SubscriptionPolicy\n @notice Implements a subscription-based content access policy."},"fullyImplemented":true,"linearizedBaseContracts":[1647,51139,46322,46334,50308,45854],"name":"SubscriptionPolicy","nameLocation":"290:18:7","scope":1648,"usedErrors":[45799,50803,50806,50811,50814,50819,50822,50827],"usedEvents":[50800]}],"license":"MIT"},"id":7} \ No newline at end of file diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index 38d98a514..d300946d8 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -35,10 +35,17 @@ const useGetSmartWalletTransactions = () => { ) ) ), + FundsWithdrawn: parseAbiItem( + createEventSignature( + LedgerVaultAbi.abi.find( + (item: any) => item.type === 'event' && item.name === 'FundsWithdrawn' + ) + ) + ), }; // Fetch logs for each event - const [transfersToMe, transfersFromMe, deposits] = await Promise.all([ + const [transfersToMe, transfersFromMe, deposits, withdraws] = await Promise.all([ publicClient.getLogs({ address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, event: eventsAbi.FundsTransferred as any, @@ -60,9 +67,16 @@ const useGetSmartWalletTransactions = () => { fromBlock: 0n, toBlock: 'latest', }), + publicClient.getLogs({ + address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, + event: eventsAbi.FundsWithdrawn as any, + args: { origin: sessionData.address }, + fromBlock: 0n, + toBlock: 'latest', + }), ]); - const allLogs = [...transfersToMe, ...transfersFromMe, ...deposits]; + const allLogs = [...transfersToMe, ...transfersFromMe, ...deposits, ...withdraws]; // Add timestamps and format details for each log const logsWithDetails = await Promise.all( @@ -78,6 +92,8 @@ const useGetSmartWalletTransactions = () => { : 'transferFrom'; case 'FundsDeposited': return 'deposit'; + case 'FundsWithdrawn': + return 'withdraw'; default: return 'unknown'; } diff --git a/src/sections/finance/components/finance-balance-statistics.tsx b/src/sections/finance/components/finance-balance-statistics.tsx index 155256adb..dd068b601 100644 --- a/src/sections/finance/components/finance-balance-statistics.tsx +++ b/src/sections/finance/components/finance-balance-statistics.tsx @@ -1,100 +1,231 @@ -import { ApexOptions } from 'apexcharts'; -import {useState, useCallback, useEffect} from 'react'; +import { useState, useEffect } from 'react'; // @mui import Box from '@mui/material/Box'; import MenuItem from '@mui/material/MenuItem'; import ButtonBase from '@mui/material/ButtonBase'; import CardHeader from '@mui/material/CardHeader'; -import Card, { CardProps } from '@mui/material/Card'; -// components +import Card from '@mui/material/Card'; +// Components import Iconify from '@src/components/iconify'; import Chart, { useChart } from '@src/components/chart'; import CustomPopover, { usePopover } from '@src/components/custom-popover'; +import useGetSmartWalletTransactions from '@src/hooks/use-get-smart-wallet-transactions.ts'; -// ---------------------------------------------------------------------- - -interface Props extends CardProps { - title?: string; - subheader?: string; - chart: { - colors?: string[]; - series: { - type: string; - categories?: string[]; - data: { - name: string; - data: number[]; - }[]; - }[]; - options?: ApexOptions; - }; -} - -export default function FinanceBalanceStatistics({ title, subheader, chart, ...other }: Props) { - const { colors, series, options } = chart; - +export default function FinanceBalanceStatistics() { + const { logs, loading } = useGetSmartWalletTransactions(); const popover = usePopover(); + const [timeFrame, setTimeFrame] = useState('Week'); + const [incomeData, setIncomeData] = useState([]); + const [expenseData, setExpenseData] = useState([]); + const [categories, setCategories] = useState([]); + const [fullCategories, setFullCategories] = useState([]); - const [seriesData, setSeriesData] = useState('Week'); - const [categories, setCategories] = useState(null); - + // Initialize chart options with short labels and detailed tooltips const chartOptions = useChart({ - colors, + colors: ['#00AB55', '#FF4842'], // Green for income, red for expenses stroke: { show: true, width: 2, colors: ['transparent'], }, xaxis: { - categories, + categories: categories, // Short labels }, tooltip: { y: { - formatter: (value: number) => `$${value}`, + formatter: (value: number) => `${value} MMC`, // Value format + }, + x: { + formatter: (_, { dataPointIndex }) => { + const fullLabel = fullCategories[dataPointIndex]; + if (fullLabel && fullLabel.includes('-')) { + // Timeframe "Week" or "Month" + const [start, end] = fullLabel.split('-').map((part) => part.trim()); + return `From ${start} to ${end}`; // Example: "From Dec 15 to Dec 21" or "From Dec 29 to Jan 4" + } else { + // Timeframe "Year" + return fullLabel || 'No data available'; + } + }, }, }, - ...options, }); + // Generate labels in useEffect useEffect(() => { - setCategories(series[0].categories as any) - },[series]) + if (!logs || loading) return; + + const now = Date.now(); + const oneWeekAgo = now - 7 * 24 * 60 * 60 * 1000; + const oneMonthAgo = now - 30 * 24 * 60 * 60 * 1000; + const oneYearAgo = now - 365 * 24 * 60 * 60 * 1000; + + // Grouped data structure: key is timestamp for "Week" and "Month", string for "Year" + let groupedData: Record = {}; + + if (timeFrame === 'Week') { + // Group data by each day in the last week + groupedData = logs.reduce((acc, log) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneWeekAgo) return acc; + + // Format date as 'YYYY-MM-DD' for consistent sorting + const date = new Date(timestamp); + const dateKey = date.toISOString().split('T')[0]; // '2024-12-31' + const dayLabel = date.toLocaleDateString('en-US', { + weekday: 'short', + month: 'short', + day: 'numeric', + }); // e.g., 'Mon Dec 31' + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[dateKey]) acc[dateKey] = { label: dayLabel, income: 0, expense: 0 }; + + if (eventType === 'transferTo' || eventType === 'deposit') { + acc[dateKey].income += amount; + } else if (eventType === 'transferFrom') { + acc[dateKey].expense += amount; + } + + return acc; + }, {}); + } else if (timeFrame === 'Month') { + // Group data by week within the last month + groupedData = logs.reduce((acc, log) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneMonthAgo) return acc; + + const date = new Date(timestamp); + const weekStart = new Date( + date.getFullYear(), + date.getMonth(), + date.getDate() - date.getDay() // Start of the week (Sunday) + ); + const weekEnd = new Date(weekStart.getTime() + 6 * 24 * 60 * 60 * 1000); // End of the week (Saturday) + + const weekStartTimestamp = weekStart.getTime(); + + const label = `${weekStart.toLocaleDateString('en-US', { + month: 'short', + day: 'numeric', + })} - ${weekEnd.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })}`; // e.g., "Dec 1 - Dec 7" + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[weekStartTimestamp]) acc[weekStartTimestamp] = { label, income: 0, expense: 0 }; - const handleChangeSeries = useCallback( - (newValue: string) => { - popover.onClose(); - setSeriesData(newValue); + if (eventType === 'transferTo' || eventType === 'deposit') { + acc[weekStartTimestamp].income += amount; + } else if (eventType === 'transferFrom') { + acc[weekStartTimestamp].expense += amount; + } - // Set the categories based on the selected series (Week, Month, Year) - const selectedSeries = series.find((item) => item.type === newValue); + return acc; + }, {}); + } else if (timeFrame === 'Year') { + // Group data by each month in the last year + groupedData = logs.reduce((acc, log) => { + const timestamp = Number(log.timestamp) * 1000; + if (timestamp < oneYearAgo) return acc; - if (selectedSeries) { - setCategories(selectedSeries.categories as any); + const date = new Date(timestamp); + const monthLabel = date.toLocaleDateString('en-US', { month: 'short', year: 'numeric' }); // e.g., 'Dec 2024' + + const amount = parseFloat(log.formattedAmount); + const eventType = log.event; + + if (!acc[monthLabel]) acc[monthLabel] = { label: monthLabel, income: 0, expense: 0 }; + + if (eventType === 'transferTo' || eventType === 'deposit') { + acc[monthLabel].income += amount; + } else if (eventType === 'transferFrom') { + acc[monthLabel].expense += amount; + } + + return acc; + }, {}); + } + + // Sort keys chronologically + const sortedKeys = Object.keys(groupedData) + .map((key) => (typeof key === 'string' && /^\d+$/.test(key) ? Number(key) : key)) + .sort((a, b) => { + if (typeof a === 'number' && typeof b === 'number') { + return a - b; + } + const dateA = new Date(a as string).getTime(); + const dateB = new Date(b as string).getTime(); + return dateA - dateB; + }); + + // Extract full labels for tooltips + const sortedFullCategories = sortedKeys.map((key) => groupedData[key].label); + setFullCategories(sortedFullCategories); + + // Generate short labels for the X-axis + const shortLabels = sortedKeys.map((key) => { + const label = groupedData[key].label; + if (timeFrame === 'Month') { + if (label && label.includes('-')) { + const [start, end] = label.split('-').map((part) => part.trim()); + const startParts = start.split(' '); // ['Dec', '1'] + const endParts = end.split(' '); // ['Dec', '7'] or ['Jan', '4'] + + const startMonth = startParts[0]; + const startDay = startParts[1]; + const endMonth = endParts[0]; + const endDay = endParts[1]; + + if (startMonth === endMonth) { + return `${startMonth} ${startDay}-${endDay}`; // "Dec 1-7" + } else { + return `${startMonth} ${startDay}-${endMonth} ${endDay}`; // "Dec 29-Jan 4" + } + } } - }, - [popover] - ); + if (timeFrame === 'Week') { + return label || ''; + } + if (timeFrame === 'Year') { + return label || ''; + } + return label; + }); + + setCategories(shortLabels); + setIncomeData(sortedKeys.map((key) => groupedData[key].income)); + setExpenseData(sortedKeys.map((key) => groupedData[key].expense)); + }, [logs, timeFrame, loading, ]); + + const handleChangeTimeFrame = (newValue: string) => { + popover.onClose(); + setTimeFrame(newValue); + }; return ( <> - + - {seriesData} - + {timeFrame} - {series.map((item) => ( - - {item.type === seriesData && ( - - )} - - ))} + + + - {series.map((option) => ( + {['Week', 'Month', 'Year'].map((option) => ( handleChangeSeries(option.type)} + key={option} + selected={option === timeFrame} + onClick={() => handleChangeTimeFrame(option)} > - {option.type} + {option} ))} diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 333fca3bb..1582bae2d 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -36,7 +36,6 @@ export default function OverviewBankingView() { // remove the last element as it is the current day const processedData = groupedTransactionData(transactionsData); - const dataForBalanceStatistics = processedData.slice(0, -1); const daySeriesData = processDayData(processedData); // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; @@ -73,17 +72,11 @@ export default function OverviewBankingView() { - + - + Recent Transactions From 32c59f309f63a0ab8b57b9032b590a7f43a04495 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 15:47:55 -0600 Subject: [PATCH 67/71] refactor(finance): update transaction processing logic - Updated `processTransactionData` to handle transaction logs from `useGetSmartWalletTransactions`. - Replaced `TableRowTransactionType` with `ProcessedTransactionData` across relevant components. - Updated `FinanceTransactionHistory` and its rows to adapt to changes in transaction data structure. - Adjusted `TRANSACTIONS_TYPES` and transaction type filters to align with new event-based transaction types. - Enhanced date formatting and address truncation in transaction history display. --- .../use-get-smart-wallet-transactions.ts | 25 +++++++++++++- src/hooks/use-transaction-data.ts | 10 +++--- .../finance-transactions-history.tsx | 32 +++++++---------- .../finance-transactions-table-row.tsx | 21 ++++++++---- src/sections/finance/index.tsx | 14 +++++--- src/types/transaction.ts | 24 +++---------- .../finance-graphs/groupedTransactions.ts | 34 +++++++++++++------ 7 files changed, 93 insertions(+), 67 deletions(-) diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index d300946d8..a6f2502d0 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -5,9 +5,32 @@ import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; import { useSelector } from 'react-redux'; import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +export type TransactionLog = { + address: string; + args: { + amount: bigint; + currency: string; + recipient: string; + sender: string; + }; + blockHash: string; + blockNumber: bigint; + data: string; + event: string; + eventName: string; + formattedAmount: string; + logIndex: number; + readableDate: string; + removed: boolean; + timestamp: bigint; + topics: string[]; + transactionHash: string; + transactionIndex: number; +}; + const useGetSmartWalletTransactions = () => { const sessionData = useSelector((state: any) => state.auth.session); - const [logs, setLogs] = useState([]); + const [logs, setLogs] = useState([]); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); diff --git a/src/hooks/use-transaction-data.ts b/src/hooks/use-transaction-data.ts index 7ee9862b4..118864f50 100644 --- a/src/hooks/use-transaction-data.ts +++ b/src/hooks/use-transaction-data.ts @@ -33,15 +33,13 @@ export type TransactionType = { }; export type TableRowTransactionType = { - id: number; + id: string; name: string; avatarUrl: string; - amount:number | string; - category: string; - date: string; - message: string; - status: string; + amount:string | null; type: string; + date: bigint; + status: string; } export type TransactionData = { diff --git a/src/sections/finance/components/finance-transactions-history.tsx b/src/sections/finance/components/finance-transactions-history.tsx index f676136fc..374b0df12 100644 --- a/src/sections/finance/components/finance-transactions-history.tsx +++ b/src/sections/finance/components/finance-transactions-history.tsx @@ -8,7 +8,7 @@ import TableBody from '@mui/material/TableBody'; import TableContainer from '@mui/material/TableContainer'; // _mock -import {TRANSACTIONS_TYPES, transactions} from '@src/types/transaction'; +import {TRANSACTIONS_TYPES} from '@src/types/transaction'; // utils import { fTimestamp } from '@src/utils/format-time'; // components @@ -29,7 +29,7 @@ import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transacti // import FinanceTransactionTableRow from '@src/sections/finance/components/finance-transactions-table-row'; import FinanceTransactionsTableFiltersResult from '@src/sections/finance/components/finance-transactions-table-filters-result'; -import {TableRowTransactionType} from "@src/hooks/use-transaction-data.ts"; +import {ProcessedTransactionData} from "@src/utils/finance-graphs/groupedTransactions.ts"; // ---------------------------------------------------------------------- @@ -49,16 +49,11 @@ const defaultFilters: IOrderTableFilters = { endDate: null, }; -// ---------------------------------------------------------------------- -type FinanceTransactionsHistoryProps = { - transactionsData: TableRowTransactionType[]; -}; - -export default function FinanceTransactionsHistory({ transactionsData }: FinanceTransactionsHistoryProps) { +export default function FinanceTransactionsHistory(transactionsData: ProcessedTransactionData[]) { const table = useTable({ defaultOrderBy: 'date' }); - const [tableData, _setTableData] = useState(transactions(transactionsData)); + const [tableData, _setTableData] = useState(transactionsData); const [filters, setFilters] = useState(defaultFilters); @@ -125,16 +120,16 @@ export default function FinanceTransactionsHistory({ transactionsData }: Finance ((tab.value === 'all' || tab.value === filters.status) && 'filled') || 'soft' } color={ - (tab.value === 'income' && 'success') || - (tab.value === 'outcome' && 'warning') || + (tab.value === 'transferFrom' && 'success') || + (tab.value === 'transferTo' && 'warning') || 'default' } > {tab.value === 'all' && transactionsData.length} - {tab.value === 'income' && - transactionsData.filter((t) => t.type.toLowerCase() === 'income').length} - {tab.value === 'outcome' && - transactionsData.filter((t) => t.type.toLowerCase() === 'outcome').length} + {tab.value === 'transferFrom' && + transactionsData.filter((t) => t.type.toLowerCase() === 'transferFrom').length} + {tab.value === 'transferTo' && + transactionsData.filter((t) => t.type.toLowerCase() === 'transferTo').length} } /> @@ -196,7 +191,6 @@ export default function FinanceTransactionsHistory({ transactionsData }: Finance rowsPerPage={table.rowsPerPage} onPageChange={table.onChangePage} onRowsPerPageChange={table.onChangeRowsPerPage} - // dense={table.dense} onChangeDense={table.onChangeDense} /> @@ -212,7 +206,7 @@ function applyFilter({ filters, dateError, }: { - inputData: TableRowTransactionType[]; + inputData: ProcessedTransactionData[]; comparator: (a: any, b: any) => number; filters: IOrderTableFilters; dateError: boolean; @@ -247,8 +241,8 @@ function applyFilter({ if (startDate && endDate) { inputData = inputData.filter( (t) => - fTimestamp(t.date) >= fTimestamp(startDate) && - fTimestamp(t.date) <= fTimestamp(endDate) + fTimestamp(new Date(Number(t.date))) >= fTimestamp(startDate) && + fTimestamp(new Date(Number(t.date))) <= fTimestamp(endDate) ); } } diff --git a/src/sections/finance/components/finance-transactions-table-row.tsx b/src/sections/finance/components/finance-transactions-table-row.tsx index f79f3f546..085eb45d9 100644 --- a/src/sections/finance/components/finance-transactions-table-row.tsx +++ b/src/sections/finance/components/finance-transactions-table-row.tsx @@ -1,14 +1,14 @@ import { format } from 'date-fns'; // @mui -import Box from '@mui/material/Box'; import Avatar from '@mui/material/Avatar'; import TableRow from '@mui/material/TableRow'; -import Checkbox from '@mui/material/Checkbox'; + import TableCell from '@mui/material/TableCell'; import ListItemText from '@mui/material/ListItemText'; // components import Label from '@src/components/label'; import {TableRowTransactionType } from "@src/hooks/use-transaction-data.ts"; +import {truncateAddress} from "@src/utils/wallet.ts"; // ---------------------------------------------------------------------- @@ -21,15 +21,22 @@ export default function FinanceTransactionTableRow({ row, selected }: Props) { - const { date, name, amount, status, type, avatarUrl, message, category } = row; + const { date, name, amount, status, type, avatarUrl } = row; + + console.log('TYPE:', type); + + const dateObject = new Date(Number(date) * 1000); + const dateLbl = format(dateObject, 'dd/MM/yyyy'); + const timeLbl = format(dateObject, 'p'); + const renderPrimary = ( ; export default function OverviewBankingView() { const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); @@ -32,7 +34,7 @@ export default function OverviewBankingView() { for: sessionData?.profile?.id, }); - const {data: transactionsData, rawData: transactionsRawData} = useTransactionData() + const {data: transactionsData} = useTransactionData() // remove the last element as it is the current day const processedData = groupedTransactionData(transactionsData); @@ -40,7 +42,11 @@ export default function OverviewBankingView() { // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; - const processedTransactions: TableRowTransactionType[] = processTransactionData(transactionsRawData); + const { logs }: UseGetSmartWalletTransactionsReturn = useGetSmartWalletTransactions(); + const processedTransactions: ProcessedTransactionData[] = processTransactionData(logs) + + console.log('logs:', logs); + console.log('processedTransactions:', processedTransactions); return ( Recent Transactions - + {/**/} diff --git a/src/types/transaction.ts b/src/types/transaction.ts index 5d24d7866..54d9f06c9 100644 --- a/src/types/transaction.ts +++ b/src/types/transaction.ts @@ -1,5 +1,3 @@ -import {TableRowTransactionType, TransactionType} from "@src/hooks/use-transaction-data.ts"; - export type IOrderTableFilterValue = string | Date | null; export type IOrderTableFilters = { @@ -10,24 +8,10 @@ export type IOrderTableFilters = { }; export const TRANSACTIONS_TYPES = [ - { value: 'income', label: 'Income' }, - { value: 'outcome', label: 'Outcomes' }, + { value: 'transferTo', label: 'Income' }, + { value: 'transferFrom', label: 'Outcomes' }, + { value: 'deposit', label: 'Deposit' }, + { value: 'withdraw', label: 'Withdraw' }, ]; -export const transactions = (data: TransactionType[]): TableRowTransactionType[] => { - return data.map((transaction: TransactionType) => { - return { - id: transaction?.id, - avatarUrl: transaction?.payload?.type === 'Income' ? transaction?.payload?.data?.from?.avatar: transaction?.payload?.data?.to?.avatar, - category: transaction?.payload?.category, - date: transaction?.created_at, - amount: transaction?.payload?.amount, - message: transaction?.payload?.data?.content?.message, - name: transaction?.payload?.type === 'Income' ? transaction?.payload?.data?.from?.displayName: transaction?.payload?.data?.to?.displayName, - status: transaction?.payload?.data?.content?.rawDescription, - type: transaction?.payload?.type, - }; - }); -}; - diff --git a/src/utils/finance-graphs/groupedTransactions.ts b/src/utils/finance-graphs/groupedTransactions.ts index e6719df86..b07572ab3 100644 --- a/src/utils/finance-graphs/groupedTransactions.ts +++ b/src/utils/finance-graphs/groupedTransactions.ts @@ -1,4 +1,5 @@ -import {TransactionData, TransactionType} from '@src/hooks/use-transaction-data'; +import {TransactionData} from '@src/hooks/use-transaction-data'; +import {TransactionLog} from "@src/hooks/use-get-smart-wallet-transactions.ts"; type GroupedData = { type: string; data: { @@ -99,16 +100,29 @@ export const processDayData = (groupedData: GroupedData[]): { x: string, y: numb }); }; -export const processTransactionData = (data: TransactionType[]) => { + +export type ProcessedTransactionData = { + id: string; + name: string; + avatarUrl: string; + type: string; + message: string; + category: string; + date: bigint; + status: string; + amount: string | null; +}; + +export const processTransactionData = (data: TransactionLog[]): ProcessedTransactionData[] => { return data.map((transaction, _index) => ({ - id: transaction.id, - name: transaction.payload.type === 'Income' ? transaction.payload.data.from.displayName : transaction.payload.data.to.displayName, - avatarUrl: transaction.payload.type === 'Income' ? transaction.payload.data.from.avatar : transaction.payload.data.to.avatar, - type: transaction.payload.type, - message: transaction.payload.type === 'Income' ? 'Receive money from' : 'Payment for', - category: transaction.payload.type === 'Income' ? transaction.payload.data.from.displayName : transaction.payload.data.to.displayName, - date: transaction.created_at, + id: transaction.transactionHash, + name: transaction.event === 'transferFrom' ? transaction.args.sender : transaction.args.recipient, + avatarUrl: '', + type: transaction.event, + message: transaction.event === 'transferTo' ? 'Sent money to' : 'Received money from', + category: transaction.event === 'transferFrom' ? transaction.args.recipient : transaction.args.sender, + date: transaction.timestamp, status: 'completed', - amount: transaction.payload.amount, + amount: transaction.formattedAmount, })); }; From 588f778414fd53279e43e00c459e2765ff8e6c79 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 16:33:30 -0600 Subject: [PATCH 68/71] feat: added realtime to transactions events --- .../use-get-smart-wallet-transactions.ts | 80 ++++++++++++++++--- src/layouts/dashboard/config-navigation.tsx | 2 +- src/redux/reducer.ts | 2 + src/redux/transactions/index.ts | 60 ++++++++++++++ .../components/finance-balance-statistics.tsx | 16 ++-- src/sections/finance/index.tsx | 12 +-- src/sections/user/profile-header.tsx | 2 +- .../finance-graphs/groupedTransactions.ts | 2 +- 8 files changed, 149 insertions(+), 27 deletions(-) create mode 100644 src/redux/transactions/index.ts diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index a6f2502d0..0e0c973bf 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -1,9 +1,10 @@ import { useState, useEffect } from 'react'; -import { Address, parseAbiItem, formatUnits } from 'viem'; +import { parseAbiItem, formatUnits, Address } from 'viem'; +import { useDispatch, useSelector } from 'react-redux'; import { publicClient } from '@src/clients/viem/publicClient.ts'; import { GLOBAL_CONSTANTS } from '@src/config-global.ts'; -import { useSelector } from 'react-redux'; import LedgerVaultAbi from '@src/config/abi/LedgerVault.json'; +import { addTransaction, setTransactions } from '@redux/transactions'; export type TransactionLog = { address: string; @@ -29,14 +30,22 @@ export type TransactionLog = { }; const useGetSmartWalletTransactions = () => { + const dispatch = useDispatch(); const sessionData = useSelector((state: any) => state.auth.session); - const [logs, setLogs] = useState([]); + const blockchainEvents = useSelector((state: any) => state.blockchainEvents.events); + const transactions = useSelector((state: any) => state.transactions.transactions); + + // Local states for loading and error const [loading, setLoading] = useState(true); const [error, setError] = useState(null); + // Function to fetch historical logs const fetchLogs = async () => { console.log('Fetching logs for address:', sessionData?.address); - if (!sessionData?.address) return; + if (!sessionData?.address) { + setLoading(false); + return; + } try { setLoading(true); @@ -110,9 +119,7 @@ const useGetSmartWalletTransactions = () => { const event = (() => { switch (log.eventName) { case 'FundsTransferred': - return log.args.sender === sessionData.address - ? 'transferTo' - : 'transferFrom'; + return log.args.sender === sessionData.address ? 'transferTo' : 'transferFrom'; case 'FundsDeposited': return 'deposit'; case 'FundsWithdrawn': @@ -126,20 +133,21 @@ const useGetSmartWalletTransactions = () => { ...log, timestamp: block.timestamp, // UNIX timestamp of the block readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Human-readable date - formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : null, // Convert amount from wei to ether + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : '0', // Convert amount from wei to ether event, }; }) ); - // Sort logs by block and transaction index + // Sort logs by block number and transaction index const sortedLogs = logsWithDetails.sort((a, b) => { const blockDifference = Number(b.blockNumber) - Number(a.blockNumber); if (blockDifference !== 0) return blockDifference; return Number(b.transactionIndex) - Number(a.transactionIndex); }); - setLogs(sortedLogs); + // Dispatch the setTransactions action to store the logs in Redux + dispatch(setTransactions(sortedLogs)); } catch (err) { console.error('Error fetching logs:', err); setError(err instanceof Error ? err.message : 'An unknown error occurred'); @@ -148,6 +156,7 @@ const useGetSmartWalletTransactions = () => { } }; + // Helper function to create event signatures const createEventSignature = (event: any): string => { if (!event || !event.name || !event.inputs) { throw new Error('Invalid event in ABI'); @@ -161,11 +170,60 @@ const useGetSmartWalletTransactions = () => { return `event ${event.name}(${inputs})`; }; + // Effect to fetch historical logs when the address changes useEffect(() => { fetchLogs(); }, [sessionData?.address]); - return { logs, loading, error, refetch: fetchLogs }; + // Effect to handle real-time events from blockchainEvents + useEffect(() => { + if (!blockchainEvents || blockchainEvents.length === 0) return; + + // Iterate over new blockchain events + blockchainEvents.forEach(async (log: any) => { + // Process only relevant events + if ( + log.address !== GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS || + !['FundsTransferred', 'FundsDeposited', 'FundsWithdrawn'].includes(log.eventName) + ) { + return; + } + + try { + const block = await publicClient.getBlock({ blockNumber: log.blockNumber }); + + // Determine the event type + const event = (() => { + switch (log.eventName) { + case 'FundsTransferred': + return log.args.sender === sessionData.address ? 'transferTo' : 'transferFrom'; + case 'FundsDeposited': + return 'deposit'; + case 'FundsWithdrawn': + return 'withdraw'; + default: + return 'unknown'; + } + })(); + + // Create a formatted transaction log + const formattedLog = { + ...log, + timestamp: block.timestamp, // UNIX timestamp of the block + readableDate: new Date(Number(block.timestamp) * 1000).toLocaleString(), // Human-readable date + formattedAmount: log.args.amount ? formatUnits(log.args.amount, 18) : '0', // Convert amount from wei to ether + event, + }; + + // Dispatch the addTransaction action to add the new log to Redux + dispatch(addTransaction(formattedLog)); + } catch (err) { + console.error('Error processing real-time log:', err); + } + }); + }, [blockchainEvents, sessionData?.address, dispatch]); + + return { transactions, loading, error }; }; export default useGetSmartWalletTransactions; diff --git a/src/layouts/dashboard/config-navigation.tsx b/src/layouts/dashboard/config-navigation.tsx index 566e9e9b5..fe86ad8b8 100644 --- a/src/layouts/dashboard/config-navigation.tsx +++ b/src/layouts/dashboard/config-navigation.tsx @@ -61,7 +61,7 @@ export function useNavData() { icon: ICONS.dashboard, }, { - title: t('Comunity'), + title: t('Community'), path: paths.dashboard.community, icon: ICONS.userGroup, }, diff --git a/src/redux/reducer.ts b/src/redux/reducer.ts index 1f66baf7c..52ce6e058 100644 --- a/src/redux/reducer.ts +++ b/src/redux/reducer.ts @@ -8,6 +8,7 @@ import commentsReducer from '@redux/comments/index'; import followersReducer from '@redux/followers/index'; import addressReducer from '@redux/address/index'; import blockchainEventsReducer from '@redux/blockchain-events/index'; +import transactionsReducer from '@redux/transactions/index'; const appReducer = combineReducers({ minibar: minibarReducer, @@ -19,6 +20,7 @@ const appReducer = combineReducers({ followers: followersReducer, address: addressReducer, blockchainEvents: blockchainEventsReducer, + transactions: transactionsReducer, }); const rootReducer = (state: any, action: any) => { diff --git a/src/redux/transactions/index.ts b/src/redux/transactions/index.ts new file mode 100644 index 000000000..951b40f21 --- /dev/null +++ b/src/redux/transactions/index.ts @@ -0,0 +1,60 @@ +import { createSlice, PayloadAction } from '@reduxjs/toolkit'; + +// Define the type for a transaction log +export type TransactionLog = { + address: string; + args: { + amount: bigint; + currency: string; + recipient: string; + sender: string; + }; + blockHash: string; + blockNumber: bigint; + data: string; + event: string; + eventName: string; + formattedAmount: string; + logIndex: number; + readableDate: string; + removed: boolean; + timestamp: bigint; + topics: string[]; + transactionHash: string; + transactionIndex: number; +}; + +// Define the initial state +interface TransactionsState { + transactions: TransactionLog[]; +} + +const initialState: TransactionsState = { + transactions: [], +}; + +// Create the slice +const transactionsSlice = createSlice({ + name: 'transactions', + initialState, + reducers: { + // Action to set all transactions (e.g., from history) + setTransactions: (state, action: PayloadAction) => { + state.transactions = action.payload; + }, + // Action to add a new transaction in real-time + addTransaction: (state, action: PayloadAction) => { + // Avoid duplicates based on transactionHash + const exists = state.transactions.find( + (tx) => tx.transactionHash === action.payload.transactionHash + ); + if (!exists) { + state.transactions.unshift(action.payload); // Add to the beginning to maintain order + } + }, + }, +}); + +export const { setTransactions, addTransaction } = transactionsSlice.actions; + +export default transactionsSlice.reducer; diff --git a/src/sections/finance/components/finance-balance-statistics.tsx b/src/sections/finance/components/finance-balance-statistics.tsx index dd068b601..4d00b5b75 100644 --- a/src/sections/finance/components/finance-balance-statistics.tsx +++ b/src/sections/finance/components/finance-balance-statistics.tsx @@ -12,7 +12,7 @@ import CustomPopover, { usePopover } from '@src/components/custom-popover'; import useGetSmartWalletTransactions from '@src/hooks/use-get-smart-wallet-transactions.ts'; export default function FinanceBalanceStatistics() { - const { logs, loading } = useGetSmartWalletTransactions(); + const { transactions, loading } = useGetSmartWalletTransactions(); const popover = usePopover(); const [timeFrame, setTimeFrame] = useState('Week'); const [incomeData, setIncomeData] = useState([]); @@ -53,7 +53,7 @@ export default function FinanceBalanceStatistics() { // Generate labels in useEffect useEffect(() => { - if (!logs || loading) return; + if (!transactions || loading) return; const now = Date.now(); const oneWeekAgo = now - 7 * 24 * 60 * 60 * 1000; @@ -65,7 +65,7 @@ export default function FinanceBalanceStatistics() { if (timeFrame === 'Week') { // Group data by each day in the last week - groupedData = logs.reduce((acc, log) => { + groupedData = transactions.reduce((acc: any, log: any) => { const timestamp = Number(log.timestamp) * 1000; if (timestamp < oneWeekAgo) return acc; @@ -83,9 +83,9 @@ export default function FinanceBalanceStatistics() { if (!acc[dateKey]) acc[dateKey] = { label: dayLabel, income: 0, expense: 0 }; - if (eventType === 'transferTo' || eventType === 'deposit') { + if (eventType === 'transferFrom' || eventType === 'deposit') { acc[dateKey].income += amount; - } else if (eventType === 'transferFrom') { + } else if (eventType === 'transferTo' || eventType === 'withdraw') { acc[dateKey].expense += amount; } @@ -93,7 +93,7 @@ export default function FinanceBalanceStatistics() { }, {}); } else if (timeFrame === 'Month') { // Group data by week within the last month - groupedData = logs.reduce((acc, log) => { + groupedData = transactions.reduce((acc: any, log: any) => { const timestamp = Number(log.timestamp) * 1000; if (timestamp < oneMonthAgo) return acc; @@ -127,7 +127,7 @@ export default function FinanceBalanceStatistics() { }, {}); } else if (timeFrame === 'Year') { // Group data by each month in the last year - groupedData = logs.reduce((acc, log) => { + groupedData = transactions.reduce((acc: any, log: any) => { const timestamp = Number(log.timestamp) * 1000; if (timestamp < oneYearAgo) return acc; @@ -198,7 +198,7 @@ export default function FinanceBalanceStatistics() { setCategories(shortLabels); setIncomeData(sortedKeys.map((key) => groupedData[key].income)); setExpenseData(sortedKeys.map((key) => groupedData[key].expense)); - }, [logs, timeFrame, loading, ]); + }, [transactions, timeFrame, loading, ]); const handleChangeTimeFrame = (newValue: string) => { popover.onClose(); diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index 10de74b60..a1ddc1388 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -11,20 +11,22 @@ import FinanceBalanceStatistics from '@src/sections/finance/components/finance-b import {useSelector} from "react-redux"; import {useProfileFollowing} from "@lens-protocol/react"; -import {TableRowTransactionType, useTransactionData} from "@src/hooks/use-transaction-data"; +import { useTransactionData} from "@src/hooks/use-transaction-data"; import { groupedTransactionData, processDayData, ProcessedTransactionData, processTransactionData } from "@src/utils/finance-graphs/groupedTransactions.ts"; -import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; import Typography from "@mui/material/Typography"; import FinanceQuickActions from "@src/sections/finance/components/finance-quick-actions.tsx"; import useGetSmartWalletTransactions from "@src/hooks/use-get-smart-wallet-transactions.ts"; // ---------------------------------------------------------------------- + type UseGetSmartWalletTransactionsReturn = ReturnType; +// ---------------------------------------------------------------------- + export default function OverviewBankingView() { const { balance: balanceFromRedux } = useSelector((state: any) => state.auth); const sessionData = useSelector((state: any) => state.auth.session); @@ -42,10 +44,10 @@ export default function OverviewBankingView() { // Get the difference between daySeriesData[1] and daySeriesData[0] in y value to calculate the percent const percent = (daySeriesData[1]?.y - daySeriesData[0]?.y) / daySeriesData[0]?.y * 100; - const { logs }: UseGetSmartWalletTransactionsReturn = useGetSmartWalletTransactions(); - const processedTransactions: ProcessedTransactionData[] = processTransactionData(logs) + const { transactions }: UseGetSmartWalletTransactionsReturn = useGetSmartWalletTransactions(); + const processedTransactions: ProcessedTransactionData[] = processTransactionData(transactions) - console.log('logs:', logs); + console.log('logs:', transactions); console.log('processedTransactions:', processedTransactions); return ( diff --git a/src/sections/user/profile-header.tsx b/src/sections/user/profile-header.tsx index b9fd45de6..b5296cda0 100644 --- a/src/sections/user/profile-header.tsx +++ b/src/sections/user/profile-header.tsx @@ -716,7 +716,7 @@ const ProfileHeader = ({ profile: profileData, children }: PropsWithChildren - Attestation + License { - return data.map((transaction, _index) => ({ + return data?.map((transaction, _index) => ({ id: transaction.transactionHash, name: transaction.event === 'transferFrom' ? transaction.args.sender : transaction.args.recipient, avatarUrl: '', From 6e99eafe477a4df49d085056fc074b57a8962678 Mon Sep 17 00:00:00 2001 From: jadapema Date: Tue, 31 Dec 2024 17:02:31 -0600 Subject: [PATCH 69/71] fix: transfer to detection --- src/hooks/use-get-smart-wallet-transactions.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index 0e0c973bf..a87c34359 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -12,6 +12,7 @@ export type TransactionLog = { amount: bigint; currency: string; recipient: string; + origin: string; sender: string; }; blockHash: string; @@ -88,7 +89,7 @@ const useGetSmartWalletTransactions = () => { publicClient.getLogs({ address: GLOBAL_CONSTANTS.LEDGER_VAULT_ADDRESS as Address, event: eventsAbi.FundsTransferred as any, - args: { sender: sessionData.address }, + args: { origin: sessionData.address }, fromBlock: 0n, toBlock: 'latest', }), @@ -119,7 +120,7 @@ const useGetSmartWalletTransactions = () => { const event = (() => { switch (log.eventName) { case 'FundsTransferred': - return log.args.sender === sessionData.address ? 'transferTo' : 'transferFrom'; + return log.args.origin === sessionData.address ? 'transferTo' : 'transferFrom'; case 'FundsDeposited': return 'deposit'; case 'FundsWithdrawn': @@ -196,7 +197,7 @@ const useGetSmartWalletTransactions = () => { const event = (() => { switch (log.eventName) { case 'FundsTransferred': - return log.args.sender === sessionData.address ? 'transferTo' : 'transferFrom'; + return log.args.origin === sessionData.address ? 'transferTo' : 'transferFrom'; case 'FundsDeposited': return 'deposit'; case 'FundsWithdrawn': From 55f255b9495a2b824e7e7bf3b81e2e03f936b92a Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 17:45:10 -0600 Subject: [PATCH 70/71] feat(finance): enhance transaction history and filtering - **src/sections/finance/index.tsx**: - Reintegrate `FinanceTransactionsHistory` component to display processed transaction data. - **src/utils/finance-graphs/groupedTransactions.ts**: - Add `parseTransactionType` and `parseTransactionTypeLabel` helpers for categorizing and labeling transactions. - Modify avatar URLs dynamically based on transaction data. - **src/hooks/use-transaction-data.ts**: - Extend type definitions to include `message` and `category` fields. - **src/hooks/use-get-smart-wallet-transactions.ts**: - Remove `sender` property from transaction args. - **src/types/transaction.ts**: - Simplify transaction filter types by removing unused fields. - **src/sections/finance/components/finance-transactions-table-row.tsx**: - Display categorized transaction messages and color-code amounts. - **src/sections/finance/components/finance-transactions-history.tsx**: - Simplify filters and table configuration. - Update transaction tabs for handling income/outcome types dynamically. - **src/sections/finance/components/finance-transactions-table-filters-result.tsx**: - Remove custom date filter and simplify label mapping for transaction types. --- .../use-get-smart-wallet-transactions.ts | 1 - src/hooks/use-transaction-data.ts | 2 + .../finance-transactions-history.tsx | 84 ++++++++----------- ...ance-transactions-table-filters-result.tsx | 23 ++--- .../finance-transactions-table-row.tsx | 22 ++--- src/sections/finance/index.tsx | 3 +- src/types/transaction.ts | 3 - .../finance-graphs/groupedTransactions.ts | 42 +++++++++- 8 files changed, 90 insertions(+), 90 deletions(-) diff --git a/src/hooks/use-get-smart-wallet-transactions.ts b/src/hooks/use-get-smart-wallet-transactions.ts index a87c34359..6368fa2c6 100644 --- a/src/hooks/use-get-smart-wallet-transactions.ts +++ b/src/hooks/use-get-smart-wallet-transactions.ts @@ -13,7 +13,6 @@ export type TransactionLog = { currency: string; recipient: string; origin: string; - sender: string; }; blockHash: string; blockNumber: bigint; diff --git a/src/hooks/use-transaction-data.ts b/src/hooks/use-transaction-data.ts index 118864f50..8c569b999 100644 --- a/src/hooks/use-transaction-data.ts +++ b/src/hooks/use-transaction-data.ts @@ -40,6 +40,8 @@ export type TableRowTransactionType = { type: string; date: bigint; status: string; + message: string; + category: string; } export type TransactionData = { diff --git a/src/sections/finance/components/finance-transactions-history.tsx b/src/sections/finance/components/finance-transactions-history.tsx index 374b0df12..f6b6a84e9 100644 --- a/src/sections/finance/components/finance-transactions-history.tsx +++ b/src/sections/finance/components/finance-transactions-history.tsx @@ -9,8 +9,6 @@ import TableBody from '@mui/material/TableBody'; import TableContainer from '@mui/material/TableContainer'; // _mock import {TRANSACTIONS_TYPES} from '@src/types/transaction'; -// utils -import { fTimestamp } from '@src/utils/format-time'; // components import Label from '@src/components/label'; import Scrollbar from '@src/components/scrollbar'; @@ -32,50 +30,46 @@ import FinanceTransactionsTableFiltersResult from '@src/sections/finance/compone import {ProcessedTransactionData} from "@src/utils/finance-graphs/groupedTransactions.ts"; // ---------------------------------------------------------------------- - -const STATUS_OPTIONS = [{ value: 'all', label: 'All' }, ...TRANSACTIONS_TYPES]; +// REmove last 2 elements from the array TRANSACTIONS_TYPES +const STATUS_OPTIONS = [{ value: 'all', label: 'All' }, ...TRANSACTIONS_TYPES.slice(0, -2)]; const TABLE_HEAD = [ { id: 'name', label: 'Profile Info', width: 20 }, { id: 'createdAt', label: 'Date', width: 40 }, { id: 'amount', label: 'Amount', width: 40 }, - { id: 'status', label: 'Status', width: 20 }, ]; const defaultFilters: IOrderTableFilters = { - name: '', - status: 'all', - startDate: null, - endDate: null, + status: 'all' }; -export default function FinanceTransactionsHistory(transactionsData: ProcessedTransactionData[]) { +type TransactionsProcessedData = { + transactionData: ProcessedTransactionData[]; +} - const table = useTable({ defaultOrderBy: 'date' }); +export default function FinanceTransactionsHistory({ transactionData }: TransactionsProcessedData) { + console.log('processedTransactions passed:', transactionData); + const table = useTable({ defaultOrderBy: 'name' }); - const [tableData, _setTableData] = useState(transactionsData); + const [tableData, _setTableData] = useState(transactionData); const [filters, setFilters] = useState(defaultFilters); - const dateError = - filters.startDate && filters.endDate - ? filters.startDate.getTime() > filters.endDate.getTime() - : false; - const dataFiltered = applyFilter({ - inputData: transactionsData, + inputData: transactionData, comparator: getComparator(table.order, table.orderBy), - filters, - dateError, + filters }); const denseHeight = table.dense ? 52 : 72; - const canReset = - !!filters.name || filters.status !== 'all' || (!!filters.startDate && !!filters.endDate); + const canReset = filters.status !== 'all'; const notFound = (!dataFiltered.length && canReset) || !dataFiltered.length; + console.log('Data:', tableData); + console.log('Date Filtered:', dataFiltered); + const handleFilters = useCallback( (name: string, value: IOrderTableFilterValue) => { table.onResetPage(); @@ -108,7 +102,7 @@ export default function FinanceTransactionsHistory(transactionsData: ProcessedTr boxShadow: (theme) => `inset 0 -2px 0 0 ${alpha(theme.palette.grey[500], 0.08)}`, }} > - {STATUS_OPTIONS.map((tab) => ( + {Array.isArray(transactionData) && STATUS_OPTIONS.map((tab) => ( - {tab.value === 'all' && transactionsData.length} - {tab.value === 'transferFrom' && - transactionsData.filter((t) => t.type.toLowerCase() === 'transferFrom').length} - {tab.value === 'transferTo' && - transactionsData.filter((t) => t.type.toLowerCase() === 'transferTo').length} + + {tab.value === 'all' && transactionData.length} + {tab.value === 'transferFrom' && transactionData.filter((t) => t.type.toLowerCase() === 'transferfrom' || t.type.toLowerCase() === 'withdraw').length} + {tab.value === 'transferTo' && transactionData.filter((t) => t.type.toLowerCase() === 'transferto' || t.type.toLowerCase() === 'deposit').length} + } /> @@ -203,16 +197,19 @@ export default function FinanceTransactionsHistory(transactionsData: ProcessedTr function applyFilter({ inputData, comparator, - filters, - dateError, + filters }: { inputData: ProcessedTransactionData[]; comparator: (a: any, b: any) => number; filters: IOrderTableFilters; - dateError: boolean; }) { - const { status, name, startDate, endDate } = filters; + //Verify if the input data is an array; otherwise, return an empty array + if (!Array.isArray(inputData)) { + return []; + } + + const { status } = filters; const stabilizedThis = inputData.map((el, index) => [el, index] as const); @@ -224,26 +221,13 @@ function applyFilter({ inputData = stabilizedThis.map((el) => el[0]); - if (name) { - inputData = inputData.filter( - (t) => - t.type.toLowerCase().indexOf(name.toLowerCase()) !== -1 || - t.name.toLowerCase().indexOf(name.toLowerCase()) !== -1 || - String(t.amount).toLowerCase().indexOf(name.toLowerCase()) !== -1 - ); - } - if (status !== 'all') { - inputData = inputData.filter((t) => t.type.toLowerCase() === status); - } + if(status === 'transferFrom') { + inputData = inputData.filter((t) => t.type.toLowerCase() === 'transferfrom' || t.type.toLowerCase() === 'withdraw'); + } - if (!dateError) { - if (startDate && endDate) { - inputData = inputData.filter( - (t) => - fTimestamp(new Date(Number(t.date))) >= fTimestamp(startDate) && - fTimestamp(new Date(Number(t.date))) <= fTimestamp(endDate) - ); + if(status === 'transferTo') { + inputData = inputData.filter((t) => t.type.toLowerCase() === 'transferto' || t.type.toLowerCase() === 'deposit'); } } diff --git a/src/sections/finance/components/finance-transactions-table-filters-result.tsx b/src/sections/finance/components/finance-transactions-table-filters-result.tsx index f8818701b..73efa8f6e 100644 --- a/src/sections/finance/components/finance-transactions-table-filters-result.tsx +++ b/src/sections/finance/components/finance-transactions-table-filters-result.tsx @@ -8,7 +8,6 @@ import Stack, { StackProps } from '@mui/material/Stack'; import { IOrderTableFilters, IOrderTableFilterValue } from '@src/types/transaction'; // components import Iconify from '@src/components/iconify'; -import { shortDateLabel } from '@src/components/custom-date-range-picker'; // ---------------------------------------------------------------------- @@ -30,17 +29,10 @@ export default function FinanceTransactionsTableFiltersResult({ results, ...other }: Props) { - const shortLabel = shortDateLabel(filters.startDate, filters.endDate); - const handleRemoveStatus = () => { onFilters('status', 'all'); }; - const handleRemoveDate = () => { - onFilters('startDate', null); - onFilters('endDate', null); - }; - return ( @@ -53,13 +45,7 @@ export default function FinanceTransactionsTableFiltersResult({ {filters.status !== 'all' && ( - - - )} - - {filters.startDate && filters.endDate && ( - - + )} @@ -75,6 +61,13 @@ export default function FinanceTransactionsTableFiltersResult({ ); } +const parseFilterLabel = (type: string): string => { + if (type === 'all') return 'All'; + if (type === 'transferTo') return 'Incomes'; + if (type === 'transferFrom') return 'Outcomes'; + return type; +} + // ---------------------------------------------------------------------- type BlockProps = StackProps & { diff --git a/src/sections/finance/components/finance-transactions-table-row.tsx b/src/sections/finance/components/finance-transactions-table-row.tsx index 085eb45d9..2ccafeeff 100644 --- a/src/sections/finance/components/finance-transactions-table-row.tsx +++ b/src/sections/finance/components/finance-transactions-table-row.tsx @@ -6,9 +6,9 @@ import TableRow from '@mui/material/TableRow'; import TableCell from '@mui/material/TableCell'; import ListItemText from '@mui/material/ListItemText'; // components -import Label from '@src/components/label'; import {TableRowTransactionType } from "@src/hooks/use-transaction-data.ts"; import {truncateAddress} from "@src/utils/wallet.ts"; +import Typography from "@mui/material/Typography"; // ---------------------------------------------------------------------- @@ -21,7 +21,7 @@ export default function FinanceTransactionTableRow({ row, selected }: Props) { - const { date, name, amount, status, type, avatarUrl } = row; + const { date, name, amount, type, avatarUrl, message, category } = row; console.log('TYPE:', type); @@ -35,7 +35,7 @@ export default function FinanceTransactionTableRow({ - {amount} MMC - - + + {category === 'income' ? '': '-'} {amount} MMC + ); diff --git a/src/sections/finance/index.tsx b/src/sections/finance/index.tsx index a1ddc1388..e3fbda6ba 100644 --- a/src/sections/finance/index.tsx +++ b/src/sections/finance/index.tsx @@ -20,6 +20,7 @@ import { import Typography from "@mui/material/Typography"; import FinanceQuickActions from "@src/sections/finance/components/finance-quick-actions.tsx"; import useGetSmartWalletTransactions from "@src/hooks/use-get-smart-wallet-transactions.ts"; +import FinanceTransactionsHistory from "@src/sections/finance/components/finance-transactions-history.tsx"; // ---------------------------------------------------------------------- @@ -87,7 +88,7 @@ export default function OverviewBankingView() { Recent Transactions - {/**/} + diff --git a/src/types/transaction.ts b/src/types/transaction.ts index 54d9f06c9..67111bf14 100644 --- a/src/types/transaction.ts +++ b/src/types/transaction.ts @@ -1,10 +1,7 @@ export type IOrderTableFilterValue = string | Date | null; export type IOrderTableFilters = { - name: string; status: string; - startDate: Date | null; - endDate: Date | null; }; export const TRANSACTIONS_TYPES = [ diff --git a/src/utils/finance-graphs/groupedTransactions.ts b/src/utils/finance-graphs/groupedTransactions.ts index b61edba97..2947f379b 100644 --- a/src/utils/finance-graphs/groupedTransactions.ts +++ b/src/utils/finance-graphs/groupedTransactions.ts @@ -116,13 +116,47 @@ export type ProcessedTransactionData = { export const processTransactionData = (data: TransactionLog[]): ProcessedTransactionData[] => { return data?.map((transaction, _index) => ({ id: transaction.transactionHash, - name: transaction.event === 'transferFrom' ? transaction.args.sender : transaction.args.recipient, - avatarUrl: '', + name: transaction.event === 'transferFrom' ? transaction.args.origin : transaction.args.recipient, + avatarUrl: `https://api.dicebear.com/9.x/bottts-neutral/svg?seed=${transaction.event === 'transferFrom' ? transaction.args.origin : transaction.args.recipient}`, type: transaction.event, - message: transaction.event === 'transferTo' ? 'Sent money to' : 'Received money from', - category: transaction.event === 'transferFrom' ? transaction.args.recipient : transaction.args.sender, + message: parseTransactionTypeLabel(transaction.event), + category: parseTransactionType(transaction.event), date: transaction.timestamp, status: 'completed', amount: transaction.formattedAmount, })); }; + +const parseTransactionTypeLabel = (type: string): string => { + switch (type) { + case 'transferFrom': + return 'Sent money to'; + case 'transferTo': + return 'Received money from'; + case 'deposit': + return 'Deposited'; + case 'withdraw': + return 'Withdraw'; + + default: + return type; + } +}; + + +// Incomes or outcomes depending on the transaction type +const parseTransactionType = (type: string): string => { + switch (type) { + case 'transferFrom': + return 'outcome'; + case 'transferTo': + return 'income'; + case 'deposit': + return 'income'; + case 'withdraw': + return 'outcome'; + + default: + return type; + } +} From e9a811d8aae3bf74282530d0496c064496682605 Mon Sep 17 00:00:00 2001 From: Carlos Andres Perez Ubeda Date: Tue, 31 Dec 2024 17:54:00 -0600 Subject: [PATCH 71/71] chore: update dependencies in package-lock.json - Updated `@apollo/client` to version 3.12.4. - Upgraded various @aws-sdk dependencies from versions 3.696.0-3.705.0 to 3.716.0-3.717.0: - `@aws-sdk/client-s3`, `@aws-sdk/client-sts`, `@aws-sdk/client-sso`, `@aws-sdk/client-sso-oidc`, `@aws-sdk/core`, `@aws-sdk/credential-provider-env`. - Updated related subdependencies such as @smithy libraries. This ensures the application benefits from the latest bug fixes, security patches, and feature improvements provided by these libraries. --- package-lock.json | 5468 +++++++++++++++++++++------------------------ 1 file changed, 2552 insertions(+), 2916 deletions(-) diff --git a/package-lock.json b/package-lock.json index 093a68504..6190d2d03 100644 --- a/package-lock.json +++ b/package-lock.json @@ -199,9 +199,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.12.2", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.12.2.tgz", - "integrity": "sha512-dkacsdMgVsrrQhLpN4JqZTIEfnNsPVwny+4vccSRqheWZElzUz1Xi0h39p2+TieS1f+wwvyzwpoJEV57vwzT9Q==", + "version": "3.12.4", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.12.4.tgz", + "integrity": "sha512-S/eC9jxEW9Jg1BjD6AZonE1fHxYuvC3gFHop8FRQkUdeK63MmBD5r0DOrN2WlJbwha1MSD6A97OwXwjaujEQpA==", "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", @@ -466,69 +466,69 @@ } }, "node_modules/@aws-sdk/client-s3": { - "version": "3.705.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.705.0.tgz", - "integrity": "sha512-Fm0Cbc4zr0yG0DnNycz7ywlL5tQFdLSb7xCIPfzrxJb3YQiTXWxH5eu61SSsP/Z6RBNRolmRPvst/iNgX0fWvA==", + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.717.0.tgz", + "integrity": "sha512-jzaH8IskAXVnqlZ3/H/ROwrB2HCnq/atlN7Hi7FIfjWvMPf5nfcJKfzJ1MXFX0EQR5qO6X4TbK7rgi7Bjw9NjQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha1-browser": "5.2.0", "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/client-sts": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-bucket-endpoint": "3.696.0", - "@aws-sdk/middleware-expect-continue": "3.696.0", - "@aws-sdk/middleware-flexible-checksums": "3.701.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-location-constraint": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/middleware-ssec": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/signature-v4-multi-region": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@aws-sdk/xml-builder": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/eventstream-serde-browser": "^3.0.13", - "@smithy/eventstream-serde-config-resolver": "^3.0.10", - "@smithy/eventstream-serde-node": "^3.0.12", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-blob-browser": "^3.1.9", - "@smithy/hash-node": "^3.0.10", - "@smithy/hash-stream-node": "^3.1.9", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/md5-js": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/client-sts": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-bucket-endpoint": "3.714.0", + "@aws-sdk/middleware-expect-continue": "3.714.0", + "@aws-sdk/middleware-flexible-checksums": "3.717.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-location-constraint": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/middleware-ssec": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/signature-v4-multi-region": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@aws-sdk/xml-builder": "3.709.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/eventstream-serde-browser": "^3.0.14", + "@smithy/eventstream-serde-config-resolver": "^3.0.11", + "@smithy/eventstream-serde-node": "^3.0.13", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-blob-browser": "^3.1.10", + "@smithy/hash-node": "^3.0.11", + "@smithy/hash-stream-node": "^3.1.10", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/md5-js": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", - "@smithy/util-waiter": "^3.1.9", + "@smithy/util-waiter": "^3.2.0", "tslib": "^2.6.2" }, "engines": { @@ -536,48 +536,48 @@ } }, "node_modules/@aws-sdk/client-sso": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.696.0.tgz", - "integrity": "sha512-q5TTkd08JS0DOkHfUL853tuArf7NrPeqoS5UOvqJho8ibV9Ak/a/HO4kNvy9Nj3cib/toHYHsQIEtecUPSUUrQ==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.716.0.tgz", + "integrity": "sha512-5Nb0jJXce2TclbjG7WVPufwhgV1TRydz1QnsuBtKU0AdViEpr787YrZhPpGnNIM1Dx+R1H/tmAHZnOoohS6D8g==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -586,49 +586,49 @@ } }, "node_modules/@aws-sdk/client-sso-oidc": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.699.0.tgz", - "integrity": "sha512-u8a1GorY5D1l+4FQAf4XBUC1T10/t7neuwT21r0ymrtMFSK2a9QqVHKMoLkvavAwyhJnARSBM9/UQC797PFOFw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sso-oidc/-/client-sso-oidc-3.716.0.tgz", + "integrity": "sha512-lA4IB9FzR2KjH7EVCo+mHGFKqdViVyeBQEIX9oVratL/l7P0bMS1fMwgfHOc3ACazqNxBxDES7x08ZCp32y6Lw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -636,54 +636,54 @@ "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/client-sts": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.699.0.tgz", - "integrity": "sha512-++lsn4x2YXsZPIzFVwv3fSUVM55ZT0WRFmPeNilYIhZClxHLmVAWKH4I55cY9ry60/aTKYjzOXkWwyBKGsGvQg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.716.0.tgz", + "integrity": "sha512-i4SVNsrdXudp8T4bkm7Fi3YWlRnvXCSwvNDqf6nLqSJxqr4CN3VlBELueDyjBK7TAt453/qSif+eNx+bHmwo4Q==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/sha256-browser": "5.2.0", "@aws-crypto/sha256-js": "5.2.0", - "@aws-sdk/client-sso-oidc": "3.699.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-node": "3.699.0", - "@aws-sdk/middleware-host-header": "3.696.0", - "@aws-sdk/middleware-logger": "3.696.0", - "@aws-sdk/middleware-recursion-detection": "3.696.0", - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/region-config-resolver": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@aws-sdk/util-user-agent-browser": "3.696.0", - "@aws-sdk/util-user-agent-node": "3.696.0", - "@smithy/config-resolver": "^3.0.12", - "@smithy/core": "^2.5.3", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/hash-node": "^3.0.10", - "@smithy/invalid-dependency": "^3.0.10", - "@smithy/middleware-content-length": "^3.0.12", - "@smithy/middleware-endpoint": "^3.2.3", - "@smithy/middleware-retry": "^3.0.27", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@aws-sdk/client-sso-oidc": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-node": "3.716.0", + "@aws-sdk/middleware-host-header": "3.714.0", + "@aws-sdk/middleware-logger": "3.714.0", + "@aws-sdk/middleware-recursion-detection": "3.714.0", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/region-config-resolver": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@aws-sdk/util-user-agent-browser": "3.714.0", + "@aws-sdk/util-user-agent-node": "3.716.0", + "@smithy/config-resolver": "^3.0.13", + "@smithy/core": "^2.5.5", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/hash-node": "^3.0.11", + "@smithy/invalid-dependency": "^3.0.11", + "@smithy/middleware-content-length": "^3.0.13", + "@smithy/middleware-endpoint": "^3.2.6", + "@smithy/middleware-retry": "^3.0.31", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "@smithy/util-base64": "^3.0.0", "@smithy/util-body-length-browser": "^3.0.0", "@smithy/util-body-length-node": "^3.0.0", - "@smithy/util-defaults-mode-browser": "^3.0.27", - "@smithy/util-defaults-mode-node": "^3.0.27", - "@smithy/util-endpoints": "^2.1.6", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/util-defaults-mode-browser": "^3.0.31", + "@smithy/util-defaults-mode-node": "^3.0.31", + "@smithy/util-endpoints": "^2.1.7", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -692,21 +692,21 @@ } }, "node_modules/@aws-sdk/core": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.696.0.tgz", - "integrity": "sha512-3c9III1k03DgvRZWg8vhVmfIXPG6hAciN9MzQTzqGngzWAELZF/WONRTRQuDFixVtarQatmLHYVw/atGeA2Byw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/core/-/core-3.716.0.tgz", + "integrity": "sha512-5DkUiTrbyzO8/W4g7UFEqRFpuhgizayHI/Zbh0wtFMcot8801nJV+MP/YMhdjimlvAr/OqYB08FbGsPyWppMTw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", + "@aws-sdk/types": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", "fast-xml-parser": "4.4.1", "tslib": "^2.6.2" }, @@ -715,16 +715,16 @@ } }, "node_modules/@aws-sdk/credential-provider-env": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.696.0.tgz", - "integrity": "sha512-T9iMFnJL7YTlESLpVFT3fg1Lkb1lD+oiaIC8KMpepb01gDUBIpj9+Y+pA/cgRWW0yRxmkDXNazAE2qQTVFGJzA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.716.0.tgz", + "integrity": "sha512-JI2KQUnn2arICwP9F3CnqP1W3nAbm4+meQg/yOhp9X0DMzQiHrHRd4HIrK2vyVgi2/6hGhONY5uLF26yRTA7nQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -732,21 +732,21 @@ } }, "node_modules/@aws-sdk/credential-provider-http": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.696.0.tgz", - "integrity": "sha512-GV6EbvPi2eq1+WgY/o2RFA3P7HGmnkIzCNmhwtALFlqMroLYWKE7PSeHw66Uh1dFQeVESn0/+hiUNhu1mB0emA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-http/-/credential-provider-http-3.716.0.tgz", + "integrity": "sha512-CZ04pl2z7igQPysQyH2xKZHM3fLwkemxQbKOlje3TmiS1NwXvcKvERhp9PE/H23kOL7beTM19NMRog/Fka/rlw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/property-provider": "^3.1.9", - "@smithy/protocol-http": "^4.1.7", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.2", + "@smithy/property-provider": "^3.1.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.2", "tslib": "^2.6.2" }, "engines": { @@ -754,50 +754,50 @@ } }, "node_modules/@aws-sdk/credential-provider-ini": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.699.0.tgz", - "integrity": "sha512-dXmCqjJnKmG37Q+nLjPVu22mNkrGHY8hYoOt3Jo9R2zr5MYV7s/NHsCHr+7E+BZ+tfZYLRPeB1wkpTeHiEcdRw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.716.0.tgz", + "integrity": "sha512-P37We2GtZvdROxiwP0zrpEL81/HuYK1qlYxp5VCj3uV+G4mG8UQN2gMIU/baYrpOQqa0h81RfyQGRFUjVaDVqw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.699.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/credential-provider-node": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.699.0.tgz", - "integrity": "sha512-MmEmNDo1bBtTgRmdNfdQksXu4uXe66s0p1hi1YPrn1h59Q605eq/xiWbGL6/3KdkViH6eGUuABeV2ODld86ylg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.716.0.tgz", + "integrity": "sha512-FGQPK2uKfS53dVvoskN/s/t6m0Po24BGd1PzJdzHBFCOjxbZLM6+8mDMXeyi2hCLVVQOUcuW41kOgmJ0+zMbww==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/credential-provider-env": "3.696.0", - "@aws-sdk/credential-provider-http": "3.696.0", - "@aws-sdk/credential-provider-ini": "3.699.0", - "@aws-sdk/credential-provider-process": "3.696.0", - "@aws-sdk/credential-provider-sso": "3.699.0", - "@aws-sdk/credential-provider-web-identity": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/credential-provider-imds": "^3.2.6", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/credential-provider-env": "3.716.0", + "@aws-sdk/credential-provider-http": "3.716.0", + "@aws-sdk/credential-provider-ini": "3.716.0", + "@aws-sdk/credential-provider-process": "3.716.0", + "@aws-sdk/credential-provider-sso": "3.716.0", + "@aws-sdk/credential-provider-web-identity": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -805,17 +805,17 @@ } }, "node_modules/@aws-sdk/credential-provider-process": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.696.0.tgz", - "integrity": "sha512-mL1RcFDe9sfmyU5K1nuFkO8UiJXXxLX4JO1gVaDIOvPqwStpUAwi3A1BoeZhWZZNQsiKI810RnYGo0E0WB/hUA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.716.0.tgz", + "integrity": "sha512-0spcu2MWVVHSTHH3WE2E//ttUJPwXRM3BCp+WyI41xLzpNu1Fd8zjOrDpEo0SnGUzsSiRTIJWgkuu/tqv9NJ2A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -823,19 +823,19 @@ } }, "node_modules/@aws-sdk/credential-provider-sso": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.699.0.tgz", - "integrity": "sha512-Ekp2cZG4pl9D8+uKWm4qO1xcm8/MeiI8f+dnlZm8aQzizeC+aXYy9GyoclSf6daK8KfRPiRfM7ZHBBL5dAfdMA==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.716.0.tgz", + "integrity": "sha512-J2IA3WuCpRGGoZm6VHZVFCnrxXP+41iUWb9Ct/1spljegTa1XjiaZ5Jf3+Ubj7WKiyvP9/dgz1L0bu2bYEjliw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/client-sso": "3.696.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/token-providers": "3.699.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/client-sso": "3.716.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/token-providers": "3.714.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -843,37 +843,37 @@ } }, "node_modules/@aws-sdk/credential-provider-web-identity": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.696.0.tgz", - "integrity": "sha512-XJ/CVlWChM0VCoc259vWguFUjJDn/QwDqHwbx+K9cg3v6yrqXfK5ai+p/6lx0nQpnk4JzPVeYYxWRpaTsGC9rg==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.716.0.tgz", + "integrity": "sha512-vzgpWKs2gGXZGdbMKRFrMW4PqEFWkGvwWH2T7ZwQv9m+8lQ7P4Dk2uimqu0f37HZAbpn8HFMqRh4CaySjU354A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sts": "^3.696.0" + "@aws-sdk/client-sts": "^3.716.0" } }, "node_modules/@aws-sdk/middleware-bucket-endpoint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.696.0.tgz", - "integrity": "sha512-V07jishKHUS5heRNGFpCWCSTjRJyQLynS/ncUeE8ZYtG66StOOQWftTwDfFOSoXlIqrXgb4oT9atryzXq7Z4LQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.714.0.tgz", + "integrity": "sha512-I/xSOskiseJJ8i183Z522BgqbgYzLKP7jGcg2Qeib/IWoG2IP+9DH8pwqagKaPAycyswtnoKBJiiFXY43n0CkA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", "tslib": "^2.6.2" }, @@ -882,15 +882,15 @@ } }, "node_modules/@aws-sdk/middleware-expect-continue": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.696.0.tgz", - "integrity": "sha512-vpVukqY3U2pb+ULeX0shs6L0aadNep6kKzjme/MyulPjtUDJpD3AekHsXRrCCGLmOqSKqRgQn5zhV9pQhHsb6Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.714.0.tgz", + "integrity": "sha512-rlzsXdG8Lzo4Qpl35ZnpOBAWlzvDHpP9++0AXoUwAJA0QmMm7auIRmgxJuNj91VwT9h15ZU6xjU4S7fJl4W0+w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -898,23 +898,23 @@ } }, "node_modules/@aws-sdk/middleware-flexible-checksums": { - "version": "3.701.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.701.0.tgz", - "integrity": "sha512-adNaPCyTT+CiVM0ufDiO1Fe7nlRmJdI9Hcgj0M9S6zR7Dw70Ra5z8Lslkd7syAccYvZaqxLklGjPQH/7GNxwTA==", + "version": "3.717.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.717.0.tgz", + "integrity": "sha512-a5kY5r7/7bDZZlOQQGWOR1ulQewdtNexdW1Ex5DD0FLKlFY7RD0va24hxQ6BP7mWHol+Dx4pj6UQ8ahk0ap1tw==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", "@aws-crypto/crc32c": "5.2.0", "@aws-crypto/util": "5.2.0", - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@smithy/is-array-buffer": "^3.0.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -923,15 +923,15 @@ } }, "node_modules/@aws-sdk/middleware-host-header": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.696.0.tgz", - "integrity": "sha512-zELJp9Ta2zkX7ELggMN9qMCgekqZhFC5V2rOr4hJDEb/Tte7gpfKSObAnw/3AYiVqt36sjHKfdkoTsuwGdEoDg==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.714.0.tgz", + "integrity": "sha512-6l68kjNrh5QC8FGX3I3geBDavWN5Tg1RLHJ2HLA8ByGBtJyCwnz3hEkKfaxn0bBx0hF9DzbfjEOUF6cDqy2Kjg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -939,14 +939,14 @@ } }, "node_modules/@aws-sdk/middleware-location-constraint": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.696.0.tgz", - "integrity": "sha512-FgH12OB0q+DtTrP2aiDBddDKwL4BPOrm7w3VV9BJrSdkqQCNBPz8S1lb0y5eVH4tBG+2j7gKPlOv1wde4jF/iw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.714.0.tgz", + "integrity": "sha512-MX7M+V+FblujKck3fyuzePVIAy9530gY719IiSxV6uN1qLHl7VDJxNblpF/KpXakD6rOg8OpvtmqsXj9aBMftw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -954,14 +954,14 @@ } }, "node_modules/@aws-sdk/middleware-logger": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.696.0.tgz", - "integrity": "sha512-KhkHt+8AjCxcR/5Zp3++YPJPpFQzxpr+jmONiT/Jw2yqnSngZ0Yspm5wGoRx2hS1HJbyZNuaOWEGuJoxLeBKfA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.714.0.tgz", + "integrity": "sha512-RkqHlMvQWUaRklU1bMfUuBvdWwxgUtEqpADaHXlGVj3vtEY2UgBjy+57CveC4MByqKIunNvVHBBbjrGVtwY7Lg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -969,15 +969,15 @@ } }, "node_modules/@aws-sdk/middleware-recursion-detection": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.696.0.tgz", - "integrity": "sha512-si/maV3Z0hH7qa99f9ru2xpS5HlfSVcasRlNUXKSDm611i7jFMWwGNLUOXFAOLhXotPX5G3Z6BLwL34oDeBMug==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.714.0.tgz", + "integrity": "sha512-AVU5ixnh93nqtsfgNc284oXsXaadyHGPHpql/jwgaaqQfEXjS/1/j3j9E/vpacfTTz2Vzo7hAOjnvrOXSEVDaA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -985,24 +985,24 @@ } }, "node_modules/@aws-sdk/middleware-sdk-s3": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.696.0.tgz", - "integrity": "sha512-M7fEiAiN7DBMHflzOFzh1I2MNSlLpbiH2ubs87bdRc2wZsDPSbs4l3v6h3WLhxoQK0bq6vcfroudrLBgvCuX3Q==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.716.0.tgz", + "integrity": "sha512-Qzz5OfRA/5brqfvq+JHTInwS1EuJ1+tC6qMtwKWJN3czMnVJVdnnsPTf+G5IM/1yYaGEIjY8rC1ExQLcc8ApFQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", "@aws-sdk/util-arn-parser": "3.693.0", - "@smithy/core": "^2.5.3", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/smithy-client": "^3.4.4", - "@smithy/types": "^3.7.1", + "@smithy/core": "^2.5.5", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/smithy-client": "^3.5.1", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -1011,14 +1011,14 @@ } }, "node_modules/@aws-sdk/middleware-ssec": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.696.0.tgz", - "integrity": "sha512-w/d6O7AOZ7Pg3w2d3BxnX5RmGNWb5X4RNxF19rJqcgu/xqxxE/QwZTNd5a7eTsqLXAUIfbbR8hh0czVfC1pJLA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.714.0.tgz", + "integrity": "sha512-RkK8REAVwNUQmYbIDRw8eYbMJ8F1Rw4C9mlME4BBMhFlelGcD3ErU2ce24moQbDxBjNwHNESmIqgmdQk93CDCQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1026,18 +1026,18 @@ } }, "node_modules/@aws-sdk/middleware-user-agent": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.696.0.tgz", - "integrity": "sha512-Lvyj8CTyxrHI6GHd2YVZKIRI5Fmnugt3cpJo0VrKKEgK5zMySwEZ1n4dqPK6czYRWKd5+WnYHYAuU+Wdk6Jsjw==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.716.0.tgz", + "integrity": "sha512-FpAtT6nNKrYdkDZndutEraiRMf+TgDzAGvniqRtZ/YTPA+gIsWrsn+TwMKINR81lFC3nQfb9deS5CFtxd021Ew==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/core": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@aws-sdk/util-endpoints": "3.696.0", - "@smithy/core": "^2.5.3", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@aws-sdk/core": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@aws-sdk/util-endpoints": "3.714.0", + "@smithy/core": "^2.5.5", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1045,17 +1045,17 @@ } }, "node_modules/@aws-sdk/region-config-resolver": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.696.0.tgz", - "integrity": "sha512-7EuH142lBXjI8yH6dVS/CZeiK/WZsmb/8zP6bQbVYpMrppSTgB3MzZZdxVZGzL5r8zPQOU10wLC4kIMy0qdBVQ==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.714.0.tgz", + "integrity": "sha512-HJzsQxgMOAzZrbf/YIqEx30or4tZK1oNAk6Wm6xecUQx+23JXIaePRu1YFUOLBBERQ4QBPpISFurZWBMZ5ibAw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -1063,17 +1063,17 @@ } }, "node_modules/@aws-sdk/signature-v4-multi-region": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.696.0.tgz", - "integrity": "sha512-ijPkoLjXuPtgxAYlDoYls8UaG/VKigROn9ebbvPL/orEY5umedd3iZTcS9T+uAf4Ur3GELLxMQiERZpfDKaz3g==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.716.0.tgz", + "integrity": "sha512-k0goWotZKKz+kV6Ln0qeAMSeSVi4NipuIIz5R8A0uCF2zBK4CXWdZR7KeaIoLBhJwQnHj1UU7E+2MK74KIUBzA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-sdk-s3": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/signature-v4": "^4.2.2", - "@smithy/types": "^3.7.1", + "@aws-sdk/middleware-sdk-s3": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/protocol-http": "^4.1.8", + "@smithy/signature-v4": "^4.2.4", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1081,33 +1081,33 @@ } }, "node_modules/@aws-sdk/token-providers": { - "version": "3.699.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.699.0.tgz", - "integrity": "sha512-kuiEW9DWs7fNos/SM+y58HCPhcIzm1nEZLhe2/7/6+TvAYLuEWURYsbK48gzsxXlaJ2k/jGY3nIsA7RptbMOwA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.714.0.tgz", + "integrity": "sha512-vKN064aLE3kl+Zl16Ony3jltHnMddMBT7JRkP1L+lLywhA0PcAKxpdvComul/sTBWnbnwLnaS5NsDUhcWySH8A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/property-provider": "^3.1.9", - "@smithy/shared-ini-file-loader": "^3.1.10", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { "node": ">=16.0.0" }, "peerDependencies": { - "@aws-sdk/client-sso-oidc": "^3.699.0" + "@aws-sdk/client-sso-oidc": "^3.714.0" } }, "node_modules/@aws-sdk/types": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.696.0.tgz", - "integrity": "sha512-9rTvUJIAj5d3//U5FDPWGJ1nFJLuWb30vugGOrWk7aNZ6y9tuA3PI7Cc9dP8WEXKVyK1vuuk8rSFP2iqXnlgrw==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/types/-/types-3.714.0.tgz", + "integrity": "sha512-ZjpP2gYbSFlxxaUDa1Il5AVvfggvUPbjzzB/l3q0gIE5Thd6xKW+yzEpt2mLZ5s5UaYSABZbF94g8NUOF4CVGA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1128,15 +1128,15 @@ } }, "node_modules/@aws-sdk/util-endpoints": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.696.0.tgz", - "integrity": "sha512-T5s0IlBVX+gkb9g/I6CLt4yAZVzMSiGnbUqWihWsHvQR1WOoIcndQy/Oz/IJXT9T2ipoy7a80gzV6a5mglrioA==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.714.0.tgz", + "integrity": "sha512-Xv+Z2lhe7w7ZZRsgBwBMZgGTVmS+dkkj2S13uNHAx9lhB5ovM8PhK5G/j28xYf6vIibeuHkRAbb7/ozdZIGR+A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", - "@smithy/util-endpoints": "^2.1.6", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", + "@smithy/util-endpoints": "^2.1.7", "tslib": "^2.6.2" }, "engines": { @@ -1157,29 +1157,29 @@ } }, "node_modules/@aws-sdk/util-user-agent-browser": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.696.0.tgz", - "integrity": "sha512-Z5rVNDdmPOe6ELoM5AhF/ja5tSjbe6ctSctDPb0JdDf4dT0v2MfwhJKzXju2RzX8Es/77Glh7MlaXLE0kCB9+Q==", + "version": "3.714.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.714.0.tgz", + "integrity": "sha512-OdJJ03cP9/MgIVToPJPCPUImbpZzTcwdIgbXC0tUQPJhbD7b7cB4LdnkhNHko+MptpOrCq4CPY/33EpOjRdofw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/types": "3.696.0", - "@smithy/types": "^3.7.1", + "@aws-sdk/types": "3.714.0", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" } }, "node_modules/@aws-sdk/util-user-agent-node": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.696.0.tgz", - "integrity": "sha512-KhKqcfyXIB0SCCt+qsu4eJjsfiOrNzK5dCV7RAW2YIpp+msxGUUX0NdRE9rkzjiv+3EMktgJm3eEIS+yxtlVdQ==", + "version": "3.716.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.716.0.tgz", + "integrity": "sha512-3PqaXmQbxrtHKAsPCdp7kn5FrQktj8j3YyuNsqFZ8rWZeEQ88GWlsvE61PTsr2peYCKzpFqYVddef2x1axHU0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@aws-sdk/middleware-user-agent": "3.696.0", - "@aws-sdk/types": "3.696.0", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@aws-sdk/middleware-user-agent": "3.716.0", + "@aws-sdk/types": "3.714.0", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -1195,13 +1195,13 @@ } }, "node_modules/@aws-sdk/xml-builder": { - "version": "3.696.0", - "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.696.0.tgz", - "integrity": "sha512-dn1mX+EeqivoLYnY7p2qLrir0waPnCgS/0YdRCAVU2x14FgfUYCH6Im3w3oi2dMwhxfKY5lYVB5NKvZu7uI9lQ==", + "version": "3.709.0", + "resolved": "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.709.0.tgz", + "integrity": "sha512-2GPCwlNxeHspoK/Mc8nbk9cBOkSpp3j2SJUQmFnyQK6V/pR6II2oPRyZkMomug1Rc10hqlBHByMecq4zhV2uUw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -3340,9 +3340,9 @@ "license": "MIT" }, "node_modules/@emotion/cache": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.13.5.tgz", - "integrity": "sha512-Z3xbtJ+UcK76eWkagZ1onvn/wAVb1GOMuR15s30Fm2wrMgC7jzpnO2JZXr4eujTTqoQFUrZIw/rT0c6Zzjca1g==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/cache/-/cache-11.14.0.tgz", + "integrity": "sha512-L/B1lc/TViYk4DcpGxtAVbx0ZyiKM5ktoIyafGkH6zg/tj+mA+NE//aPYKG0k8kCHSHVJrpLpcAlOBEXQ3SavA==", "license": "MIT", "dependencies": { "@emotion/memoize": "^0.9.0", @@ -3401,16 +3401,16 @@ "license": "MIT" }, "node_modules/@emotion/react": { - "version": "11.13.5", - "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.13.5.tgz", - "integrity": "sha512-6zeCUxUH+EPF1s+YF/2hPVODeV/7V07YU5x+2tfuRL8MdW6rv5vb2+CBEGTGwBdux0OIERcOS+RzxeK80k2DsQ==", + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/@emotion/react/-/react-11.14.0.tgz", + "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.18.3", "@emotion/babel-plugin": "^11.13.5", - "@emotion/cache": "^11.13.5", + "@emotion/cache": "^11.14.0", "@emotion/serialize": "^1.3.3", - "@emotion/use-insertion-effect-with-fallbacks": "^1.1.0", + "@emotion/use-insertion-effect-with-fallbacks": "^1.2.0", "@emotion/utils": "^1.4.2", "@emotion/weak-memoize": "^0.4.0", "hoist-non-react-statics": "^3.3.1" @@ -3473,9 +3473,9 @@ "license": "MIT" }, "node_modules/@emotion/use-insertion-effect-with-fallbacks": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.1.0.tgz", - "integrity": "sha512-+wBOcIV5snwGgI2ya3u99D7/FJquOIniQT1IKyDsBmEgwvpxMNeS65Oib7OnE2d2aY+3BU4OiH+0Wchf8yk3Hw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.2.0.tgz", + "integrity": "sha512-yJMtVdH59sxi/aVJBpk9FQq+OR8ll5GT8oWd57UpeaKEVGab41JWaCFA7FRLoMLloOZF/c/wsPoe+bfGmRKgDg==", "license": "MIT", "peerDependencies": { "react": ">=16.8.0" @@ -3991,9 +3991,9 @@ } }, "node_modules/@eslint/js": { - "version": "9.16.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.16.0.tgz", - "integrity": "sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", "dev": true, "license": "MIT", "engines": { @@ -5038,9 +5038,9 @@ } }, "node_modules/@grpc/grpc-js": { - "version": "1.12.4", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.4.tgz", - "integrity": "sha512-NBhrxEWnFh0FxeA0d//YP95lRFsSx2TNLEUQg4/W+5f/BMxcCjgOOIT24iD+ZB/tZw057j44DaIxja7w4XMrhg==", + "version": "1.12.5", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.12.5.tgz", + "integrity": "sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==", "license": "Apache-2.0", "dependencies": { "@grpc/proto-loader": "^0.7.13", @@ -5425,9 +5425,9 @@ } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", - "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz", + "integrity": "sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==", "license": "MIT", "dependencies": { "@jridgewell/set-array": "^1.2.1", @@ -5795,337 +5795,363 @@ } }, "node_modules/@libp2p/autonat": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/autonat/-/autonat-2.0.12.tgz", - "integrity": "sha512-EgJb6RwJmBwB7/Ddg3B3xFspc+OrNC6oonWh3osrP85J0cY7wOVmDSuLqk8tcxli9OuTYNSef/7dY9NVYEA+9g==", + "version": "2.0.15", + "resolved": "https://registry.npmjs.org/@libp2p/autonat/-/autonat-2.0.15.tgz", + "integrity": "sha512-R9PHA/0zy//gZ/W0xjyUl7PN+7JP6qtXqoeZnafb7pVOkJy/4RiBeYY4g/QKnZ0lEIpKLDowHT1pujkjbWw/Cg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "it-first": "^3.0.6", - "it-length-prefixed": "^9.0.4", - "it-map": "^3.1.0", - "it-parallel": "^3.0.7", - "it-pipe": "^3.0.1", - "multiformats": "^13.2.2", - "protons-runtime": "^5.4.0", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "any-signal": "^4.1.1", + "it-protobuf-stream": "^1.1.5", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/bootstrap": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.13.tgz", - "integrity": "sha512-zfZdqR4pVvsSWRBYNYjJD6hCzsgRRNLy8NAcLOf+H4+xDQg2pdGY7RhbeLetqnEaifHFV1INdIuCkdOI8cSMsQ==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/bootstrap/-/bootstrap-11.0.16.tgz", + "integrity": "sha512-GmIkQuZwWFOnEBuUM0eRma/PjS0iCgc7Yl8X54QxqbmjB04DMqz2sGgmP+2gmiB38CIj1WGz4DTiTaECiyut2Q==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.3" + "@multiformats/multiaddr": "^12.3.3" } }, "node_modules/@libp2p/circuit-relay-v2": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.1.3.tgz", - "integrity": "sha512-tdPaNK4ut9FU5uwABf+lj01eul3uVDUyAdlcpnIRgkRTOMZ02C06nyaIFSeHD5ykpyZpDIbLPHHBLd5kRYRfYg==", + "version": "3.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/circuit-relay-v2/-/circuit-relay-v2-3.1.6.tgz", + "integrity": "sha512-47ocamyjMlGM9HgVo2BZI/yUuSM03GugTu03KjS1Wx/mLDq3WSpUVk1qMS4v1ZpOwXTnKlk5e3sp/t9K5PHCjw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.3.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "any-signal": "^4.1.1", - "it-protobuf-stream": "^1.1.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "nanoid": "^5.0.7", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "retimeable-signal": "^0.0.0", + "it-protobuf-stream": "^1.1.5", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", + "nanoid": "^5.0.9", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "retimeable-signal": "^1.0.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/crypto": { - "version": "5.0.7", - "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.7.tgz", - "integrity": "sha512-hv0rv/BPBsmSV5GBtaLZpOEv1LsA+Ub0BEDnEvSdB0ZbZ3Fcdlt5HTaJ2jYz4lx2T7KWTFQa9i1elmlGxwuJNg==", + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/@libp2p/crypto/-/crypto-5.0.8.tgz", + "integrity": "sha512-3ZxuzqMvyLXhRnjT3sjvzCCW4zkO9UKgv75KfqExP3k1Yk/Zbb+oM2z7OgnDycvLGxnRZgGwizrgnWpZvXlDEA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@noble/curves": "^1.4.0", - "@noble/hashes": "^1.4.0", + "@libp2p/interface": "^2.3.0", + "@noble/curves": "^1.7.0", + "@noble/hashes": "^1.6.1", "asn1js": "^3.0.5", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, + "node_modules/@libp2p/crypto/node_modules/@noble/curves": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.7.0.tgz", + "integrity": "sha512-UTMhXK9SeDhFJVrHeUJ5uZlI6ajXg10O6Ddocf9S6GjbSBVZsJo88HzKwXznNfGpMTRDyJkqMjNDPYgf0qFWnw==", + "license": "MIT", + "dependencies": { + "@noble/hashes": "1.6.0" + }, + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@libp2p/crypto/node_modules/@noble/curves/node_modules/@noble/hashes": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.6.0.tgz", + "integrity": "sha512-YUULf0Uk4/mAA89w+k3+yUYh6NrEvxZa5T6SY3wlMvE2chHkxFUUIDI8/XW1QSC357iA5pSnqt7XEhvFOqmDyQ==", + "license": "MIT", + "engines": { + "node": "^14.21.3 || >=16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/@libp2p/dcutr": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-2.0.12.tgz", - "integrity": "sha512-BtUtNQW+AmZDr3waEuQn4TzEleMljxXlojnUBAseysnJH5nHPjLyQfkfqKEIFdswghlZOJLX0YhiR+otzKXCCQ==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/dcutr/-/dcutr-2.0.14.tgz", + "integrity": "sha512-claAqe1n2SBoy53v30tvw3BI3+Jbn5UivmR0R69tclBa2sU15sh8WfKMfRv+h3eo8823syUruNZUvUslc2p4DA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "delay": "^6.0.0", - "it-protobuf-stream": "^1.1.3", - "protons-runtime": "^5.4.0", + "it-protobuf-stream": "^1.1.5", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/identify": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.12.tgz", - "integrity": "sha512-Z1MjdaGMsLPEEpEvlCJOsOgZ2q4FOPqO7W9ep6Kemnc0suuB6wk+8XLDvnZKHS80OdZopGQwm7z8Az06cxrLAA==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/identify/-/identify-3.0.14.tgz", + "integrity": "sha512-H80tdH8csD3W+wHoaltJEnjTAmZBJ22bYqFOPk5YKCF0k19Ox2MwRTkyCXuVDIdQfrYs94JE3HvLvUoN9X/JBQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "it-drain": "^3.0.7", - "it-parallel": "^3.0.7", - "it-protobuf-stream": "^1.1.3", - "protons-runtime": "^5.4.0", + "it-parallel": "^3.0.8", + "it-protobuf-stream": "^1.1.5", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0", "wherearewe": "^2.0.1" } }, "node_modules/@libp2p/interface": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.2.1.tgz", - "integrity": "sha512-5dvsnf9+S5DoXCk5H3HNpe8lKzuXTi0k2On8Cdqr6YrkmrhCimow63AxtaUOVkH7GVBTTi8Q1jSx3aleX7KcEA==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/@libp2p/interface/-/interface-2.3.0.tgz", + "integrity": "sha512-lodc8jxw32fkY2m2bsS6yzzozua6EDr5rJvahJaJVC36jZWFW5sBmOW8jBoKfoZyRwgD6uoOXP39miWQhEaUcg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr": "^12.3.3", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", - "progress-events": "^1.0.0", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", + "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/interface-internal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.1.1.tgz", - "integrity": "sha512-7rw7p5wZry9ZPfdhYi4zXRjsgrJ8y/X5M7iWIzUBSJdJP2Zd0ZVStlgyqYm1YAbb8V0mwo5BI/kxd2o9R/9TJQ==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@libp2p/interface-internal/-/interface-internal-2.2.1.tgz", + "integrity": "sha512-GGxQnTgQ891bpOcHQAG9Dy/KXo1OoKnCaV2e02yWNhW8TkqlFJnwdny6tX8O6BN8Od56yuEIS89ZoNn2SK4F5g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-collections": "^6.0.12", - "@multiformats/multiaddr": "^12.2.3", - "progress-events": "^1.0.0", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-collections": "^6.0.13", + "@multiformats/multiaddr": "^12.3.3", + "progress-events": "^1.0.1", "uint8arraylist": "^2.4.8" } }, "node_modules/@libp2p/kad-dht": { - "version": "14.1.3", - "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.1.3.tgz", - "integrity": "sha512-eo2QdsllouakcdHa7NbLhjQ6eMdsMc7PLZRt3lnQTdQsMT81iVTAB/hhVJlTSEUJHQS5JbikrjkJLtFu6KUFzw==", + "version": "14.1.6", + "resolved": "https://registry.npmjs.org/@libp2p/kad-dht/-/kad-dht-14.1.6.tgz", + "integrity": "sha512-ceTF2Xh32PTleLfccAvniTdTFWfRgmaW1NT2juk4YRfzCQFdJqhuspiDVqelpZnexHKWgbYvwUos/gIEQICJ7g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", "@libp2p/record": "^4.0.4", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", "any-signal": "^4.1.1", - "interface-datastore": "^8.3.0", + "interface-datastore": "^8.3.1", + "it-all": "^3.0.6", "it-drain": "^3.0.7", "it-length": "^3.0.6", - "it-length-prefixed": "^9.0.4", - "it-map": "^3.1.0", + "it-length-prefixed": "^9.1.0", + "it-map": "^3.1.1", "it-merge": "^3.0.5", - "it-parallel": "^3.0.7", + "it-parallel": "^3.0.8", "it-pipe": "^3.0.1", - "it-protobuf-stream": "^1.1.3", - "it-take": "^3.0.5", - "mortice": "^3.0.4", - "multiformats": "^13.1.0", + "it-protobuf-stream": "^1.1.5", + "it-take": "^3.0.6", + "mortice": "^3.0.6", + "multiformats": "^13.3.1", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "race-signal": "^1.0.2", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "race-signal": "^1.1.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/keychain": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-5.0.10.tgz", - "integrity": "sha512-olTq2dbKpKkUCsDjAOYcxwSB4KotJ9zA3aaWOE8aUd2ZbwrYJ3VBlm0Ov5PfdGx9qsUhsfnmC01vpF6cEEOg0g==", + "version": "5.0.11", + "resolved": "https://registry.npmjs.org/@libp2p/keychain/-/keychain-5.0.11.tgz", + "integrity": "sha512-kznG/mCaULYZTVYXuXtGJgmq7ZBiWFQNd4UutIsi8T1h7q0uD37iQI3sNJxb58yDOHrpCYpICfDpjlK6X3bJzQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@noble/hashes": "^1.5.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@noble/hashes": "^1.6.1", "asn1js": "^3.0.5", - "interface-datastore": "^8.3.0", + "interface-datastore": "^8.3.1", "merge-options": "^3.0.4", - "multiformats": "^13.2.2", + "multiformats": "^13.3.1", "sanitize-filename": "^1.6.3", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/logger": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.4.tgz", - "integrity": "sha512-pVQ2odi6rcOR412wM0dg7eZ1+wPHPo5D7W8vIn3YyB2FLodQD7CZXXfg7Z9Yaqlc4BVbkNXDWL/jlUss9wL2Ow==", + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/@libp2p/logger/-/logger-5.1.5.tgz", + "integrity": "sha512-Qe8B/Mja0myaArPvuI5iKVi3o2Z55Rir+RDkkEU/m9TkKDkHVFmGKnPlWDzHehi18GALjLxOsTE9TJASxjDTCA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", - "multiformats": "^13.1.0", - "weald": "^1.0.2" + "@libp2p/interface": "^2.3.0", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", + "multiformats": "^13.3.1", + "weald": "^1.0.4" } }, "node_modules/@libp2p/mdns": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-11.0.13.tgz", - "integrity": "sha512-zGr7PygfoUeYjTvpujFYcLLhlcQ4dGegPep6e/LaLq97eU+GTF//AJbs9KhHQRfSqv449o+38fbqPHCxrwurMA==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/mdns/-/mdns-11.0.16.tgz", + "integrity": "sha512-FJLJywEFCm5r61b7IZ+KGvxUPEGuGx5VGXyTSE10y7lSxizn50ZUAmnN76OsBdLz/Uj3/iyzTOOmY17mzBjN3g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", "@types/multicast-dns": "^7.2.4", "dns-packet": "^5.6.1", "multicast-dns": "^7.2.5" } }, "node_modules/@libp2p/mplex": { - "version": "11.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-11.0.13.tgz", - "integrity": "sha512-OS6n8BfzMhgsAB/IiEcbQfdftAVOXkRCrZrSAZC90kWEL47SuHk6M5xjsr6ODOXCHAWApC7FfMV4tKrzyXXItw==", + "version": "11.0.16", + "resolved": "https://registry.npmjs.org/@libp2p/mplex/-/mplex-11.0.16.tgz", + "integrity": "sha512-FHzKT67sSE7AxzGDj+WVesvKHXjjoXGg9aiuHfQmnO0tC2c3F7jY3KahuaaxLIZp4P3QdZZMwtqhbb6iASrWyg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", + "it-stream-types": "^2.0.2", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/multistream-select": { - "version": "6.0.9", - "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-6.0.9.tgz", - "integrity": "sha512-yU+K4/jtXwt1WXMXSJTuhGnn6F97v/P0IOdMALMQlgmvSeGICDBNllX/i0r9y/DDwI/Hh61phB15aUgc/6pX8Q==", + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/@libp2p/multistream-select/-/multistream-select-6.0.10.tgz", + "integrity": "sha512-u2sxsPk18cmJl1GLbfKgV+HXcFP2e873411PPwfQgMqTuNYXvJZheJWxV/nz7LjB3XelHxgYPpDVkMvK/kjMyw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "it-length-prefixed": "^9.0.4", - "it-length-prefixed-stream": "^1.1.7", - "it-stream-types": "^2.0.1", + "@libp2p/interface": "^2.3.0", + "it-length-prefixed": "^9.1.0", + "it-length-prefixed-stream": "^1.2.0", + "it-stream-types": "^2.0.2", "p-defer": "^4.0.1", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-collections": { - "version": "6.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.12.tgz", - "integrity": "sha512-JQvnCZ5rUiFkznQTOblNF+xE0ddmETn1f3FyYP9vHALOPrgdQkoZeY1b1W3Gz7gA8CXZ//cluHE+ZBiavDbNIg==", + "version": "6.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-collections/-/peer-collections-6.0.13.tgz", + "integrity": "sha512-BjpXs3kWegnNay2CApntOkL9tPyzTxC2lKUt0Mj9qntmOp1BF/zWY982U1X4ScjCE/M9Nh9x/w4Z/GKCT+K5lQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "multiformats": "^13.2.2" + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "multiformats": "^13.3.1" } }, "node_modules/@libp2p/peer-id": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.8.tgz", - "integrity": "sha512-vil9cch+qtqchSlrgG0Zw82uCW8XsyeOJc6DaIiS2hI01cMOIChT4CKjTn0iV5k2yw/niycQPjLrYQzy7tBIYg==", + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/@libp2p/peer-id/-/peer-id-5.0.9.tgz", + "integrity": "sha512-TgWOPbU7AcUdSiHomL2wcg9eJqjoMCvCmU5eq/3fyBygTaG4BiQA/tYKuTEfeB5YPMdG1cJLmxgpk/a+ZRkY1g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "multiformats": "^13.1.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "multiformats": "^13.3.1", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-record": { - "version": "8.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.12.tgz", - "integrity": "sha512-N8OyAAgQwBCUB7AtSlI0AQun45SeBS5UWMnhO9JLAzzNUOZiMk+IfBwEu8dpJ0E311QK2vGY1suoxTsauqMSjg==", + "version": "8.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-record/-/peer-record-8.0.13.tgz", + "integrity": "sha512-4+jd3UvlF3sUoHpjPToy9AdW3ReF/ipvA9yBdl5axDKWxjJVOfyG8DvLRGJsTvm12gLdvb7vDgmEtpUPwWqjGQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "multiformats": "^13.2.2", - "protons-runtime": "^5.4.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/peer-store": { - "version": "11.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.12.tgz", - "integrity": "sha512-wCPvrmdm+fua28xY6THVskawNDhKxo9O9suif9MAy6Nb9Drr+WiOGucHasOrs/ELvkuU3nc/zxvyWjk8MlTEfw==", + "version": "11.0.13", + "resolved": "https://registry.npmjs.org/@libp2p/peer-store/-/peer-store-11.0.13.tgz", + "integrity": "sha512-KieXSY8ysyC7ROJ7GI7dtQkowRFDuG2jk5HQedSXNUe74JurG0uI/HddFF8yij+HgY/kZiBwWUQbKrTC4Cewbw==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-record": "^8.0.12", - "@multiformats/multiaddr": "^12.2.3", - "interface-datastore": "^8.3.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-record": "^8.0.13", + "@multiformats/multiaddr": "^12.3.3", + "interface-datastore": "^8.3.1", "it-all": "^3.0.6", - "mortice": "^3.0.4", - "multiformats": "^13.1.0", - "protons-runtime": "^5.4.0", + "mortice": "^3.0.6", + "multiformats": "^13.3.1", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/ping": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.12.tgz", - "integrity": "sha512-wJKJ9PmAQbcXl/V5iZfmypztptVS6mRAZjpidDHOwUxSTmxgnd9HadJEgiQ1dUJjaMe4JUmLhb3+ym+RS48alg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/ping/-/ping-2.0.14.tgz", + "integrity": "sha512-+idRl+4T2bhP+FNDgwBFWHyHkFoOcjwzQmezLR00mG8hg2iH3BvDmzMd7cagZM21SaeDd4eiN8XyhQqyi1RcZA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@multiformats/multiaddr": "^12.2.3", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@multiformats/multiaddr": "^12.3.3", "it-byte-stream": "^1.1.0", "uint8arrays": "^5.1.0" } @@ -6142,40 +6168,40 @@ } }, "node_modules/@libp2p/tcp": { - "version": "10.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-10.0.13.tgz", - "integrity": "sha512-1oxkfMGJdnACSeq75k+K1JM9KkPUFgp7U/YH6+4f884MC7crciV28+FtrIoxS+79gX+EZeUOzvCPLWbuQddk9Q==", + "version": "10.0.14", + "resolved": "https://registry.npmjs.org/@libp2p/tcp/-/tcp-10.0.14.tgz", + "integrity": "sha512-HwYCvNnSqjVzoy3DQh6chy4EwWgmnII+ccT/LEpitKbV8QzHTv2HUeSaGtuGc42Z95rFMXqmJeqBkhbXcpeCRA==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", "@multiformats/mafmt": "^12.1.6", - "@multiformats/multiaddr": "^12.2.3", + "@multiformats/multiaddr": "^12.3.3", "@types/sinon": "^17.0.3", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "progress-events": "^1.0.0", + "progress-events": "^1.0.1", "race-event": "^1.3.0", "stream-to-it": "^1.0.1" } }, "node_modules/@libp2p/tls": { - "version": "2.0.11", - "resolved": "https://registry.npmjs.org/@libp2p/tls/-/tls-2.0.11.tgz", - "integrity": "sha512-kUBC1CneZgFPP0p084ecHGOnFURxOfZgJXRRSXYrZhK/pv8xpJcO2GPebsNlJDkuId/sX22koGYBZV+xDIVEgg==", + "version": "2.0.12", + "resolved": "https://registry.npmjs.org/@libp2p/tls/-/tls-2.0.12.tgz", + "integrity": "sha512-OyxGH4Eg8dFGAkpdpwy1xf4vwcT1f+PFzEnFOiD2ql0RTLh/fEpkeNOd+2D2qvMhHa0a3gYH9hFiyswSIz+CGQ==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/peer-id": "^5.0.8", - "@peculiar/asn1-schema": "^2.3.8", - "@peculiar/asn1-x509": "^2.3.8", - "@peculiar/webcrypto": "^1.4.6", - "@peculiar/x509": "^1.9.7", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/peer-id": "^5.0.9", + "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/webcrypto": "^1.5.0", + "@peculiar/x509": "^1.12.3", "asn1js": "^3.0.5", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "protons-runtime": "^5.4.0", + "it-stream-types": "^2.0.2", + "protons-runtime": "^5.5.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } @@ -6198,16 +6224,17 @@ } }, "node_modules/@libp2p/utils": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.2.1.tgz", - "integrity": "sha512-uORuQLB75MgbrDA6i0rCw/fqNFgCs1dO3c21Z5WNdRCA4Lcvhgi6wnUf45DwgNCqtljDAnBR0FYI+UbEp5yAuA==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/@libp2p/utils/-/utils-6.3.0.tgz", + "integrity": "sha512-1zF9xwxtAjg7N54deR3l45d0awLsuO8cacfp9J4vE+4RjrtKSa40IxhunLOp52ctm9H17wixlXUhoP85Ki8F3w==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/is-ip": "^2.0.2", - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/logger": "^5.1.4", - "@multiformats/multiaddr": "^12.2.3", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/logger": "^5.1.5", + "@multiformats/multiaddr": "^12.3.3", "@sindresorhus/fnv1a": "^3.1.0", "@types/murmurhash3js-revisited": "^3.0.3", "any-signal": "^4.1.1", @@ -6217,42 +6244,42 @@ "it-foreach": "^2.1.1", "it-pipe": "^3.0.1", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", + "it-stream-types": "^2.0.2", "murmurhash3js-revisited": "^3.0.0", "netmask": "^2.0.2", "p-defer": "^4.0.1", "race-event": "^1.3.0", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8arraylist": "^2.4.8", "uint8arrays": "^5.1.0" } }, "node_modules/@libp2p/webrtc": { - "version": "5.0.19", - "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-5.0.19.tgz", - "integrity": "sha512-WicT2mraZf4ZKqt73MYvfAUvOQehZDPT673GThA3yK02eR6B/c9MenMuUbNb3qGsE4b5yhMjioYjZPahWpxcBw==", + "version": "5.0.22", + "resolved": "https://registry.npmjs.org/@libp2p/webrtc/-/webrtc-5.0.22.tgz", + "integrity": "sha512-WVJC4mhFYdZ1wKTZxAwTMXyLqkfcLRM86J8wKgRNTAfvZqet1HQuJ5U/Hp4CngNnuLGHqOKVdn6obDcy6nMWww==", "license": "Apache-2.0 OR MIT", "dependencies": { "@chainsafe/libp2p-noise": "^16.0.0", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "detect-browser": "^5.3.0", - "it-length-prefixed": "^9.0.4", - "it-protobuf-stream": "^1.1.3", + "it-length-prefixed": "^9.1.0", + "it-protobuf-stream": "^1.1.5", "it-pushable": "^3.2.3", - "it-stream-types": "^2.0.1", - "multiformats": "^13.1.0", + "it-stream-types": "^2.0.2", + "multiformats": "^13.3.1", "node-datachannel": "^0.11.0", "p-defer": "^4.0.1", "p-event": "^6.0.1", - "p-timeout": "^6.1.2", - "progress-events": "^1.0.0", - "protons-runtime": "^5.4.0", - "race-signal": "^1.0.2", + "p-timeout": "^6.1.3", + "progress-events": "^1.0.1", + "protons-runtime": "^5.5.0", + "race-signal": "^1.1.0", "react-native-webrtc": "^124.0.4", "uint8-varint": "^2.0.4", "uint8arraylist": "^2.4.8", @@ -6260,32 +6287,23 @@ } }, "node_modules/@libp2p/websockets": { - "version": "9.0.13", - "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-9.0.13.tgz", - "integrity": "sha512-e1Lukn8kzJC7YbfufT8rOy/BXUyl213srb+zizFu4JkTRloChEjq7VzARPo9lrMQye71JrTi2eBg+O/XadERsg==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/@libp2p/websockets/-/websockets-9.1.0.tgz", + "integrity": "sha512-110hKTaCO13nUxUAr5KQPyomzbXbwkoyeY0Xr5urX8oAA7R3hQrcs8+luWpouiF8Ui5SvmeWDN8t2yPMoH2v5g==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/interface": "^2.2.1", - "@libp2p/utils": "^6.2.1", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.4.0", - "@multiformats/multiaddr-to-uri": "^10.0.1", - "@types/ws": "^8.5.10", - "it-ws": "^6.1.1", + "@libp2p/interface": "^2.3.0", + "@libp2p/utils": "^6.3.0", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", + "@multiformats/multiaddr-to-uri": "^11.0.0", + "@types/ws": "^8.5.13", + "it-ws": "^6.1.5", "p-defer": "^4.0.1", - "progress-events": "^1.0.0", - "race-signal": "^1.0.2", - "wherearewe": "^2.0.1", - "ws": "^8.17.0" - } - }, - "node_modules/@libp2p/websockets/node_modules/@multiformats/multiaddr-to-uri": { - "version": "10.1.2", - "resolved": "https://registry.npmjs.org/@multiformats/multiaddr-to-uri/-/multiaddr-to-uri-10.1.2.tgz", - "integrity": "sha512-6sicfYRjJlHJn4bwsQancs8kXncWU4dDN/+V9sMVTYp9hi8ovWgVkK75AbAv4SfhztmmI+oufVUncQ1n+SukKQ==", - "license": "Apache-2.0 OR MIT", - "dependencies": { - "@multiformats/multiaddr": "^12.3.0" + "p-event": "^6.0.1", + "progress-events": "^1.0.1", + "race-signal": "^1.1.0", + "ws": "^8.18.0" } }, "node_modules/@libp2p/websockets/node_modules/ws": { @@ -6707,30 +6725,30 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-beta.64", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.64.tgz", - "integrity": "sha512-nu663PoZs/Pee0fkPYkjUADfT+AAi2QWvvHghDhLeSx8sa3i+GGaOoUsFmB4CPlyYqWfq9hRGA7H1T3d6VrGgw==", + "version": "5.0.0-beta.40-0", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40-0.tgz", + "integrity": "sha512-hG3atoDUxlvEy+0mqdMpWd04wca8HKr2IHjW/fAjlkCHQolSLazhZM46vnHjOf15M4ESu25mV/3PgjczyjVM4w==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.26.0", - "@floating-ui/react-dom": "^2.1.1", - "@mui/types": "^7.2.19", - "@mui/utils": "^6.1.10", + "@babel/runtime": "^7.23.9", + "@floating-ui/react-dom": "^2.0.8", + "@mui/types": "^7.2.15", + "@mui/utils": "^5.16.12", "@popperjs/core": "^2.11.8", - "clsx": "^2.1.1", + "clsx": "^2.1.0", "prop-types": "^15.8.1" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/mui-org" }, "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -6739,9 +6757,9 @@ } }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.9.tgz", - "integrity": "sha512-ue3j79XJ56+F6DlTtFTM+n//5AvNENOvl3MFruZZP5iZzz+hOq6WBwnr+YxiMlr+kvmMHuHxgOHFdPR8+mElDw==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.16.13.tgz", + "integrity": "sha512-xe5RwI0Q2O709Bd2Y7l1W1NIwNmln0y+xaGk5VgX3vDJbkQEqzdfTFZ73e0CkEZgJwyiWgk5HY0l8R4nysOxjw==", "license": "MIT", "funding": { "type": "opencollective", @@ -6749,16 +6767,16 @@ } }, "node_modules/@mui/lab": { - "version": "5.0.0-alpha.174", - "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.174.tgz", - "integrity": "sha512-6jw+vcjfnDr/V4qzqwOPFwoqzxejGfm9F0k9E92QLmtFv5F0pH73OjmQDzALL7zrcwR4iV4D94iJZ1xFawiREA==", + "version": "5.0.0-alpha.175", + "resolved": "https://registry.npmjs.org/@mui/lab/-/lab-5.0.0-alpha.175.tgz", + "integrity": "sha512-AvM0Nvnnj7vHc9+pkkQkoE1i+dEbr6gsMdnSfy7X4w3Ljgcj1yrjZhIt3jGTCLzyKVLa6uve5eLluOcGkvMqUA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/base": "5.0.0-beta.40", - "@mui/system": "^5.16.8", + "@mui/base": "5.0.0-beta.40-0", + "@mui/system": "^5.16.12", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.12", "clsx": "^2.1.0", "prop-types": "^15.8.1" }, @@ -6789,85 +6807,23 @@ } } }, - "node_modules/@mui/lab/node_modules/@mui/base": { - "version": "5.0.0-beta.40", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-beta.40.tgz", - "integrity": "sha512-I/lGHztkCzvwlXpjD2+SNmvNQvB4227xBXhISPjEaJUXGImOQ9f3D2Yj/T3KasSI/h0MLWy74X0J6clhPmsRbQ==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@floating-ui/react-dom": "^2.0.8", - "@mui/types": "^7.2.14", - "@mui/utils": "^5.15.14", - "@popperjs/core": "^2.11.8", - "clsx": "^2.1.0", - "prop-types": "^15.8.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0", - "react": "^17.0.0 || ^18.0.0", - "react-dom": "^17.0.0 || ^18.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, - "node_modules/@mui/lab/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/material": { - "version": "5.16.9", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.9.tgz", - "integrity": "sha512-XC0oHFm7mrWV0tvhed9uv/o6kLNClnLj1eo/ufuKbj+rgk47ek8Y6HjHe3cGvMn4Bcq8KyoQPgzdwqvS2ZzYrA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.16.13.tgz", + "integrity": "sha512-FhLDkDPYDzvrWCHFsdXzRArhS4AdYufU8d69rmLL+bwhodPcbm2C7cS8Gq5VR32PsW6aKZb58gvAgvEVaiiJbA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/core-downloads-tracker": "^5.16.9", - "@mui/system": "^5.16.8", + "@mui/core-downloads-tracker": "^5.16.13", + "@mui/system": "^5.16.13", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "@popperjs/core": "^2.11.8", "@types/react-transition-group": "^4.4.10", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1", - "react-is": "^18.3.1", + "react-is": "^19.0.0", "react-transition-group": "^4.4.5" }, "engines": { @@ -6896,44 +6852,14 @@ } } }, - "node_modules/@mui/material/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/private-theming": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.8.tgz", - "integrity": "sha512-3Vl9yFVLU6T3CFtxRMQTcJ60Ijv7wxQi4yjH92+9YXcsqvVspeIYoocqNoIV/1bXGYfyWu5zrCmwQVHaGY7bug==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.16.13.tgz", + "integrity": "sha512-+s0FklvDvO7j0yBZn19DIIT3rLfub2fWvXGtMX49rG/xHfDFcP7fbWbZKHZMMP/2/IoTRDrZCbY1iP0xZlmuJA==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "prop-types": "^15.8.1" }, "engines": { @@ -6953,44 +6879,14 @@ } } }, - "node_modules/@mui/private-theming/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/styled-engine": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.8.tgz", - "integrity": "sha512-OFdgFf8JczSRs0kvWGdSn0ZeXxWrY0LITDPJ/nAtLEvUUTyrlFaO4il3SECX8ruzvf1VnAxHx4M/4mX9oOn9yA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/styled-engine/-/styled-engine-5.16.13.tgz", + "integrity": "sha512-2XNHEG8/o1ucSLhTA9J+HIIXjzlnEc0OV7kneeUQ5JukErPYT2zc6KYBDLjlKWrzQyvnQzbiffjjspgHUColZg==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@emotion/cache": "^11.11.0", + "@emotion/cache": "^11.13.5", "csstype": "^3.1.3", "prop-types": "^15.8.1" }, @@ -7016,16 +6912,16 @@ } }, "node_modules/@mui/system": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.8.tgz", - "integrity": "sha512-L32TaFDFpGIi1g6ysRtmhc9zDgrlxDXu3NlrGE8gAsQw/ziHrPdr0PNr20O0POUshA1q14W4dNZ/z0Nx2F9lhA==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.16.13.tgz", + "integrity": "sha512-JnO3VH3yNoAmgyr44/2jiS1tcNwshwAqAaG5fTEEjHQbkuZT/mvPYj2GC1cON0zEQ5V03xrCNl/D+gU9AXibpw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.9", - "@mui/private-theming": "^5.16.8", - "@mui/styled-engine": "^5.16.8", + "@mui/private-theming": "^5.16.13", + "@mui/styled-engine": "^5.16.13", "@mui/types": "^7.2.15", - "@mui/utils": "^5.16.8", + "@mui/utils": "^5.16.13", "clsx": "^2.1.0", "csstype": "^3.1.3", "prop-types": "^15.8.1" @@ -7055,40 +6951,10 @@ } } }, - "node_modules/@mui/system/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/types": { - "version": "7.2.19", - "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.19.tgz", - "integrity": "sha512-6XpZEM/Q3epK9RN8ENoXuygnqUQxE+siN/6rGRi2iwJPgBUR25mphYQ9ZI87plGh58YoZ5pp40bFvKYOCDJ3tA==", + "version": "7.2.20", + "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.20.tgz", + "integrity": "sha512-straFHD7L8v05l/N5vcWk+y7eL9JF0C2mtph/y4BPm3gn2Eh61dDwDB65pa8DLss3WJfDXYC7Kx5yjP0EmXpgw==", "license": "MIT", "peerDependencies": { "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0" @@ -7100,20 +6966,20 @@ } }, "node_modules/@mui/utils": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-6.1.10.tgz", - "integrity": "sha512-1ETuwswGjUiAf2dP9TkBy8p49qrw2wXa+RuAjNTRE5+91vtXJ1HKrs7H9s8CZd1zDlQVzUcUAPm9lpQwF5ogTw==", + "version": "5.16.13", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.13.tgz", + "integrity": "sha512-35kLiShnDPByk57Mz4PP66fQUodCFiOD92HfpW6dK9lc7kjhZsKHRKeYPgWuwEHeXwYsCSFtBCW4RZh/8WT+TQ==", "license": "MIT", "dependencies": { - "@babel/runtime": "^7.26.0", - "@mui/types": "^7.2.19", - "@types/prop-types": "^15.7.13", + "@babel/runtime": "^7.23.9", + "@mui/types": "^7.2.15", + "@types/prop-types": "^15.7.12", "clsx": "^2.1.1", "prop-types": "^15.8.1", - "react-is": "^18.3.1" + "react-is": "^19.0.0" }, "engines": { - "node": ">=14.0.0" + "node": ">=12.0.0" }, "funding": { "type": "opencollective", @@ -7155,36 +7021,6 @@ "react-dom": "^17.0.0 || ^18.0.0" } }, - "node_modules/@mui/x-data-grid/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@mui/x-date-pickers": { "version": "6.20.2", "resolved": "https://registry.npmjs.org/@mui/x-date-pickers/-/x-date-pickers-6.20.2.tgz", @@ -7251,36 +7087,6 @@ } } }, - "node_modules/@mui/x-date-pickers/node_modules/@mui/utils": { - "version": "5.16.8", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.16.8.tgz", - "integrity": "sha512-P/yb7BSWallQUeiNGxb+TM8epHteIUC8gzNTdPV2VfKhVY/EnGliHgt5np0GPkjQ7EzwDi/+gBevrAJtf+K94A==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.23.9", - "@mui/types": "^7.2.15", - "@types/prop-types": "^15.7.12", - "clsx": "^2.1.1", - "prop-types": "^15.8.1", - "react-is": "^18.3.1" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mui-org" - }, - "peerDependencies": { - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", @@ -7494,9 +7300,9 @@ } }, "node_modules/@nx/nx-linux-x64-gnu": { - "version": "20.2.0", - "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.2.0.tgz", - "integrity": "sha512-yW5ICzdtT5nncXraGFfqKqhs2pR+t9ZxoLrM7qwSt9XOtkyVYk/OhkJcdotVG3XiQeDSA86OsnMFlXNs6nKPMg==", + "version": "20.3.0", + "resolved": "https://registry.npmjs.org/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-20.3.0.tgz", + "integrity": "sha512-nkA2DLI+rpmiuiy7dyXP4l9s7dgHkQWDX7lG1XltiT41RzAReJF1h8qBE6XrsAYE1CtI76DRWVphnc93+iZr+A==", "cpu": [ "x64" ], @@ -7539,13 +7345,13 @@ } }, "node_modules/@octokit/endpoint": { - "version": "10.1.1", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.1.tgz", - "integrity": "sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==", + "version": "10.1.2", + "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-10.1.2.tgz", + "integrity": "sha512-XybpFv9Ms4hX5OCHMZqyODYqGTZ3H6K6Vva+M9LR7ib/xr1y1ZnlChYv9H680y77Vd/i/k+thXApeRASBQkzhA==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0", + "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.2" }, "engines": { @@ -7553,14 +7359,14 @@ } }, "node_modules/@octokit/graphql": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.1.tgz", - "integrity": "sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==", + "version": "8.1.2", + "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-8.1.2.tgz", + "integrity": "sha512-bdlj/CJVjpaz06NBpfHhp4kGJaRZfz7AzC+6EwUImRtrwIw8dIgJ63Xg0OzV9pRn3rIzrt5c2sa++BL0JJ8GLw==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/request": "^9.0.0", - "@octokit/types": "^13.0.0", + "@octokit/request": "^9.1.4", + "@octokit/types": "^13.6.2", "universal-user-agent": "^7.0.0" }, "engines": { @@ -7626,15 +7432,16 @@ } }, "node_modules/@octokit/request": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.3.tgz", - "integrity": "sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==", + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/@octokit/request/-/request-9.1.4.tgz", + "integrity": "sha512-tMbOwGm6wDII6vygP3wUVqFTw3Aoo0FnVQyhihh8vVq12uO3P+vQZeo2CKMpWtPSogpACD0yyZAlVlQnjW71DA==", "dev": true, "license": "MIT", "dependencies": { "@octokit/endpoint": "^10.0.0", "@octokit/request-error": "^6.0.1", - "@octokit/types": "^13.1.0", + "@octokit/types": "^13.6.2", + "fast-content-type-parse": "^2.0.0", "universal-user-agent": "^7.0.2" }, "engines": { @@ -7642,13 +7449,13 @@ } }, "node_modules/@octokit/request-error": { - "version": "6.1.5", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.5.tgz", - "integrity": "sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==", + "version": "6.1.6", + "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-6.1.6.tgz", + "integrity": "sha512-pqnVKYo/at0NuOjinrgcQYpEbv4snvP3bKMRqHaD9kIsk9u1LCpb2smHZi8/qJfgeNqLo5hNW4Z7FezNdEo0xg==", "dev": true, "license": "MIT", "dependencies": { - "@octokit/types": "^13.0.0" + "@octokit/types": "^13.6.2" }, "engines": { "node": ">= 18" @@ -7695,345 +7502,6 @@ "integrity": "sha512-RefjXB3d5Ub1I3GoIf/mfgTsvmAneWoeQwpmiuXYx1NmmSdbtBxDUk4POtSWUCnvoiJP0Y2frATnYMV30J1b1A==", "license": "Apache-2.0" }, - "node_modules/@parcel/watcher": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher/-/watcher-2.5.0.tgz", - "integrity": "sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==", - "hasInstallScript": true, - "license": "MIT", - "dependencies": { - "detect-libc": "^1.0.3", - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "node-addon-api": "^7.0.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - }, - "optionalDependencies": { - "@parcel/watcher-android-arm64": "2.5.0", - "@parcel/watcher-darwin-arm64": "2.5.0", - "@parcel/watcher-darwin-x64": "2.5.0", - "@parcel/watcher-freebsd-x64": "2.5.0", - "@parcel/watcher-linux-arm-glibc": "2.5.0", - "@parcel/watcher-linux-arm-musl": "2.5.0", - "@parcel/watcher-linux-arm64-glibc": "2.5.0", - "@parcel/watcher-linux-arm64-musl": "2.5.0", - "@parcel/watcher-linux-x64-glibc": "2.5.0", - "@parcel/watcher-linux-x64-musl": "2.5.0", - "@parcel/watcher-win32-arm64": "2.5.0", - "@parcel/watcher-win32-ia32": "2.5.0", - "@parcel/watcher-win32-x64": "2.5.0" - } - }, - "node_modules/@parcel/watcher-android-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.0.tgz", - "integrity": "sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.0.tgz", - "integrity": "sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-darwin-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.0.tgz", - "integrity": "sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-freebsd-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.0.tgz", - "integrity": "sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.0.tgz", - "integrity": "sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.0.tgz", - "integrity": "sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==", - "cpu": [ - "arm" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.0.tgz", - "integrity": "sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-arm64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.0.tgz", - "integrity": "sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-glibc": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.0.tgz", - "integrity": "sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-linux-x64-musl": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.0.tgz", - "integrity": "sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-wasm": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-wasm/-/watcher-wasm-2.5.0.tgz", - "integrity": "sha512-Z4ouuR8Pfggk1EYYbTaIoxc+Yv4o7cGQnH0Xy8+pQ+HbiW+ZnwhcD2LPf/prfq1nIWpAxjOkQ8uSMFWMtBLiVQ==", - "bundleDependencies": [ - "napi-wasm" - ], - "license": "MIT", - "dependencies": { - "is-glob": "^4.0.3", - "micromatch": "^4.0.5", - "napi-wasm": "^1.1.0" - }, - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-wasm/node_modules/napi-wasm": { - "version": "1.1.0", - "inBundle": true, - "license": "MIT" - }, - "node_modules/@parcel/watcher-win32-arm64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.0.tgz", - "integrity": "sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==", - "cpu": [ - "arm64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-ia32": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.0.tgz", - "integrity": "sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==", - "cpu": [ - "ia32" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher-win32-x64": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.0.tgz", - "integrity": "sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==", - "cpu": [ - "x64" - ], - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/parcel" - } - }, - "node_modules/@parcel/watcher/node_modules/detect-libc": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", - "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", - "license": "Apache-2.0", - "bin": { - "detect-libc": "bin/detect-libc.js" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/@parcel/watcher/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT" - }, "node_modules/@passwordless-id/webauthn": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/@passwordless-id/webauthn/-/webauthn-1.6.2.tgz", @@ -8044,130 +7512,129 @@ } }, "node_modules/@peculiar/asn1-cms": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.13.tgz", - "integrity": "sha512-joqu8A7KR2G85oLPq+vB+NFr2ro7Ls4ol13Zcse/giPSzUNN0n2k3v8kMpf6QdGUhI13e5SzQYN8AKP8sJ8v4w==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-cms/-/asn1-cms-2.3.15.tgz", + "integrity": "sha512-B+DoudF+TCrxoJSTjjcY8Mmu+lbv8e7pXGWrhNp2/EGJp9EEcpzjBCar7puU57sGifyzaRVM03oD5L7t7PghQg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "@peculiar/asn1-x509-attr": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "@peculiar/asn1-x509-attr": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-csr": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.3.13.tgz", - "integrity": "sha512-+JtFsOUWCw4zDpxp1LbeTYBnZLlGVOWmHHEhoFdjM5yn4wCn+JiYQ8mghOi36M2f6TPQ17PmhNL6/JfNh7/jCA==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-csr/-/asn1-csr-2.3.15.tgz", + "integrity": "sha512-caxAOrvw2hUZpxzhz8Kp8iBYKsHbGXZPl2KYRMIPvAfFateRebS3136+orUpcVwHRmpXWX2kzpb6COlIrqCumA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-ecc": { - "version": "2.3.14", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.14.tgz", - "integrity": "sha512-zWPyI7QZto6rnLv6zPniTqbGaLh6zBpJyI46r1yS/bVHJXT2amdMHCRRnbV5yst2H8+ppXG6uXu/M6lKakiQ8w==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-ecc/-/asn1-ecc-2.3.15.tgz", + "integrity": "sha512-/HtR91dvgog7z/WhCVdxZJ/jitJuIu8iTqiyWVgRE9Ac5imt2sT/E4obqIVGKQw7PIy+X6i8lVBoT6wC73XUgA==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pfx": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.3.13.tgz", - "integrity": "sha512-fypYxjn16BW+5XbFoY11Rm8LhZf6euqX/C7BTYpqVvLem1GvRl7A+Ro1bO/UPwJL0z+1mbvXEnkG0YOwbwz2LA==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pfx/-/asn1-pfx-2.3.15.tgz", + "integrity": "sha512-E3kzQe3J2xV9DP6SJS4X6/N1e4cYa2xOAK46VtvpaRk8jlheNri8v0rBezKFVPB1rz/jW8npO+u1xOvpATFMWg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.3.13", - "@peculiar/asn1-pkcs8": "^2.3.13", - "@peculiar/asn1-rsa": "^2.3.13", - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-cms": "^2.3.15", + "@peculiar/asn1-pkcs8": "^2.3.15", + "@peculiar/asn1-rsa": "^2.3.15", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs8": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.3.13.tgz", - "integrity": "sha512-VP3PQzbeSSjPjKET5K37pxyf2qCdM0dz3DJ56ZCsol3FqAXGekb4sDcpoL9uTLGxAh975WcdvUms9UcdZTuGyQ==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs8/-/asn1-pkcs8-2.3.15.tgz", + "integrity": "sha512-/PuQj2BIAw1/v76DV1LUOA6YOqh/UvptKLJHtec/DQwruXOCFlUo7k6llegn8N5BTeZTWMwz5EXruBw0Q10TMg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-pkcs9": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.3.13.tgz", - "integrity": "sha512-rIwQXmHpTo/dgPiWqUgby8Fnq6p1xTJbRMxCiMCk833kQCeZrC5lbSKg6NDnJTnX2kC6IbXBB9yCS2C73U2gJg==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-pkcs9/-/asn1-pkcs9-2.3.15.tgz", + "integrity": "sha512-yiZo/1EGvU1KiQUrbcnaPGWc0C7ElMMskWn7+kHsCFm+/9fU0+V1D/3a5oG0Jpy96iaXggQpA9tzdhnYDgjyFg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-cms": "^2.3.13", - "@peculiar/asn1-pfx": "^2.3.13", - "@peculiar/asn1-pkcs8": "^2.3.13", - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", - "@peculiar/asn1-x509-attr": "^2.3.13", + "@peculiar/asn1-cms": "^2.3.15", + "@peculiar/asn1-pfx": "^2.3.15", + "@peculiar/asn1-pkcs8": "^2.3.15", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", + "@peculiar/asn1-x509-attr": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-rsa": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.13.tgz", - "integrity": "sha512-wBNQqCyRtmqvXkGkL4DR3WxZhHy8fDiYtOjTeCd7SFE5F6GBeafw3EJ94PX/V0OJJrjQ40SkRY2IZu3ZSyBqcg==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-rsa/-/asn1-rsa-2.3.15.tgz", + "integrity": "sha512-p6hsanvPhexRtYSOHihLvUUgrJ8y0FtOM97N5UEpC+VifFYyZa0iZ5cXjTkZoDwxJ/TTJ1IJo3HVTB2JJTpXvg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-schema": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.13.tgz", - "integrity": "sha512-3Xq3a01WkHRZL8X04Zsfg//mGaA21xlL4tlVn4v2xGT0JStiztATRkMwa5b+f/HXmY2smsiLXYK46Gwgzvfg3g==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.15.tgz", + "integrity": "sha512-QPeD8UA8axQREpgR5UTAfu2mqQmm97oUqahDtNdBcfj3qAnoXzFdQW+aNf/tD2WVXF8Fhmftxoj0eMIT++gX2w==", "license": "MIT", "dependencies": { "asn1js": "^3.0.5", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.13.tgz", - "integrity": "sha512-PfeLQl2skXmxX2/AFFCVaWU8U6FKW1Db43mgBhShCOFS1bVxqtvusq1hVjfuEcuSQGedrLdCSvTgabluwN/M9A==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509/-/asn1-x509-2.3.15.tgz", + "integrity": "sha512-0dK5xqTqSLaxv1FHXIcd4Q/BZNuopg+u1l23hT9rOmQ1g4dNtw0g/RnEi+TboB0gOwGtrWn269v27cMgchFIIg==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", "asn1js": "^3.0.5", - "ipaddr.js": "^2.1.0", - "pvtsutils": "^1.3.5", - "tslib": "^2.6.2" + "pvtsutils": "^1.3.6", + "tslib": "^2.8.1" } }, "node_modules/@peculiar/asn1-x509-attr": { - "version": "2.3.13", - "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.3.13.tgz", - "integrity": "sha512-WpEos6CcnUzJ6o2Qb68Z7Dz5rSjRGv/DtXITCNBtjZIRWRV12yFVci76SVfOX8sisL61QWMhpLKQibrG8pi2Pw==", + "version": "2.3.15", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-x509-attr/-/asn1-x509-attr-2.3.15.tgz", + "integrity": "sha512-TWJVJhqc+IS4MTEML3l6W1b0sMowVqdsnI4dnojg96LvTuP8dga9f76fjP07MUuss60uSyT2ckoti/2qHXA10A==", "license": "MIT", "dependencies": { - "@peculiar/asn1-schema": "^2.3.13", - "@peculiar/asn1-x509": "^2.3.13", + "@peculiar/asn1-schema": "^2.3.15", + "@peculiar/asn1-x509": "^2.3.15", "asn1js": "^3.0.5", - "tslib": "^2.6.2" + "tslib": "^2.8.1" } }, "node_modules/@peculiar/json-schema": { @@ -8362,18 +7829,18 @@ "license": "MIT" }, "node_modules/@radix-ui/primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.0.tgz", - "integrity": "sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/primitive/-/primitive-1.1.1.tgz", + "integrity": "sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==", "license": "MIT" }, "node_modules/@radix-ui/react-arrow": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.0.tgz", - "integrity": "sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-arrow/-/react-arrow-1.1.1.tgz", + "integrity": "sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -8391,15 +7858,15 @@ } }, "node_modules/@radix-ui/react-collection": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.0.tgz", - "integrity": "sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-collection/-/react-collection-1.1.1.tgz", + "integrity": "sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8416,25 +7883,10 @@ } } }, - "node_modules/@radix-ui/react-collection/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-compose-refs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.0.tgz", - "integrity": "sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-compose-refs/-/react-compose-refs-1.1.1.tgz", + "integrity": "sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==", "license": "MIT", "peerDependencies": { "@types/react": "*", @@ -8462,25 +7914,25 @@ } }, "node_modules/@radix-ui/react-dialog": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.2.tgz", - "integrity": "sha512-Yj4dZtqa2o+kG61fzB0H2qUvmwBA2oyQroGLyNtBj1beo1khoQ3q1a2AO8rrQYjd8256CO9+N8L9tvsS+bnIyA==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dialog/-/react-dialog-1.1.4.tgz", + "integrity": "sha512-Ur7EV1IwQGCyaAuyDRiOLA5JIUZxELJljF+MbM/2NC0BYwfuRrbpS30BiQBJrVruscgUkieKkqXYDOoByaxIoA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -8513,14 +7965,14 @@ } }, "node_modules/@radix-ui/react-dismissable-layer": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.1.tgz", - "integrity": "sha512-QSxg29lfr/xcev6kSz7MAlmDnzbP1eI/Dwn3Tp1ip0KT5CUELsxkekFEMVBEoykI3oV39hKT4TKZzBNMbcTZYQ==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-dismissable-layer/-/react-dismissable-layer-1.1.3.tgz", + "integrity": "sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-escape-keydown": "1.1.0" }, @@ -8555,13 +8007,13 @@ } }, "node_modules/@radix-ui/react-focus-scope": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.0.tgz", - "integrity": "sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-focus-scope/-/react-focus-scope-1.1.1.tgz", + "integrity": "sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0" }, "peerDependencies": { @@ -8607,26 +8059,26 @@ } }, "node_modules/@radix-ui/react-popover": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.2.tgz", - "integrity": "sha512-u2HRUyWW+lOiA2g0Le0tMmT55FGOEWHwPFt1EPfbLly7uXQExFo5duNKqG2DzmFXIdqOeNd+TpE8baHWJCyP9w==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popover/-/react-popover-1.1.4.tgz", + "integrity": "sha512-aUACAkXx8LaFymDma+HQVji7WhvEhpFJ7+qPz17Nf4lLZqtreGOFRiNQWQmhzp7kEWg9cOyyQJpdIMUMPc/CPw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-focus-guards": "1.1.1", - "@radix-ui/react-focus-scope": "1.1.0", + "@radix-ui/react-focus-scope": "1.1.1", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", "aria-hidden": "^1.1.1", - "react-remove-scroll": "2.6.0" + "react-remove-scroll": "^2.6.1" }, "peerDependencies": { "@types/react": "*", @@ -8644,16 +8096,16 @@ } }, "node_modules/@radix-ui/react-popper": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.0.tgz", - "integrity": "sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-popper/-/react-popper-1.2.1.tgz", + "integrity": "sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==", "license": "MIT", "dependencies": { "@floating-ui/react-dom": "^2.0.0", - "@radix-ui/react-arrow": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-arrow": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-layout-effect": "1.1.0", "@radix-ui/react-use-rect": "1.1.0", @@ -8675,28 +8127,13 @@ } } }, - "node_modules/@radix-ui/react-popper/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-portal": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.2.tgz", - "integrity": "sha512-WeDYLGPxJb/5EGBoedyJbT0MpoULmwnIPMJMSldkuiMsBAv7N1cRdsTWZWht9vpPOiN3qyiGAtbK2is47/uMFg==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@radix-ui/react-portal/-/react-portal-1.1.3.tgz", + "integrity": "sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -8715,12 +8152,12 @@ } }, "node_modules/@radix-ui/react-presence": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.1.tgz", - "integrity": "sha512-IeFXVi4YS1K0wVZzXNrbaaUvIJ3qdY+/Ih4eHFhWA9SwGR9UDX7Ck8abvL57C4cv3wwMvUE0OG69Qc3NCcTe/A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-presence/-/react-presence-1.1.2.tgz", + "integrity": "sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-use-layout-effect": "1.1.0" }, "peerDependencies": { @@ -8739,12 +8176,12 @@ } }, "node_modules/@radix-ui/react-primitive": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.0.tgz", - "integrity": "sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-primitive/-/react-primitive-2.0.1.tgz", + "integrity": "sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==", "license": "MIT", "dependencies": { - "@radix-ui/react-slot": "1.1.0" + "@radix-ui/react-slot": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8762,18 +8199,18 @@ } }, "node_modules/@radix-ui/react-roving-focus": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.0.tgz", - "integrity": "sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-roving-focus/-/react-roving-focus-1.1.1.tgz", + "integrity": "sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-collection": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", - "@radix-ui/react-context": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-collection": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", + "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-primitive": "2.0.0", + "@radix-ui/react-primitive": "2.0.1", "@radix-ui/react-use-callback-ref": "1.1.0", "@radix-ui/react-use-controllable-state": "1.1.0" }, @@ -8792,28 +8229,13 @@ } } }, - "node_modules/@radix-ui/react-roving-focus/node_modules/@radix-ui/react-context": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-context/-/react-context-1.1.0.tgz", - "integrity": "sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==", - "license": "MIT", - "peerDependencies": { - "@types/react": "*", - "react": "^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc" - }, - "peerDependenciesMeta": { - "@types/react": { - "optional": true - } - } - }, "node_modules/@radix-ui/react-slot": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.0.tgz", - "integrity": "sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-slot/-/react-slot-1.1.1.tgz", + "integrity": "sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==", "license": "MIT", "dependencies": { - "@radix-ui/react-compose-refs": "1.1.0" + "@radix-ui/react-compose-refs": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8826,18 +8248,18 @@ } }, "node_modules/@radix-ui/react-tabs": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.1.tgz", - "integrity": "sha512-3GBUDmP2DvzmtYLMsHmpA1GtR46ZDZ+OreXM/N+kkQJOPIgytFWWTfDQmBQKBvaFS0Vno0FktdbVzN28KGrMdw==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tabs/-/react-tabs-1.1.2.tgz", + "integrity": "sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", + "@radix-ui/primitive": "1.1.1", "@radix-ui/react-context": "1.1.1", "@radix-ui/react-direction": "1.1.0", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-roving-focus": "1.1.0", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-roving-focus": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0" }, "peerDependencies": { @@ -8856,23 +8278,23 @@ } }, "node_modules/@radix-ui/react-tooltip": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.4.tgz", - "integrity": "sha512-QpObUH/ZlpaO4YgHSaYzrLO2VuO+ZBFFgGzjMUPwtiYnAzzNNDPJeEGRrT7qNOrWm/Jr08M1vlp+vTHtnSQ0Uw==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@radix-ui/react-tooltip/-/react-tooltip-1.1.6.tgz", + "integrity": "sha512-TLB5D8QLExS1uDn7+wH/bjEmRurNMTzNrtq7IjaS4kjion9NtzsTGkvR5+i7yc9q01Pi2KMM2cN3f8UG4IvvXA==", "license": "MIT", "dependencies": { - "@radix-ui/primitive": "1.1.0", - "@radix-ui/react-compose-refs": "1.1.0", + "@radix-ui/primitive": "1.1.1", + "@radix-ui/react-compose-refs": "1.1.1", "@radix-ui/react-context": "1.1.1", - "@radix-ui/react-dismissable-layer": "1.1.1", + "@radix-ui/react-dismissable-layer": "1.1.3", "@radix-ui/react-id": "1.1.0", - "@radix-ui/react-popper": "1.2.0", - "@radix-ui/react-portal": "1.1.2", - "@radix-ui/react-presence": "1.1.1", - "@radix-ui/react-primitive": "2.0.0", - "@radix-ui/react-slot": "1.1.0", + "@radix-ui/react-popper": "1.2.1", + "@radix-ui/react-portal": "1.1.3", + "@radix-ui/react-presence": "1.1.2", + "@radix-ui/react-primitive": "2.0.1", + "@radix-ui/react-slot": "1.1.1", "@radix-ui/react-use-controllable-state": "1.1.0", - "@radix-ui/react-visually-hidden": "1.1.0" + "@radix-ui/react-visually-hidden": "1.1.1" }, "peerDependencies": { "@types/react": "*", @@ -8992,12 +8414,12 @@ } }, "node_modules/@radix-ui/react-visually-hidden": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.0.tgz", - "integrity": "sha512-N8MDZqtgCgG5S3aV60INAB475osJousYpZ4cTJ2cFbMpdHS5Y6loLTH8LPtkj2QN0x93J30HT/M3qJXM0+lyeQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@radix-ui/react-visually-hidden/-/react-visually-hidden-1.1.1.tgz", + "integrity": "sha512-vVfA2IZ9q/J+gEamvj761Oq1FpWgCDaNOOIfbPVp2MVPLEomUr5+Vf7kJGwQ24YxZSlQVar7Bes8kyTo5Dshpg==", "license": "MIT", "dependencies": { - "@radix-ui/react-primitive": "2.0.0" + "@radix-ui/react-primitive": "2.0.1" }, "peerDependencies": { "@types/react": "*", @@ -9021,9 +8443,9 @@ "license": "MIT" }, "node_modules/@reduxjs/toolkit": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.4.0.tgz", - "integrity": "sha512-wJZEuSKj14tvNfxiIiJws0tQN77/rDqucBq528ApebMIRHyWpCanJVQRxQ8WWZC19iCDKxDsGlbAir3F1layxA==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.5.0.tgz", + "integrity": "sha512-awNe2oTodsZ6LmRqmkFhtb/KH03hUhxOamEQy411m3Njj3BbFvoBovxo4Q1cBWnV1ErprVj9MlF0UPXkng0eyg==", "license": "MIT", "dependencies": { "immer": "^10.0.3", @@ -9032,7 +8454,7 @@ "reselect": "^5.1.0" }, "peerDependencies": { - "react": "^16.9.0 || ^17.0.0 || ^18", + "react": "^16.9.0 || ^17.0.0 || ^18 || ^19", "react-redux": "^7.2.1 || ^8.1.3 || ^9.0.0" }, "peerDependenciesMeta": { @@ -9082,9 +8504,9 @@ } }, "node_modules/@rollup/pluginutils": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.3.tgz", - "integrity": "sha512-Pnsb6f32CD2W3uCaLZIzDmeFyQ2b8UWMFI7xtwUezpcGBDVDW6y9XgAWIlARiGAo6eNF5FK5aQTr0LFyNyqq5A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.4.tgz", + "integrity": "sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==", "license": "MIT", "dependencies": { "@types/estree": "^1.0.0", @@ -9104,9 +8526,9 @@ } }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.28.0.tgz", - "integrity": "sha512-wLJuPLT6grGZsy34g4N1yRfYeouklTgPhH1gWXCYspenKYD0s3cR99ZevOGw5BexMNywkbV3UkjADisozBmpPQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.29.1.tgz", + "integrity": "sha512-ssKhA8RNltTZLpG6/QNkCSge+7mBQGUqJRisZ2MDQcEGaK93QESEgWK2iOpIDZ7k9zPVkG5AS3ksvD5ZWxmItw==", "cpu": [ "arm" ], @@ -9118,9 +8540,9 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.28.0.tgz", - "integrity": "sha512-eiNkznlo0dLmVG/6wf+Ifi/v78G4d4QxRhuUl+s8EWZpDewgk7PX3ZyECUXU0Zq/Ca+8nU8cQpNC4Xgn2gFNDA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.29.1.tgz", + "integrity": "sha512-CaRfrV0cd+NIIcVVN/jx+hVLN+VRqnuzLRmfmlzpOzB87ajixsN/+9L5xNmkaUUvEbI5BmIKS+XTwXsHEb65Ew==", "cpu": [ "arm64" ], @@ -9132,9 +8554,9 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.28.0.tgz", - "integrity": "sha512-lmKx9yHsppblnLQZOGxdO66gT77bvdBtr/0P+TPOseowE7D9AJoBw8ZDULRasXRWf1Z86/gcOdpBrV6VDUY36Q==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.29.1.tgz", + "integrity": "sha512-2ORr7T31Y0Mnk6qNuwtyNmy14MunTAMx06VAPI6/Ju52W10zk1i7i5U3vlDRWjhOI5quBcrvhkCHyF76bI7kEw==", "cpu": [ "arm64" ], @@ -9146,9 +8568,9 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.28.0.tgz", - "integrity": "sha512-8hxgfReVs7k9Js1uAIhS6zq3I+wKQETInnWQtgzt8JfGx51R1N6DRVy3F4o0lQwumbErRz52YqwjfvuwRxGv1w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.29.1.tgz", + "integrity": "sha512-j/Ej1oanzPjmN0tirRd5K2/nncAhS9W6ICzgxV+9Y5ZsP0hiGhHJXZ2JQ53iSSjj8m6cRY6oB1GMzNn2EUt6Ng==", "cpu": [ "x64" ], @@ -9160,9 +8582,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.28.0.tgz", - "integrity": "sha512-lA1zZB3bFx5oxu9fYud4+g1mt+lYXCoch0M0V/xhqLoGatbzVse0wlSQ1UYOWKpuSu3gyN4qEc0Dxf/DII1bhQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.29.1.tgz", + "integrity": "sha512-91C//G6Dm/cv724tpt7nTyP+JdN12iqeXGFM1SqnljCmi5yTXriH7B1r8AD9dAZByHpKAumqP1Qy2vVNIdLZqw==", "cpu": [ "arm64" ], @@ -9174,9 +8596,9 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.28.0.tgz", - "integrity": "sha512-aI2plavbUDjCQB/sRbeUZWX9qp12GfYkYSJOrdYTL/C5D53bsE2/nBPuoiJKoWp5SN78v2Vr8ZPnB+/VbQ2pFA==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.29.1.tgz", + "integrity": "sha512-hEioiEQ9Dec2nIRoeHUP6hr1PSkXzQaCUyqBDQ9I9ik4gCXQZjJMIVzoNLBRGet+hIUb3CISMh9KXuCcWVW/8w==", "cpu": [ "x64" ], @@ -9188,9 +8610,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.28.0.tgz", - "integrity": "sha512-WXveUPKtfqtaNvpf0iOb0M6xC64GzUX/OowbqfiCSXTdi/jLlOmH0Ba94/OkiY2yTGTwteo4/dsHRfh5bDCZ+w==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.29.1.tgz", + "integrity": "sha512-Py5vFd5HWYN9zxBv3WMrLAXY3yYJ6Q/aVERoeUFwiDGiMOWsMs7FokXihSOaT/PMWUty/Pj60XDQndK3eAfE6A==", "cpu": [ "arm" ], @@ -9202,9 +8624,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.28.0.tgz", - "integrity": "sha512-yLc3O2NtOQR67lI79zsSc7lk31xjwcaocvdD1twL64PK1yNaIqCeWI9L5B4MFPAVGEVjH5k1oWSGuYX1Wutxpg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.29.1.tgz", + "integrity": "sha512-RiWpGgbayf7LUcuSNIbahr0ys2YnEERD4gYdISA06wa0i8RALrnzflh9Wxii7zQJEB2/Eh74dX4y/sHKLWp5uQ==", "cpu": [ "arm" ], @@ -9216,9 +8638,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.28.0.tgz", - "integrity": "sha512-+P9G9hjEpHucHRXqesY+3X9hD2wh0iNnJXX/QhS/J5vTdG6VhNYMxJ2rJkQOxRUd17u5mbMLHM7yWGZdAASfcg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.29.1.tgz", + "integrity": "sha512-Z80O+taYxTQITWMjm/YqNoe9d10OX6kDh8X5/rFCMuPqsKsSyDilvfg+vd3iXIqtfmp+cnfL1UrYirkaF8SBZA==", "cpu": [ "arm64" ], @@ -9230,9 +8652,9 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.28.0.tgz", - "integrity": "sha512-1xsm2rCKSTpKzi5/ypT5wfc+4bOGa/9yI/eaOLW0oMs7qpC542APWhl4A37AENGZ6St6GBMWhCCMM6tXgTIplw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.29.1.tgz", + "integrity": "sha512-fOHRtF9gahwJk3QVp01a/GqS4hBEZCV1oKglVVq13kcK3NeVlS4BwIFzOHDbmKzt3i0OuHG4zfRP0YoG5OF/rA==", "cpu": [ "arm64" ], @@ -9243,10 +8665,24 @@ "linux" ] }, + "node_modules/@rollup/rollup-linux-loongarch64-gnu": { + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.29.1.tgz", + "integrity": "sha512-5a7q3tnlbcg0OodyxcAdrrCxFi0DgXJSoOuidFUzHZ2GixZXQs6Tc3CHmlvqKAmOs5eRde+JJxeIf9DonkmYkw==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.28.0.tgz", - "integrity": "sha512-zgWxMq8neVQeXL+ouSf6S7DoNeo6EPgi1eeqHXVKQxqPy1B2NvTbaOUWPn/7CfMKL7xvhV0/+fq/Z/J69g1WAQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.29.1.tgz", + "integrity": "sha512-9b4Mg5Yfz6mRnlSPIdROcfw1BU22FQxmfjlp/CShWwO3LilKQuMISMTtAu/bxmmrE6A902W2cZJuzx8+gJ8e9w==", "cpu": [ "ppc64" ], @@ -9258,9 +8694,9 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.28.0.tgz", - "integrity": "sha512-VEdVYacLniRxbRJLNtzwGt5vwS0ycYshofI7cWAfj7Vg5asqj+pt+Q6x4n+AONSZW/kVm+5nklde0qs2EUwU2g==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.29.1.tgz", + "integrity": "sha512-G5pn0NChlbRM8OJWpJFMX4/i8OEU538uiSv0P6roZcbpe/WfhEO+AT8SHVKfp8qhDQzaz7Q+1/ixMy7hBRidnQ==", "cpu": [ "riscv64" ], @@ -9272,9 +8708,9 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.28.0.tgz", - "integrity": "sha512-LQlP5t2hcDJh8HV8RELD9/xlYtEzJkm/aWGsauvdO2ulfl3QYRjqrKW+mGAIWP5kdNCBheqqqYIGElSRCaXfpw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.29.1.tgz", + "integrity": "sha512-WM9lIkNdkhVwiArmLxFXpWndFGuOka4oJOZh8EP3Vb8q5lzdSCBuhjavJsw68Q9AKDGeOOIHYzYm4ZFvmWez5g==", "cpu": [ "s390x" ], @@ -9286,9 +8722,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.28.0.tgz", - "integrity": "sha512-Nl4KIzteVEKE9BdAvYoTkW19pa7LR/RBrT6F1dJCV/3pbjwDcaOq+edkP0LXuJ9kflW/xOK414X78r+K84+msw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.29.1.tgz", + "integrity": "sha512-87xYCwb0cPGZFoGiErT1eDcssByaLX4fc0z2nRM6eMtV9njAfEE6OW3UniAoDhX4Iq5xQVpE6qO9aJbCFumKYQ==", "cpu": [ "x64" ], @@ -9299,9 +8735,9 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.28.0.tgz", - "integrity": "sha512-eKpJr4vBDOi4goT75MvW+0dXcNUqisK4jvibY9vDdlgLx+yekxSm55StsHbxUsRxSTt3JEQvlr3cGDkzcSP8bw==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.29.1.tgz", + "integrity": "sha512-xufkSNppNOdVRCEC4WKvlR1FBDyqCSCpQeMMgv9ZyXqqtKBfkw1yfGMTUTs9Qsl6WQbJnsGboWCp7pJGkeMhKA==", "cpu": [ "x64" ], @@ -9313,9 +8749,9 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.28.0.tgz", - "integrity": "sha512-Vi+WR62xWGsE/Oj+mD0FNAPY2MEox3cfyG0zLpotZdehPFXwz6lypkGs5y38Jd/NVSbOD02aVad6q6QYF7i8Bg==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.29.1.tgz", + "integrity": "sha512-F2OiJ42m77lSkizZQLuC+jiZ2cgueWQL5YC9tjo3AgaEw+KJmVxHGSyQfDUoYR9cci0lAywv2Clmckzulcq6ig==", "cpu": [ "arm64" ], @@ -9327,9 +8763,9 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.28.0.tgz", - "integrity": "sha512-kN/Vpip8emMLn/eOza+4JwqDZBL6MPNpkdaEsgUtW1NYN3DZvZqSQrbKzJcTL6hd8YNmFTn7XGWMwccOcJBL0A==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.29.1.tgz", + "integrity": "sha512-rYRe5S0FcjlOBZQHgbTKNrqxCBUmgDJem/VQTCcTnA2KCabYSWQDrytOzX7avb79cAAweNmMUb/Zw18RNd4mng==", "cpu": [ "ia32" ], @@ -9341,9 +8777,9 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.28.0.tgz", - "integrity": "sha512-Bvno2/aZT6usSa7lRDL2+hMjVAGjuqaymF1ApZm31JXzniR/hvr14jpU+/z4X6Gt5BPlzosscyJZGUvguXIqeQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.29.1.tgz", + "integrity": "sha512-+10CMg9vt1MoHj6x1pxyjPSMjHTIlqs8/tBztXvPAx24SKs9jwVnKqHJumlH/IzhaPUaj3T6T6wfZr8okdXaIg==", "cpu": [ "x64" ], @@ -9406,12 +8842,12 @@ "license": "MIT" }, "node_modules/@safe-global/safe-core-sdk-types/node_modules/cross-fetch": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.0.0.tgz", - "integrity": "sha512-e4a5N8lVvuLgAWgnCrLr2PP0YyDOTHa9H/Rj54dirp61qXnNq46m82bRhNqIA5VccJtWBvPTFRV3TtvHUKPB1g==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-4.1.0.tgz", + "integrity": "sha512-uKm5PU+MHTootlWEY+mZ4vvXoCn4fLQxT9dSc1sXVMSFkINTJVN8cAQROpwcKm8bJ/c7rgZVIBWzH5T78sNZZw==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/@safe-global/safe-core-sdk-types/node_modules/eventemitter3": { @@ -9599,9 +9035,9 @@ } }, "node_modules/@safe-global/safe-deployments": { - "version": "1.37.20", - "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.20.tgz", - "integrity": "sha512-2T2cYtgpLGzxM0GUPXd5mqZiQ193fgWXB2Yg0Azd/EBpBsAfUEWVmjdux+5D2aNNyVv++16Hq5GqiOv5sU07Tg==", + "version": "1.37.22", + "resolved": "https://registry.npmjs.org/@safe-global/safe-deployments/-/safe-deployments-1.37.22.tgz", + "integrity": "sha512-acUBJ22qqivSjHOwa8laQuHckqpWDjphjdC3zPhUN6G/swHe1WJHN5F2sodtNIjEyRxM73JRRJFsLYfb0EhSAQ==", "license": "MIT", "dependencies": { "semver": "^7.6.2" @@ -9840,14 +9276,11 @@ } }, "node_modules/@semantic-release/github/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } @@ -9874,13 +9307,13 @@ } }, "node_modules/@semantic-release/github/node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -9888,9 +9321,9 @@ } }, "node_modules/@semantic-release/github/node_modules/mime": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.4.tgz", - "integrity": "sha512-v8yqInVjhXyqP6+Kw4fV3ZzeMRqEW6FotRsKXjRS5VMTNIuXsdRoAvklpoRgSqXm6o9VNH4/C0mgedko9DdLsQ==", + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/mime/-/mime-4.0.6.tgz", + "integrity": "sha512-4rGt7rvQHBbaSOF9POGkk1ocRP16Md1x36Xma8sz8h8/vfCUI2OtEIeCqe4Ofes853x4xDoPiFLIT47J5fI/7A==", "dev": true, "funding": [ "https://github.com/sponsors/broofa" @@ -9971,9 +9404,9 @@ } }, "node_modules/@semantic-release/npm/node_modules/execa": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.1.tgz", - "integrity": "sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -10133,9 +9566,9 @@ } }, "node_modules/@semantic-release/release-notes-generator": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.1.tgz", - "integrity": "sha512-K0w+5220TM4HZTthE5dDpIuFrnkN1NfTGPidJFm04ULT1DEZ9WG89VNXN7F0c+6nMEpWgqmPvb7vY7JkB2jyyA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-14.0.2.tgz", + "integrity": "sha512-ur2l2tVLBfX3fSEO2rCy2X6Kzg5S7BHGqdwTHvJrpWp4mOEN7W4K/2kWAjvfAlwMenEKjMnDIhBbxxjnP0S9hw==", "dev": true, "license": "MIT", "dependencies": { @@ -10171,50 +9604,50 @@ } }, "node_modules/@sentry-internal/browser-utils": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.42.0.tgz", - "integrity": "sha512-xzgRI0wglKYsPrna574w1t38aftuvo44gjOKFvPNGPnYfiW9y4m+64kUz3JFbtanvOrKPcaITpdYiB4DeJXEbA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/browser-utils/-/browser-utils-8.47.0.tgz", + "integrity": "sha512-vOXzYzHTKkahTLDzWWIA4EiVCQ+Gk+7xGWUlNcR2ZiEPBqYZVb5MjsUozAcc7syrSUy6WicyFjcomZ3rlCVQhg==", "license": "MIT", "dependencies": { - "@sentry/core": "8.42.0" + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/feedback": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.42.0.tgz", - "integrity": "sha512-dkIw5Wdukwzngg5gNJ0QcK48LyJaMAnBspqTqZ3ItR01STi6Z+6+/Bt5XgmrvDgRD+FNBinflc5zMmfdFXXhvw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-8.47.0.tgz", + "integrity": "sha512-IAiIemTQIalxAOYhUENs9bZ8pMNgJnX3uQSuY7v0gknEqClOGpGkG04X/cxCmtJUj1acZ9ShTGDxoh55a+ggAQ==", "license": "MIT", "dependencies": { - "@sentry/core": "8.42.0" + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.42.0.tgz", - "integrity": "sha512-oNcJEBlDfXnRFYC5Mxj5fairyZHNqlnU4g8kPuztB9G5zlsyLgWfPxzcn1ixVQunth2/WZRklDi4o1ZfyHww7w==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay/-/replay-8.47.0.tgz", + "integrity": "sha512-G/S40ZBORj0HSMLw/uVC6YDEPN/dqVk901vf4VYfml686DEhJrZesfAfp5SydJumQ0NKZQrdtvny+BWnlI5H1w==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/browser-utils": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" } }, "node_modules/@sentry-internal/replay-canvas": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.42.0.tgz", - "integrity": "sha512-XrPErqVhPsPh/oFLVKvz7Wb+Fi2J1zCPLeZCxWqFuPWI2agRyLVu0KvqJyzSpSrRAEJC/XFzuSVILlYlXXSfgA==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry-internal/replay-canvas/-/replay-canvas-8.47.0.tgz", + "integrity": "sha512-M4W9UGouEeELbGbP3QsXLDVtGiQSZoWJlKwqMWyqdQgZuLoKw0S33+60t6teLVMhuQZR0UI9VJTF5coiXysnnA==", "license": "MIT", "dependencies": { - "@sentry-internal/replay": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/replay": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" @@ -10230,16 +9663,16 @@ } }, "node_modules/@sentry/browser": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.42.0.tgz", - "integrity": "sha512-lStrEk609KJHwXfDrOgoYVVoFFExixHywxSExk7ZDtwj2YPv6r6Y1gogvgr7dAZj7jWzadHkxZ33l9EOSJBfug==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-8.47.0.tgz", + "integrity": "sha512-K6BzHisykmbFy/wORtGyfsAlw7ShevLALzu3ReZZZ18dVubO1bjSNjkZQU9MJD5Jcb9oLwkq89n3N9XIBfvdRA==", "license": "MIT", "dependencies": { - "@sentry-internal/browser-utils": "8.42.0", - "@sentry-internal/feedback": "8.42.0", - "@sentry-internal/replay": "8.42.0", - "@sentry-internal/replay-canvas": "8.42.0", - "@sentry/core": "8.42.0" + "@sentry-internal/browser-utils": "8.47.0", + "@sentry-internal/feedback": "8.47.0", + "@sentry-internal/replay": "8.47.0", + "@sentry-internal/replay-canvas": "8.47.0", + "@sentry/core": "8.47.0" }, "engines": { "node": ">=14.18" @@ -10421,22 +9854,22 @@ } }, "node_modules/@sentry/core": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.42.0.tgz", - "integrity": "sha512-ac6O3pgoIbU6rpwz6LlwW0wp3/GAHuSI0C5IsTgIY6baN8rOBnlAtG6KrHDDkGmUQ2srxkDJu9n1O6Td3cBCqw==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/core/-/core-8.47.0.tgz", + "integrity": "sha512-iSEJZMe3DOcqBFZQAqgA3NB2lCWBc4Gv5x/SCri/TVg96wAlss4VrUunSI2Mp0J4jJ5nJcJ2ChqHSBAU48k3FA==", "license": "MIT", "engines": { "node": ">=14.18" } }, "node_modules/@sentry/react": { - "version": "8.42.0", - "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.42.0.tgz", - "integrity": "sha512-UBi/WM4oMa+kOA99R7t7Ke57zq6uQw6mALYW4fJ+wuhHZJBLDDDHSGpEUhdWuQ1oWQv/laT34DGS44PJOjfeAg==", + "version": "8.47.0", + "resolved": "https://registry.npmjs.org/@sentry/react/-/react-8.47.0.tgz", + "integrity": "sha512-SRk2Up+qBTow4rQGiRXViC2i4M5w/tae5w8I/rmX+IxFoPyh8wXERcLAj/8xbbRm8aR+A4i5gNgfFtrYsyFJFA==", "license": "MIT", "dependencies": { - "@sentry/browser": "8.42.0", - "@sentry/core": "8.42.0", + "@sentry/browser": "8.47.0", + "@sentry/core": "8.47.0", "hoist-non-react-statics": "^3.3.2" }, "engines": { @@ -10498,13 +9931,13 @@ } }, "node_modules/@smithy/abort-controller": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.8.tgz", - "integrity": "sha512-+3DOBcUn5/rVjlxGvUPKc416SExarAQ+Qe0bqk30YSUjbepwpS7QN0cyKUSifvLJhdMZ0WPzPP5ymut0oonrpQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-3.1.9.tgz", + "integrity": "sha512-yiW0WI30zj8ZKoSYNx90no7ugVn3khlyH/z5W8qtKBtVE6awRALbhSG+2SAHA1r6bO/6M9utxYKVZ3PCJ1rWxw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10533,16 +9966,16 @@ } }, "node_modules/@smithy/config-resolver": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.12.tgz", - "integrity": "sha512-YAJP9UJFZRZ8N+UruTeq78zkdjUHmzsY62J4qKWZ4SXB4QXJ/+680EfXXgkYA2xj77ooMqtUY9m406zGNqwivQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-3.0.13.tgz", + "integrity": "sha512-Gr/qwzyPaTL1tZcq8WQyHhTZREER5R1Wytmz4WnVGL4onA3dNk6Btll55c8Vr58pLdvWZmtG8oZxJTw3t3q7Jg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "@smithy/util-config-provider": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -10550,18 +9983,18 @@ } }, "node_modules/@smithy/core": { - "version": "2.5.4", - "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.4.tgz", - "integrity": "sha512-iFh2Ymn2sCziBRLPuOOxRPkuCx/2gBdXtBGuCUFLUe6bWYjKnhHyIPqGeNkLZ5Aco/5GjebRTBFiWID3sDbrKw==", + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/@smithy/core/-/core-2.5.6.tgz", + "integrity": "sha512-w494xO+CPwG/5B/N2l0obHv2Fi9U4DAY+sTi1GWT3BVvGpZetJjJXAynIO9IHp4zS1PinGhXtRSZydUXbJO4ag==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/middleware-serde": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-body-length-browser": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-stream": "^3.3.1", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-stream": "^3.3.3", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -10570,16 +10003,16 @@ } }, "node_modules/@smithy/credential-provider-imds": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.7.tgz", - "integrity": "sha512-cEfbau+rrWF8ylkmmVAObOmjbTIzKyUC5TkBL58SbLywD0RCBC4JAUKbmtSm2w5KUJNRPGgpGFMvE2FKnuNlWQ==", + "version": "3.2.8", + "resolved": "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-3.2.8.tgz", + "integrity": "sha512-ZCY2yD0BY+K9iMXkkbnjo+08T2h8/34oHd0Jmh6BZUSZwaaGlGCyBT/3wnS7u7Xl33/EEfN4B6nQr3Gx5bYxgw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -10587,27 +10020,27 @@ } }, "node_modules/@smithy/eventstream-codec": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.9.tgz", - "integrity": "sha512-F574nX0hhlNOjBnP+noLtsPFqXnWh2L0+nZKCwcu7P7J8k+k+rdIDs+RMnrMwrzhUE4mwMgyN0cYnEn0G8yrnQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-3.1.10.tgz", + "integrity": "sha512-323B8YckSbUH0nMIpXn7HZsAVKHYHFUODa8gG9cHo0ySvA1fr5iWaNT+iIL0UCqUzG6QPHA3BSsBtRQou4mMqQ==", "dev": true, "license": "Apache-2.0", "dependencies": { "@aws-crypto/crc32": "5.2.0", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/eventstream-serde-browser": { - "version": "3.0.13", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.13.tgz", - "integrity": "sha512-Nee9m+97o9Qj6/XeLz2g2vANS2SZgAxV4rDBMKGHvFJHU/xz88x2RwCkwsvEwYjSX4BV1NG1JXmxEaDUzZTAtw==", + "version": "3.0.14", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-3.0.14.tgz", + "integrity": "sha512-kbrt0vjOIihW3V7Cqj1SXQvAI5BR8SnyQYsandva0AOR307cXAc+IhPngxIPslxTLfxwDpNu0HzCAq6g42kCPg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10615,13 +10048,13 @@ } }, "node_modules/@smithy/eventstream-serde-config-resolver": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.10.tgz", - "integrity": "sha512-K1M0x7P7qbBUKB0UWIL5KOcyi6zqV5mPJoL0/o01HPJr0CSq3A9FYuJC6e11EX6hR8QTIR++DBiGrYveOu6trw==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.0.11.tgz", + "integrity": "sha512-P2pnEp4n75O+QHjyO7cbw/vsw5l93K/8EWyjNCAAybYwUmj3M+hjSQZ9P5TVdUgEG08ueMAP5R4FkuSkElZ5tQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10629,14 +10062,14 @@ } }, "node_modules/@smithy/eventstream-serde-node": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.12.tgz", - "integrity": "sha512-kiZymxXvZ4tnuYsPSMUHe+MMfc4FTeFWJIc0Q5wygJoUQM4rVHNghvd48y7ppuulNMbuYt95ah71pYc2+o4JOA==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-3.0.13.tgz", + "integrity": "sha512-zqy/9iwbj8Wysmvi7Lq7XFLeDgjRpTbCfwBhJa8WbrylTAHiAu6oQTwdY7iu2lxigbc9YYr9vPv5SzYny5tCXQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-serde-universal": "^3.0.12", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-serde-universal": "^3.0.13", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10644,14 +10077,14 @@ } }, "node_modules/@smithy/eventstream-serde-universal": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.12.tgz", - "integrity": "sha512-1i8ifhLJrOZ+pEifTlF0EfZzMLUGQggYQ6WmZ4d5g77zEKf7oZ0kvh1yKWHPjofvOwqrkwRDVuxuYC8wVd662A==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-3.0.13.tgz", + "integrity": "sha512-L1Ib66+gg9uTnqp/18Gz4MDpJPKRE44geOjOQ2SVc0eiaO5l255ADziATZgjQjqumC7yPtp1XnjHlF1srcwjKw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/eventstream-codec": "^3.1.9", - "@smithy/types": "^3.7.1", + "@smithy/eventstream-codec": "^3.1.10", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10659,40 +10092,40 @@ } }, "node_modules/@smithy/fetch-http-handler": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.1.tgz", - "integrity": "sha512-bH7QW0+JdX0bPBadXt8GwMof/jz0H28I84hU1Uet9ISpzUqXqRQ3fEZJ+ANPOhzSEczYvANNl3uDQDYArSFDtA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-4.1.2.tgz", + "integrity": "sha512-R7rU7Ae3ItU4rC0c5mB2sP5mJNbCfoDc8I5XlYjIZnquyUwec7fEo78F6DA3SmgJgkU1qTMcZJuGblxZsl10ZA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-blob-browser": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.9.tgz", - "integrity": "sha512-wOu78omaUuW5DE+PVWXiRKWRZLecARyP3xcq5SmkXUw9+utgN8HnSnBfrjL2B/4ZxgqPjaAJQkC/+JHf1ITVaQ==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-3.1.10.tgz", + "integrity": "sha512-elwslXOoNunmfS0fh55jHggyhccobFkexLYC1ZeZ1xP2BTSrcIBaHV2b4xUQOdctrSNOpMqOZH1r2XzWTEhyfA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/chunked-blob-reader": "^4.0.0", "@smithy/chunked-blob-reader-native": "^3.0.1", - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, "node_modules/@smithy/hash-node": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.10.tgz", - "integrity": "sha512-3zWGWCHI+FlJ5WJwx73Mw2llYR8aflVyZN5JhoqLxbdPZi6UyKSdCeXAWJw9ja22m6S6Tzz1KZ+kAaSwvydi0g==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-3.0.11.tgz", + "integrity": "sha512-emP23rwYyZhQBvklqTtwetkQlqbNYirDiEEwXl2v0GYWMnCzxst7ZaRAnWuy28njp5kAH54lvkdG37MblZzaHA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -10702,13 +10135,13 @@ } }, "node_modules/@smithy/hash-stream-node": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.9.tgz", - "integrity": "sha512-3XfHBjSP3oDWxLmlxnt+F+FqXpL3WlXs+XXaB6bV9Wo8BBu87fK1dSEsyH7Z4ZHRmwZ4g9lFMdf08m9hoX1iRA==", + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-3.1.10.tgz", + "integrity": "sha512-olomK/jZQ93OMayW1zfTHwcbwBdhcZOHsyWyiZ9h9IXvc1mCD/VuvzbLb3Gy/qNJwI4MANPLctTp2BucV2oU/Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" }, @@ -10717,13 +10150,13 @@ } }, "node_modules/@smithy/invalid-dependency": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.10.tgz", - "integrity": "sha512-Lp2L65vFi+cj0vFMu2obpPW69DU+6O5g3086lmI4XcnRCG8PxvpWC7XyaVwJCxsZFzueHjXnrOH/E0pl0zikfA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-3.0.11.tgz", + "integrity": "sha512-NuQmVPEJjUX6c+UELyVz8kUx8Q539EDeNwbRyu4IIF8MeV7hUtq1FB3SHVyki2u++5XLMFqngeMKk7ccspnNyQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -10741,26 +10174,26 @@ } }, "node_modules/@smithy/md5-js": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.10.tgz", - "integrity": "sha512-m3bv6dApflt3fS2Y1PyWPUtRP7iuBlvikEOGwu0HsCZ0vE7zcIX+dBoh3e+31/rddagw8nj92j0kJg2TfV+SJA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-3.0.11.tgz", + "integrity": "sha512-3NM0L3i2Zm4bbgG6Ymi9NBcxXhryi3uE8fIfHJZIOfZVxOkGdjdgjR9A06SFIZCfnEIWKXZdm6Yq5/aPXFFhsQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" } }, "node_modules/@smithy/middleware-content-length": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.12.tgz", - "integrity": "sha512-1mDEXqzM20yywaMDuf5o9ue8OkJ373lSPbaSjyEvkWdqELhFMyNNgKGWL/rCSf4KME8B+HlHKuR8u9kRj8HzEQ==", + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-3.0.13.tgz", + "integrity": "sha512-zfMhzojhFpIX3P5ug7jxTjfUcIPcGjcQYzB9t+rv0g1TX7B0QdwONW+ATouaLoD7h7LOw/ZlXfkq4xJ/g2TrIw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10768,19 +10201,19 @@ } }, "node_modules/@smithy/middleware-endpoint": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.4.tgz", - "integrity": "sha512-TybiW2LA3kYVd3e+lWhINVu1o26KJbBwOpADnf0L4x/35vLVica77XVR5hvV9+kWeTGeSJ3IHTcYxbRxlbwhsg==", + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-3.2.7.tgz", + "integrity": "sha512-GTxSKf280aJBANGN97MomUQhW1VNxZ6w7HAj/pvZM5MUHbMPOGnWOp1PRYKi4czMaHNj9bdiA+ZarmT3Wkdqiw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-serde": "^3.0.10", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", - "@smithy/url-parser": "^3.0.10", - "@smithy/util-middleware": "^3.0.10", + "@smithy/core": "^2.5.6", + "@smithy/middleware-serde": "^3.0.11", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", + "@smithy/url-parser": "^3.0.11", + "@smithy/util-middleware": "^3.0.11", "tslib": "^2.6.2" }, "engines": { @@ -10788,19 +10221,19 @@ } }, "node_modules/@smithy/middleware-retry": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.28.tgz", - "integrity": "sha512-vK2eDfvIXG1U64FEUhYxoZ1JSj4XFbYWkK36iz02i3pFwWiDz1Q7jKhGTBCwx/7KqJNk4VS7d7cDLXFOvP7M+g==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-3.0.32.tgz", + "integrity": "sha512-v8gVA9HqibuZkFuFpfkC/EcHE8no/3Mv3JvRUGly63Axt4yyas1WDVOasFSdiqm2hZVpY7/k8mRT1Wd5k7r3Yw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/protocol-http": "^4.1.7", - "@smithy/service-error-classification": "^3.0.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", - "@smithy/util-middleware": "^3.0.10", - "@smithy/util-retry": "^3.0.10", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/protocol-http": "^4.1.8", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", + "@smithy/util-middleware": "^3.0.11", + "@smithy/util-retry": "^3.0.11", "tslib": "^2.6.2", "uuid": "^9.0.1" }, @@ -10823,13 +10256,13 @@ } }, "node_modules/@smithy/middleware-serde": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.10.tgz", - "integrity": "sha512-MnAuhh+dD14F428ubSJuRnmRsfOpxSzvRhaGVTvd/lrUDE3kxzCCmH8lnVTvoNQnV2BbJ4c15QwZ3UdQBtFNZA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-3.0.11.tgz", + "integrity": "sha512-KzPAeySp/fOoQA82TpnwItvX8BBURecpx6ZMu75EZDkAcnPtO6vf7q4aH5QHs/F1s3/snQaSFbbUMcFFZ086Mw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10837,13 +10270,13 @@ } }, "node_modules/@smithy/middleware-stack": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.10.tgz", - "integrity": "sha512-grCHyoiARDBBGPyw2BeicpjgpsDFWZZxptbVKb3CRd/ZA15F/T6rZjCCuBUjJwdck1nwUuIxYtsS4H9DDpbP5w==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-3.0.11.tgz", + "integrity": "sha512-1HGo9a6/ikgOMrTrWL/WiN9N8GSVYpuRQO5kjstAq4CvV59bjqnh7TbdXGQ4vxLD3xlSjfBjq5t1SOELePsLnA==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10851,15 +10284,15 @@ } }, "node_modules/@smithy/node-config-provider": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.11.tgz", - "integrity": "sha512-URq3gT3RpDikh/8MBJUB+QGZzfS7Bm6TQTqoh4CqE8NBuyPkWa5eUXj0XFcFfeZVgg3WMh1u19iaXn8FvvXxZw==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-3.1.12.tgz", + "integrity": "sha512-O9LVEu5J/u/FuNlZs+L7Ikn3lz7VB9hb0GtPT9MQeiBmtK8RSY3ULmsZgXhe6VAlgTw0YO+paQx4p8xdbs43vQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/shared-ini-file-loader": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/shared-ini-file-loader": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10867,16 +10300,16 @@ } }, "node_modules/@smithy/node-http-handler": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.1.tgz", - "integrity": "sha512-fr+UAOMGWh6bn4YSEezBCpJn9Ukp9oR4D32sCjCo7U81evE11YePOQ58ogzyfgmjIO79YeOdfXXqr0jyhPQeMg==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-3.3.3.tgz", + "integrity": "sha512-BrpZOaZ4RCbcJ2igiSNG16S+kgAc65l/2hmxWdmhyoGWHTLlzQzr06PXavJp9OBlPEG/sHlqdxjWmjzV66+BSQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/protocol-http": "^4.1.7", - "@smithy/querystring-builder": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/protocol-http": "^4.1.8", + "@smithy/querystring-builder": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10884,13 +10317,13 @@ } }, "node_modules/@smithy/property-provider": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.10.tgz", - "integrity": "sha512-n1MJZGTorTH2DvyTVj+3wXnd4CzjJxyXeOgnTlgNVFxaaMeT4OteEp4QrzF8p9ee2yg42nvyVK6R/awLCakjeQ==", + "version": "3.1.11", + "resolved": "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-3.1.11.tgz", + "integrity": "sha512-I/+TMc4XTQ3QAjXfOcUWbSS073oOEAxgx4aZy8jHaf8JQnRkq2SZWw8+PfDtBvLUjcGMdxl+YwtzWe6i5uhL/A==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10898,13 +10331,13 @@ } }, "node_modules/@smithy/protocol-http": { - "version": "4.1.7", - "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.7.tgz", - "integrity": "sha512-FP2LepWD0eJeOTm0SjssPcgqAlDFzOmRXqXmGhfIM52G7Lrox/pcpQf6RP4F21k0+O12zaqQt5fCDOeBtqY6Cg==", + "version": "4.1.8", + "resolved": "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-4.1.8.tgz", + "integrity": "sha512-hmgIAVyxw1LySOwkgMIUN0kjN8TG9Nc85LJeEmEE/cNEe2rkHDUWhnJf2gxcSRFLWsyqWsrZGw40ROjUogg+Iw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10912,13 +10345,13 @@ } }, "node_modules/@smithy/querystring-builder": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.10.tgz", - "integrity": "sha512-nT9CQF3EIJtIUepXQuBFb8dxJi3WVZS3XfuDksxSCSn+/CzZowRLdhDn+2acbBv8R6eaJqPupoI/aRFIImNVPQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-3.0.11.tgz", + "integrity": "sha512-u+5HV/9uJaeLj5XTb6+IEF/dokWWkEqJ0XiaRRogyREmKGUgZnNecLucADLdauWFKUNbQfulHFEZEdjwEBjXRg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "@smithy/util-uri-escape": "^3.0.0", "tslib": "^2.6.2" }, @@ -10927,13 +10360,13 @@ } }, "node_modules/@smithy/querystring-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.10.tgz", - "integrity": "sha512-Oa0XDcpo9SmjhiDD9ua2UyM3uU01ZTuIrNdZvzwUTykW1PM8o2yJvMh1Do1rY5sUQg4NDV70dMi0JhDx4GyxuQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-3.0.11.tgz", + "integrity": "sha512-Je3kFvCsFMnso1ilPwA7GtlbPaTixa3WwC+K21kmMZHsBEOZYQaqxcMqeFFoU7/slFjKDIpiiPydvdJm8Q/MCw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10941,26 +10374,26 @@ } }, "node_modules/@smithy/service-error-classification": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.10.tgz", - "integrity": "sha512-zHe642KCqDxXLuhs6xmHVgRwy078RfqxP2wRDpIyiF8EmsWXptMwnMwbVa50lw+WOGNrYm9zbaEg0oDe3PTtvQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-3.0.11.tgz", + "integrity": "sha512-QnYDPkyewrJzCyaeI2Rmp7pDwbUETe+hU8ADkXmgNusO1bgHBH7ovXJiYmba8t0fNfJx75fE8dlM6SEmZxheog==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1" + "@smithy/types": "^3.7.2" }, "engines": { "node": ">=16.0.0" } }, "node_modules/@smithy/shared-ini-file-loader": { - "version": "3.1.11", - "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.11.tgz", - "integrity": "sha512-AUdrIZHFtUgmfSN4Gq9nHu3IkHMa1YDcN+s061Nfm+6pQ0mJy85YQDB0tZBCmls0Vuj22pLwDPmL92+Hvfwwlg==", + "version": "3.1.12", + "resolved": "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-3.1.12.tgz", + "integrity": "sha512-1xKSGI+U9KKdbG2qDvIR9dGrw3CNx+baqJfyr0igKEpjbHL5stsqAesYBzHChYHlelWtb87VnLWlhvfCz13H8Q==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -10968,17 +10401,17 @@ } }, "node_modules/@smithy/signature-v4": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.3.tgz", - "integrity": "sha512-pPSQQ2v2vu9vc8iew7sszLd0O09I5TRc5zhY71KA+Ao0xYazIG+uLeHbTJfIWGO3BGVLiXjUr3EEeCcEQLjpWQ==", + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-4.2.4.tgz", + "integrity": "sha512-5JWeMQYg81TgU4cG+OexAWdvDTs5JDdbEZx+Qr1iPbvo91QFGzjy0IkXAKaXUHqmKUJgSHK0ZxnCkgZpzkeNTA==", "dev": true, "license": "Apache-2.0", "dependencies": { "@smithy/is-array-buffer": "^3.0.0", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", "@smithy/util-hex-encoding": "^3.0.0", - "@smithy/util-middleware": "^3.0.10", + "@smithy/util-middleware": "^3.0.11", "@smithy/util-uri-escape": "^3.0.0", "@smithy/util-utf8": "^3.0.0", "tslib": "^2.6.2" @@ -10988,18 +10421,18 @@ } }, "node_modules/@smithy/smithy-client": { - "version": "3.4.5", - "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.4.5.tgz", - "integrity": "sha512-k0sybYT9zlP79sIKd1XGm4TmK0AS1nA2bzDHXx7m0nGi3RQ8dxxQUs4CPkSmQTKAo+KF9aINU3KzpGIpV7UoMw==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-3.5.2.tgz", + "integrity": "sha512-h7xn+1wlpbXyLrtvo/teHR1SFGIIrQ3imzG0nz43zVLAJgvfC1Mtdwa1pFhoIOYrt/TiNjt4pD0gSYQEdZSBtg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/core": "^2.5.4", - "@smithy/middleware-endpoint": "^3.2.4", - "@smithy/middleware-stack": "^3.0.10", - "@smithy/protocol-http": "^4.1.7", - "@smithy/types": "^3.7.1", - "@smithy/util-stream": "^3.3.1", + "@smithy/core": "^2.5.6", + "@smithy/middleware-endpoint": "^3.2.7", + "@smithy/middleware-stack": "^3.0.11", + "@smithy/protocol-http": "^4.1.8", + "@smithy/types": "^3.7.2", + "@smithy/util-stream": "^3.3.3", "tslib": "^2.6.2" }, "engines": { @@ -11007,9 +10440,9 @@ } }, "node_modules/@smithy/types": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.1.tgz", - "integrity": "sha512-XKLcLXZY7sUQgvvWyeaL/qwNPp6V3dWcUjqrQKjSb+tzYiCy340R/c64LV5j+Tnb2GhmunEX0eou+L+m2hJNYA==", + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/@smithy/types/-/types-3.7.2.tgz", + "integrity": "sha512-bNwBYYmN8Eh9RyjS1p2gW6MIhSO2rl7X9QeLM8iTdcGRP+eDiIWDt66c9IysCc22gefKszZv+ubV9qZc7hdESg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -11020,14 +10453,14 @@ } }, "node_modules/@smithy/url-parser": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.10.tgz", - "integrity": "sha512-j90NUalTSBR2NaZTuruEgavSdh8MLirf58LoGSk4AtQfyIymogIhgnGUU2Mga2bkMkpSoC9gxb74xBXL5afKAQ==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-3.0.11.tgz", + "integrity": "sha512-TmlqXkSk8ZPhfc+SQutjmFr5FjC0av3GZP4B/10caK1SbRwe/v+Wzu/R6xEKxoNqL+8nY18s1byiy6HqPG37Aw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/querystring-parser": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/querystring-parser": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" } }, @@ -11097,15 +10530,15 @@ } }, "node_modules/@smithy/util-defaults-mode-browser": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.28.tgz", - "integrity": "sha512-6bzwAbZpHRFVJsOztmov5PGDmJYsbNSoIEfHSJJyFLzfBGCCChiO3od9k7E/TLgrCsIifdAbB9nqbVbyE7wRUw==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-3.0.32.tgz", + "integrity": "sha512-FAGsnm/xJ19SZeoqGyo9CosqjUlm+XJTmygDMktebvDKw3bKiIiZ40O1MA6Z52KLmekYU2GO7BEK7u6e7ZORKw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", "bowser": "^2.11.0", "tslib": "^2.6.2" }, @@ -11114,18 +10547,18 @@ } }, "node_modules/@smithy/util-defaults-mode-node": { - "version": "3.0.28", - "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.28.tgz", - "integrity": "sha512-78ENJDorV1CjOQselGmm3+z7Yqjj5HWCbjzh0Ixuq736dh1oEnD9sAttSBNSLlpZsX8VQnmERqA2fEFlmqWn8w==", + "version": "3.0.32", + "resolved": "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-3.0.32.tgz", + "integrity": "sha512-2CzKhkPFCVdd15f3+0D1rldNlvJME8pVRBtVVsea2hy7lcOn0bGB0dTVUwzgfM4LW/aU4IOg3jWf25ZWaxbOiw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/config-resolver": "^3.0.12", - "@smithy/credential-provider-imds": "^3.2.7", - "@smithy/node-config-provider": "^3.1.11", - "@smithy/property-provider": "^3.1.10", - "@smithy/smithy-client": "^3.4.5", - "@smithy/types": "^3.7.1", + "@smithy/config-resolver": "^3.0.13", + "@smithy/credential-provider-imds": "^3.2.8", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/property-provider": "^3.1.11", + "@smithy/smithy-client": "^3.5.2", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11133,14 +10566,14 @@ } }, "node_modules/@smithy/util-endpoints": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.6.tgz", - "integrity": "sha512-mFV1t3ndBh0yZOJgWxO9J/4cHZVn5UG1D8DeCc6/echfNkeEJWu9LD7mgGH5fHrEdR7LDoWw7PQO6QiGpHXhgA==", + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-2.1.7.tgz", + "integrity": "sha512-tSfcqKcN/Oo2STEYCABVuKgJ76nyyr6skGl9t15hs+YaiU06sgMkN7QYjo0BbVw+KT26zok3IzbdSOksQ4YzVw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/node-config-provider": "^3.1.11", - "@smithy/types": "^3.7.1", + "@smithy/node-config-provider": "^3.1.12", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11161,13 +10594,13 @@ } }, "node_modules/@smithy/util-middleware": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.10.tgz", - "integrity": "sha512-eJO+/+RsrG2RpmY68jZdwQtnfsxjmPxzMlQpnHKjFPwrYqvlcT+fHdT+ZVwcjlWSrByOhGr9Ff2GG17efc192A==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-3.0.11.tgz", + "integrity": "sha512-dWpyc1e1R6VoXrwLoLDd57U1z6CwNSdkM69Ie4+6uYh2GC7Vg51Qtan7ITzczuVpqezdDTKJGJB95fFvvjU/ow==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/types": "^3.7.1", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11175,14 +10608,14 @@ } }, "node_modules/@smithy/util-retry": { - "version": "3.0.10", - "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.10.tgz", - "integrity": "sha512-1l4qatFp4PiU6j7UsbasUHL2VU023NRB/gfaa1M0rDqVrRN4g3mCArLRyH3OuktApA4ye+yjWQHjdziunw2eWA==", + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-3.0.11.tgz", + "integrity": "sha512-hJUC6W7A3DQgaee3Hp9ZFcOxVDZzmBIRBPlUAk8/fSOEl7pE/aX7Dci0JycNOnm9Mfr0KV2XjIlUOcGWXQUdVQ==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/service-error-classification": "^3.0.10", - "@smithy/types": "^3.7.1", + "@smithy/service-error-classification": "^3.0.11", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11190,15 +10623,15 @@ } }, "node_modules/@smithy/util-stream": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.1.tgz", - "integrity": "sha512-Ff68R5lJh2zj+AUTvbAU/4yx+6QPRzg7+pI7M1FbtQHcRIp7xvguxVsQBKyB3fwiOwhAKu0lnNyYBaQfSW6TNw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-3.3.3.tgz", + "integrity": "sha512-bOm0YMMxRjbI3X6QkWwADPFkh2AH2xBMQIB1IQgCsCRqXXpSJatgjUR3oxHthpYwFkw3WPkOt8VgMpJxC0rFqg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/fetch-http-handler": "^4.1.1", - "@smithy/node-http-handler": "^3.3.1", - "@smithy/types": "^3.7.1", + "@smithy/fetch-http-handler": "^4.1.2", + "@smithy/node-http-handler": "^3.3.3", + "@smithy/types": "^3.7.2", "@smithy/util-base64": "^3.0.0", "@smithy/util-buffer-from": "^3.0.0", "@smithy/util-hex-encoding": "^3.0.0", @@ -11237,14 +10670,14 @@ } }, "node_modules/@smithy/util-waiter": { - "version": "3.1.9", - "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.1.9.tgz", - "integrity": "sha512-/aMXPANhMOlMPjfPtSrDfPeVP8l56SJlz93xeiLmhLe5xvlXA5T3abZ2ilEsDEPeY9T/wnN/vNGn9wa1SbufWA==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-3.2.0.tgz", + "integrity": "sha512-PpjSboaDUE6yl+1qlg3Si57++e84oXdWGbuFUSAciXsVfEZJJJupR2Nb0QuXHiunt2vGR+1PTizOMvnUPaG2Qg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@smithy/abort-controller": "^3.1.8", - "@smithy/types": "^3.7.1", + "@smithy/abort-controller": "^3.1.9", + "@smithy/types": "^3.7.2", "tslib": "^2.6.2" }, "engines": { @@ -11422,18 +10855,18 @@ } }, "node_modules/@supabase/auth-js": { - "version": "2.66.1", - "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.66.1.tgz", - "integrity": "sha512-kOW+04SuDXmP2jRX9JL1Rgzduj8BcOG1qC3RaWdZsxnv89svNCdLRv8PfXW3QPKJdw0k1jF30OlQDPkzbDEL9w==", + "version": "2.67.3", + "resolved": "https://registry.npmjs.org/@supabase/auth-js/-/auth-js-2.67.3.tgz", + "integrity": "sha512-NJDaW8yXs49xMvWVOkSIr8j46jf+tYHV0wHhrwOaLLMZSFO4g6kKAf+MfzQ2RaD06OCUkUHIzctLAxjTgEVpzw==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/functions-js": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.3.tgz", - "integrity": "sha512-sOLXy+mWRyu4LLv1onYydq+10mNRQ4rzqQxNhbrKLTLTcdcmS9hbWif0bGz/NavmiQfPs4ZcmQJp4WqOXlR4AQ==", + "version": "2.4.4", + "resolved": "https://registry.npmjs.org/@supabase/functions-js/-/functions-js-2.4.4.tgz", + "integrity": "sha512-WL2p6r4AXNGwop7iwvul2BvOtuJ1YQy8EbOd0dhG1oN1q8el/BIRSFCFnWAMM/vJJlHWLi4ad22sKbKr9mvjoA==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" @@ -11452,18 +10885,18 @@ } }, "node_modules/@supabase/postgrest-js": { - "version": "1.16.3", - "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.16.3.tgz", - "integrity": "sha512-HI6dsbW68AKlOPofUjDTaosiDBCtW4XAm0D18pPwxoW3zKOE2Ru13Z69Wuys9fd6iTpfDViNco5sgrtnP0666A==", + "version": "1.17.7", + "resolved": "https://registry.npmjs.org/@supabase/postgrest-js/-/postgrest-js-1.17.7.tgz", + "integrity": "sha512-aOzOYaTADm/dVTNksyqv9KsbhVa1gHz1Hoxb2ZEF2Ed9H7qlWOfptECQWmkEmrrFjtNaiPrgiSaPECvzI/seDA==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14" } }, "node_modules/@supabase/realtime-js": { - "version": "2.10.9", - "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.10.9.tgz", - "integrity": "sha512-0AjN65VDNIScZzrrPaVvlND4vbgVS+j9Wcy3zf7e+l9JY4IwCTahFenPLcKy9bkr7KY0wfB7MkipZPKxMaDnjw==", + "version": "2.11.2", + "resolved": "https://registry.npmjs.org/@supabase/realtime-js/-/realtime-js-2.11.2.tgz", + "integrity": "sha512-u/XeuL2Y0QEhXSoIPZZwR6wMXgB+RQbJzG9VErA3VghVt7uRfSVsjeqd7m5GhX3JR6dM/WRmLbVR8URpDWG4+w==", "license": "MIT", "dependencies": { "@supabase/node-fetch": "^2.6.14", @@ -11503,16 +10936,16 @@ } }, "node_modules/@supabase/supabase-js": { - "version": "2.47.2", - "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.2.tgz", - "integrity": "sha512-BdP5hY29eCROJRV61WCM+OzcTSjaSzZe0H+2l88tOwmTG+1XqCiVYtZnUNIh12V8g5gdmQL5urp1pSYARbl38A==", + "version": "2.47.10", + "resolved": "https://registry.npmjs.org/@supabase/supabase-js/-/supabase-js-2.47.10.tgz", + "integrity": "sha512-vJfPF820Ho5WILYHfKiBykDQ1SB9odTHrRZ0JxHfuLMC8GRvv21YLkUZQK7/rSVCkLvD6/ZwMWaOAfdUd//guw==", "license": "MIT", "dependencies": { - "@supabase/auth-js": "2.66.1", - "@supabase/functions-js": "2.4.3", + "@supabase/auth-js": "2.67.3", + "@supabase/functions-js": "2.4.4", "@supabase/node-fetch": "2.6.15", - "@supabase/postgrest-js": "1.16.3", - "@supabase/realtime-js": "2.10.9", + "@supabase/postgrest-js": "1.17.7", + "@supabase/realtime-js": "2.11.2", "@supabase/storage-js": "2.7.1" } }, @@ -11573,9 +11006,9 @@ } }, "node_modules/@tabler/icons": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.24.0.tgz", - "integrity": "sha512-qNis9e90QcdxAGV3wNIeX0Ba2R7ktm0cnqOToKHJfC2kj3fvJwEVLsw63K0/fm7NW8rSZjDSTQRmMnSg8g/wrg==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@tabler/icons/-/icons-3.26.0.tgz", + "integrity": "sha512-oO3D4ss+DxzxqU1aDy0f1HmToyrO0gcQWIMpzHAfV1quPUx0BZYvNm5xz1DQb4DxNm/+xNvbBGLJy4pzTLYWag==", "license": "MIT", "funding": { "type": "github", @@ -11583,12 +11016,12 @@ } }, "node_modules/@tabler/icons-react": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.24.0.tgz", - "integrity": "sha512-m9c7TmlcDmKqvZAasG5rv1YvazZDrVEhNdNFa2d1Bzotc0dh+iceFdiZCEcYPDb5UcRyLAMvOaOC9y/5sfMMWw==", + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/@tabler/icons-react/-/icons-react-3.26.0.tgz", + "integrity": "sha512-t18Zmu1ROktB7M8hWQ6vJw+mNpI/LPk5PPxLuE+kNB+4Zzf38GfETL8VF98inhzcfHohsggdROzMzwSAfjcAxw==", "license": "MIT", "dependencies": { - "@tabler/icons": "3.24.0" + "@tabler/icons": "3.26.0" }, "funding": { "type": "github", @@ -11599,9 +11032,9 @@ } }, "node_modules/@tanstack/query-core": { - "version": "5.62.2", - "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.2.tgz", - "integrity": "sha512-LcwVcC5qpsDpHcqlXUUL5o9SaOBwhNkGeV+B06s0GBoyBr8FqXPuXT29XzYXR36lchhnerp6XO+CWc84/vh7Zg==", + "version": "5.62.9", + "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-5.62.9.tgz", + "integrity": "sha512-lwePd8hNYhyQ4nM/iRQ+Wz2cDtspGeZZHFZmCzHJ7mfKXt+9S301fULiY2IR2byJYY6Z03T427E5PoVfMexHjw==", "license": "MIT", "funding": { "type": "github", @@ -11609,12 +11042,12 @@ } }, "node_modules/@tanstack/react-query": { - "version": "5.62.2", - "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.2.tgz", - "integrity": "sha512-fkTpKKfwTJtVPKVR+ag7YqFgG/7TRVVPzduPAUF9zRCiiA8Wu305u+KJl8rCrh98Qce77vzIakvtUyzWLtaPGA==", + "version": "5.62.11", + "resolved": "https://registry.npmjs.org/@tanstack/react-query/-/react-query-5.62.11.tgz", + "integrity": "sha512-Xb1nw0cYMdtFmwkvH9+y5yYFhXvLRCnXoqlzSw7UkqtCVFq3cG8q+rHZ2Yz1XrC+/ysUaTqbLKJqk95mCgC1oQ==", "license": "MIT", "dependencies": { - "@tanstack/query-core": "5.62.2" + "@tanstack/query-core": "5.62.9" }, "funding": { "type": "github", @@ -11625,26 +11058,26 @@ } }, "node_modules/@tanstack/react-virtual": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.10.9.tgz", - "integrity": "sha512-OXO2uBjFqA4Ibr2O3y0YMnkrRWGVNqcvHQXmGvMu6IK8chZl3PrDxFXdGZ2iZkSrKh3/qUYoFqYe+Rx23RoU0g==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/react-virtual/-/react-virtual-3.11.2.tgz", + "integrity": "sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==", "license": "MIT", "dependencies": { - "@tanstack/virtual-core": "3.10.9" + "@tanstack/virtual-core": "3.11.2" }, "funding": { "type": "github", "url": "https://github.com/sponsors/tannerlinsley" }, "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/@tanstack/virtual-core": { - "version": "3.10.9", - "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.10.9.tgz", - "integrity": "sha512-kBknKOKzmeR7lN+vSadaKWXaLS0SZZG+oqpQ/k80Q6g9REn6zRHS/ZYdrIzHnpHgy/eWs00SujveUN/GJT2qTw==", + "version": "3.11.2", + "resolved": "https://registry.npmjs.org/@tanstack/virtual-core/-/virtual-core-3.11.2.tgz", + "integrity": "sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==", "license": "MIT", "funding": { "type": "github", @@ -12518,9 +11951,9 @@ "license": "MIT" }, "node_modules/@types/geojson": { - "version": "7946.0.14", - "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.14.tgz", - "integrity": "sha512-WCfD5Ht3ZesJUsONdhvm84dmzWOiOzOAqOncN0++w0lBw1o8OuDNJF2McvvCef/yBqb/HYRahp1BYtODFQ8bRg==", + "version": "7946.0.15", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.15.tgz", + "integrity": "sha512-9oSxFzDCT2Rj6DfcHF8G++jxBKS7mBqXl5xrRW+Kbvjry6Uduya2iiwqHPhVXpasAVMBYKkEPGgKhd3+/HZ6xA==", "dev": true, "license": "MIT" }, @@ -12560,17 +11993,9 @@ "version": "4.17.13", "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.13.tgz", "integrity": "sha512-lfx+dftrEZcdBPczf9d0Qv0x+j/rfNCMuC6OcfXmO8gkfeNAY88PgKUbvG56whcN23gc27yenwF6oJZXGFpYxg==", + "dev": true, "license": "MIT" }, - "node_modules/@types/lodash-es": { - "version": "4.17.12", - "resolved": "https://registry.npmjs.org/@types/lodash-es/-/lodash-es-4.17.12.tgz", - "integrity": "sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==", - "license": "MIT", - "dependencies": { - "@types/lodash": "*" - } - }, "node_modules/@types/long": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", @@ -12619,9 +12044,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "20.17.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.9.tgz", - "integrity": "sha512-0JOXkRyLanfGPE2QRCwgxhzlBAvaRdCNMcvbd7jFfpmD4eEXll7LRwy5ymJmyeZqk7Nh7eD2LeUyQ68BbndmXw==", + "version": "20.17.10", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.10.tgz", + "integrity": "sha512-/jrvh5h6NXhEauFFexRin69nA0uHJ5gwk4iDivp/DeoEua3uwCUto6PC86IpRITBOs4+6i2I56K5x5b6WYGXHA==", "license": "MIT", "dependencies": { "undici-types": "~6.19.2" @@ -12691,9 +12116,9 @@ } }, "node_modules/@types/react": { - "version": "18.3.14", - "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.14.tgz", - "integrity": "sha512-NzahNKvjNhVjuPBQ+2G7WlxstQ+47kXZNHlUvFakDViuIEfGY926GqhMueQFZ7woG+sPiQKlF36XfrIUVSUfFg==", + "version": "18.3.18", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz", + "integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==", "license": "MIT", "dependencies": { "@types/prop-types": "*", @@ -12701,13 +12126,13 @@ } }, "node_modules/@types/react-dom": { - "version": "18.3.2", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.2.tgz", - "integrity": "sha512-Fqp+rcvem9wEnGr3RY8dYNvSQ8PoLqjZ9HLgaPUOjJJD120uDyOxOjc/39M4Kddp9JQCxpGQbnhVQF0C0ncYVg==", + "version": "18.3.5", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.3.5.tgz", + "integrity": "sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==", "dev": true, "license": "MIT", - "dependencies": { - "@types/react": "^18" + "peerDependencies": { + "@types/react": "^18.0.0" } }, "node_modules/@types/react-lazy-load-image-component": { @@ -12732,11 +12157,11 @@ } }, "node_modules/@types/react-transition-group": { - "version": "4.4.11", - "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.11.tgz", - "integrity": "sha512-RM05tAniPZ5DZPzzNFP+DmrcOdD0efDUxMy3145oljWSl3x9ZV5vhme98gTxFrj2lhXvmGNnUiuDyJgY9IKkNA==", + "version": "4.4.12", + "resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.12.tgz", + "integrity": "sha512-8TV6R3h2j7a91c+1DXdJi3Syo69zzIZbz7Lg5tORM5LEJG7X/E6a1V3drRyBRZq7/utz7A+c4OgYLiLcYGHG6w==", "license": "MIT", - "dependencies": { + "peerDependencies": { "@types/react": "*" } }, @@ -12830,9 +12255,9 @@ "license": "MIT" }, "node_modules/@types/use-sync-external-store": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.3.tgz", - "integrity": "sha512-EwmlvuaxPNej9+T4v5AuBPJa2x2UOJVdjCtDHgcDqitUeOtjnJKJ+apYjVcAoBEMjKW1VVFGZLUb5+qqa09XFA==", + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@types/use-sync-external-store/-/use-sync-external-store-0.0.6.tgz", + "integrity": "sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==", "license": "MIT" }, "node_modules/@types/ws": { @@ -13244,9 +12669,9 @@ } }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.1.tgz", + "integrity": "sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==", "dev": true, "license": "ISC" }, @@ -13312,24 +12737,24 @@ } }, "node_modules/@walletconnect/core": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.2.tgz", - "integrity": "sha512-O9VUsFg78CbvIaxfQuZMsHcJ4a2Z16DRz/O4S+uOAcGKhH/i/ln8hp864Tb+xRvifWSzaZ6CeAVxk657F+pscA==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/core/-/core-2.17.3.tgz", + "integrity": "sha512-57uv0FW4L6H/tmkb1kS2nG41MDguyDgZbGR58nkDUd1TO/HydyiTByVOhFzIxgN331cnY/1G1rMaKqncgdnOFA==", "license": "Apache-2.0", "dependencies": { "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-provider": "1.0.14", "@walletconnect/jsonrpc-types": "1.0.4", "@walletconnect/jsonrpc-utils": "1.0.8", - "@walletconnect/jsonrpc-ws-connection": "1.0.14", + "@walletconnect/jsonrpc-ws-connection": "1.0.16", "@walletconnect/keyvaluestorage": "1.1.1", "@walletconnect/logger": "2.1.2", "@walletconnect/relay-api": "1.0.11", "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", - "@walletconnect/utils": "2.17.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", "@walletconnect/window-getters": "1.0.1", "events": "3.3.0", "lodash.isequal": "4.5.0", @@ -13543,9 +12968,9 @@ "license": "0BSD" }, "node_modules/@walletconnect/jsonrpc-ws-connection": { - "version": "1.0.14", - "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", - "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.16.tgz", + "integrity": "sha512-G81JmsMqh5nJheE1mPst1W0WfVv0SG3N7JggwLLGnI7iuDZJq8cRJvQwLGKHn5H1WTW7DEPCo00zz5w62AbL3Q==", "license": "MIT", "dependencies": { "@walletconnect/jsonrpc-utils": "^1.0.6", @@ -13904,6 +13329,18 @@ "tslib": "1.14.1" } }, + "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, "node_modules/@walletconnect/sign-client/node_modules/@walletconnect/types": { "version": "2.12.2", "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.12.2.tgz", @@ -13961,6 +13398,27 @@ "multiformats": "^9.4.2" } }, + "node_modules/@walletconnect/sign-client/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@walletconnect/time/-/time-1.0.2.tgz", @@ -13977,9 +13435,9 @@ "license": "0BSD" }, "node_modules/@walletconnect/types": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.2.tgz", - "integrity": "sha512-j/+0WuO00lR8ntu7b1+MKe/r59hNwYLFzW0tTmozzhfAlDL+dYwWasDBNq4AH8NbVd7vlPCQWmncH7/6FVtOfQ==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/types/-/types-2.17.3.tgz", + "integrity": "sha512-5eFxnbZGJJx0IQyCS99qz+OvozpLJJYfVG96dEHGgbzZMd+C9V1eitYqVClx26uX6V+WQVqVwjpD2Dyzie++Wg==", "license": "Apache-2.0", "dependencies": { "@walletconnect/events": "1.0.1", @@ -14097,9 +13555,9 @@ } }, "node_modules/@walletconnect/utils": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.2.tgz", - "integrity": "sha512-T7eLRiuw96fgwUy2A5NZB5Eu87ukX8RCVoO9lji34RFV4o2IGU9FhTEWyd4QQKI8OuQRjSknhbJs0tU0r0faPw==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/utils/-/utils-2.17.3.tgz", + "integrity": "sha512-tG77UpZNeLYgeOwViwWnifpyBatkPlpKSSayhN0gcjY1lZAUNqtYslpm4AdTxlrA3pL61MnyybXgWYT5eZjarw==", "license": "Apache-2.0", "dependencies": { "@ethersproject/hash": "5.7.0", @@ -14115,11 +13573,11 @@ "@walletconnect/relay-auth": "1.0.4", "@walletconnect/safe-json": "1.0.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", + "@walletconnect/types": "2.17.3", "@walletconnect/window-getters": "1.0.1", "@walletconnect/window-metadata": "1.0.1", "detect-browser": "5.3.0", - "elliptic": "6.6.0", + "elliptic": "6.6.1", "query-string": "7.1.3", "uint8arrays": "3.1.0" } @@ -14131,9 +13589,9 @@ "license": "MIT" }, "node_modules/@walletconnect/utils/node_modules/elliptic": { - "version": "6.6.0", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.0.tgz", - "integrity": "sha512-dpwoQcLc/2WLQvJvLRHKZ+f9FgOdjnq11rurqwekGQygGPsYSK29OMMD2WalatiqQ+XGFDglTNixpPfI+lpaAA==", + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz", + "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==", "license": "MIT", "dependencies": { "bn.js": "^4.11.9", @@ -14204,6 +13662,18 @@ "node": ">=18" } }, + "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/jsonrpc-ws-connection": { + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@walletconnect/jsonrpc-ws-connection/-/jsonrpc-ws-connection-1.0.14.tgz", + "integrity": "sha512-Jsl6fC55AYcbkNVkwNM6Jo+ufsuCQRqViOQ8ZBPH9pRREHH9welbBiszuTLqEJiQcO/6XfFDl6bzCJIkrEi8XA==", + "license": "MIT", + "dependencies": { + "@walletconnect/jsonrpc-utils": "^1.0.6", + "@walletconnect/safe-json": "^1.0.2", + "events": "^3.3.0", + "ws": "^7.5.1" + } + }, "node_modules/@walletconnect/web3wallet/node_modules/@walletconnect/sign-client": { "version": "2.17.1", "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.1.tgz", @@ -14299,6 +13769,27 @@ "multiformats": "^9.4.2" } }, + "node_modules/@walletconnect/web3wallet/node_modules/ws": { + "version": "7.5.10", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", + "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", + "license": "MIT", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/@walletconnect/window-getters": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@walletconnect/window-getters/-/window-getters-1.0.1.tgz", @@ -14355,13 +13846,13 @@ } }, "node_modules/@web3auth/auth": { - "version": "9.5.3", - "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.5.3.tgz", - "integrity": "sha512-774DFBzuq/mO9y5Zf0ICdK9pZ/YgYgnRVo3CYiayuknA4/wTxosK+xvhlcP6fGRKVgoaYa6bP+gBGmqoFCGUzQ==", + "version": "9.6.3", + "resolved": "https://registry.npmjs.org/@web3auth/auth/-/auth-9.6.3.tgz", + "integrity": "sha512-OqwEneMSEl0w40sJqWcKMm3gh9cBzS1oz7BqKYWXcb6xvPn8xq8RUMYVTl+yEno/9ePoT05rj6JTfWWtpte3Bg==", "license": "MIT", "dependencies": { "@ethereumjs/util": "^9.1.0", - "@toruslabs/constants": "^14.1.1", + "@toruslabs/constants": "^14.2.0", "@toruslabs/ffjavascript": "^4.0.0", "@toruslabs/metadata-helpers": "^6.0.0", "@toruslabs/secure-pub-sub": "^1.1.0", @@ -14390,22 +13881,22 @@ "npm": ">=9.x" }, "optionalDependencies": { - "@nx/nx-linux-x64-gnu": "^20.1.2", - "@rollup/rollup-linux-x64-gnu": "^4.27.3" + "@nx/nx-linux-x64-gnu": "^20.2.2", + "@rollup/rollup-linux-x64-gnu": "^4.28.1" }, "peerDependencies": { "@babel/runtime": "7.x" } }, "node_modules/@web3auth/auth-adapter": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/auth-adapter/-/auth-adapter-9.4.5.tgz", - "integrity": "sha512-Q9/GnW8DOCYS1rnVL84V4CHYxdxiryHU5+RnmldPzHUlhDl+L41zjFYoH3mm+U7WNnJCfiLKgcEnPurMz10i+w==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/auth-adapter/-/auth-adapter-9.5.1.tgz", + "integrity": "sha512-Pxda3WeG3EkG8p7N9hJ++fU501ejI1+/W3nb82RDsn5n+QNvc2mrHDol3TaDHtZV0yHv2CL3DJS5+H7N2oxOQg==", "license": "ISC", "dependencies": { - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", - "@web3auth/base-provider": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", + "@web3auth/base-provider": "^9.5.1", "deepmerge": "^4.3.1" }, "engines": { @@ -14416,6 +13907,61 @@ "@babel/runtime": "^7.x" } }, + "node_modules/@web3auth/auth-adapter/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/auth-adapter/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/auth-adapter/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/base": { "version": "9.4.5", "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.4.5.tgz", @@ -14439,14 +13985,14 @@ } }, "node_modules/@web3auth/base-provider": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.4.5.tgz", - "integrity": "sha512-Q+1HnG0bQFOHNhiw0BnuRLKpOh3O/iicl1kp4K8TtUOQC/4JTsY0odehQ1phBOr1IxROTjmDl/QW3coST3CSVA==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base-provider/-/base-provider-9.5.1.tgz", + "integrity": "sha512-Xk9oopf2HqLF/hYF8tNfF56SGxwIOIPA1RfR4c9rPXkHHuYEB0DZau55rgjQ8j/ipk+KNYGT0BL8oLF491Kddw==", "license": "ISC", "dependencies": { - "@toruslabs/base-controllers": "^6.3.2", - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", + "@toruslabs/base-controllers": "^7.0.1", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", "json-rpc-random-id": "^1.0.1" }, "engines": { @@ -14457,6 +14003,61 @@ "@babel/runtime": "7.x" } }, + "node_modules/@web3auth/base-provider/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/base-provider/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/base-provider/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/base/node_modules/jwt-decode": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", @@ -14539,14 +14140,14 @@ } }, "node_modules/@web3auth/no-modal": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/no-modal/-/no-modal-9.4.5.tgz", - "integrity": "sha512-ct6tyE4d1fkTawHKIC0Gf2sOkaYSoRUKtf6nJQO3Brf53PE4DqnkvS42fcEV6ZCb9MPBTzhB0cw0ds7jAOGPxQ==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/no-modal/-/no-modal-9.5.1.tgz", + "integrity": "sha512-4sFaENdGNlcJj+d3PgqDRg41PhId2lM7FyneF+tElUUGHAkXib0cVaRgk1i/8AP9LrdZkxedmm7LJo+iqhM9Cw==", "license": "ISC", "dependencies": { - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", - "@web3auth/base-provider": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", + "@web3auth/base-provider": "^9.5.1", "deepmerge": "^4.3.1" }, "engines": { @@ -14567,21 +14168,76 @@ } } }, + "node_modules/@web3auth/no-modal/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/no-modal/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/no-modal/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/ui": { - "version": "9.4.5", - "resolved": "https://registry.npmjs.org/@web3auth/ui/-/ui-9.4.5.tgz", - "integrity": "sha512-R61t2pyGwtT3QvGU3e/ImWbuaR23xfHAjJgU56ure5XrR6lyc5PfVPZtpEfZ+KBa06lnI+xDxVWFMusZabYGNQ==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/ui/-/ui-9.5.1.tgz", + "integrity": "sha512-PiVZ47hwL7Rqw529gfJ6Tp41qzwvvpZrEn4gzyimqqycvobQfj3dXIyQ+iuETB+49tyrU0U1VmwJYd7GO5ExMA==", "license": "ISC", "dependencies": { "@toruslabs/http-helpers": "^7.0.0", - "@web3auth/auth": "^9.5.3", - "@web3auth/base": "^9.4.5", + "@web3auth/auth": "^9.6.2", + "@web3auth/base": "^9.5.1", "bowser": "^2.11.0", "classnames": "^2.5.1", "copy-to-clipboard": "^3.3.3", "deepmerge": "^4.3.1", "i18next": "^23.16.8", - "react-i18next": "^15.1.2", + "react-i18next": "^15.2.0", "react-qrcode-logo": "^3.0.0" }, "engines": { @@ -14594,10 +14250,65 @@ "react-dom": "^18.x" } }, + "node_modules/@web3auth/ui/node_modules/@toruslabs/base-controllers": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/@toruslabs/base-controllers/-/base-controllers-7.0.1.tgz", + "integrity": "sha512-vc1LH6im084UdmLuUrFVXTQ5fh9ZXrXpwoml7o44F+UGZHtNcJYhOV5J9z8BMcQFonc2eJxzsD8daC/YFfPaUQ==", + "license": "ISC", + "dependencies": { + "@ethereumjs/util": "^9.1.0", + "@toruslabs/broadcast-channel": "^11.0.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "async-mutex": "^0.5.0", + "bignumber.js": "^9.1.2", + "bowser": "^2.11.0", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "7.x" + } + }, + "node_modules/@web3auth/ui/node_modules/@web3auth/base": { + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/@web3auth/base/-/base-9.5.1.tgz", + "integrity": "sha512-Zd3PgyHwn0QWcQUg6ZAgn7DW06laIvo1ySJnNw4q3tYHj96KPx4pPJfPKW5+pr2CY2hvYYa6iU00bKsrDB+5cA==", + "license": "ISC", + "dependencies": { + "@toruslabs/base-controllers": "^7.0.1", + "@toruslabs/constants": "^14.2.0", + "@toruslabs/http-helpers": "^7.0.0", + "@web3auth/auth": "^9.6.2", + "jwt-decode": "^4.0.0", + "loglevel": "^1.9.2", + "ts-custom-error": "^3.3.1" + }, + "engines": { + "node": ">=18.x", + "npm": ">=9.x" + }, + "peerDependencies": { + "@babel/runtime": "^7.x" + } + }, + "node_modules/@web3auth/ui/node_modules/jwt-decode": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-4.0.0.tgz", + "integrity": "sha512-+KJGIyHgkGuIq3IEBNftfhW/LfWhXUIY6OmyVWjliu5KH1y0fw7VQ8YndE2O4qZdMSd9SqbnC8GOcZEy0Om7sA==", + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/@web3auth/ui/node_modules/react-i18next": { - "version": "15.1.3", - "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.1.3.tgz", - "integrity": "sha512-J11oA30FbM3NZegUZjn8ySK903z6PLBz/ZuBYyT1JMR0QPrW6PFXvl1WoUhortdGi9dM0m48/zJQlPskVZXgVw==", + "version": "15.4.0", + "resolved": "https://registry.npmjs.org/react-i18next/-/react-i18next-15.4.0.tgz", + "integrity": "sha512-Py6UkX3zV08RTvL6ZANRoBh9sL/ne6rQq79XlkHEdd82cZr2H9usbWpUNVadJntIZP2pu3M2rL1CN+5rQYfYFw==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.25.0", @@ -14710,9 +14421,9 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/abortcontroller-polyfill": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.6.tgz", - "integrity": "sha512-Zypm+LjYdWAzvuypZvDN0smUJrhOurcuBWhhMRBExqVLRvdjp3Z9mASxKyq19K+meZMshwjjy5S0lkm388zE4Q==", + "version": "1.7.8", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.8.tgz", + "integrity": "sha512-9f1iZ2uWh92VcrU9Y8x+LdM4DLj75VE0MJB8zuF1iUnroEptStw+DQ8EQPMUdfe5k+PkB1uUfDQfWbhstH8LrQ==", "license": "MIT" }, "node_modules/acorn": { @@ -14934,13 +14645,13 @@ } }, "node_modules/array-buffer-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", - "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", - "is-array-buffer": "^3.0.4" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" }, "engines": { "node": ">= 0.4" @@ -15030,16 +14741,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15049,16 +14760,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -15085,19 +14796,18 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", - "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "license": "MIT", "dependencies": { "array-buffer-byte-length": "^1.0.1", - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.22.3", - "es-errors": "^1.2.1", - "get-intrinsic": "^1.2.3", - "is-array-buffer": "^3.0.4", - "is-shared-array-buffer": "^1.0.2" + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" }, "engines": { "node": ">= 0.4" @@ -15714,9 +15424,9 @@ } }, "node_modules/browserslist": { - "version": "4.24.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", - "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", + "version": "4.24.3", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.3.tgz", + "integrity": "sha512-1CPmv8iobE2fyRMV97dAcMVegvvWKxmq94hkLiAkUGwKVTyDLw33K+ZxiFrREKmmps4rIw6grcCFCnTMSZ/YiA==", "funding": [ { "type": "opencollective", @@ -15733,9 +15443,9 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001669", - "electron-to-chromium": "^1.5.41", - "node-releases": "^2.0.18", + "caniuse-lite": "^1.0.30001688", + "electron-to-chromium": "^1.5.73", + "node-releases": "^2.0.19", "update-browserslist-db": "^1.1.1" }, "bin": { @@ -15832,9 +15542,9 @@ "license": "MIT" }, "node_modules/bufferutil": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.8.tgz", - "integrity": "sha512-4T53u4PdgsXqKaIctwF8ifXlRTTmEPJ8iEPWFdGZvcf7sbwYo6FKFEX9eNNAnzFZ7EzJAQ3CJeOtCRA4rDp7Pw==", + "version": "4.0.9", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz", + "integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -15860,16 +15570,44 @@ "license": "MIT" }, "node_modules/call-bind": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", - "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.0", "es-define-property": "^1.0.0", - "es-errors": "^1.3.0", - "function-bind": "^1.1.2", "get-intrinsic": "^1.2.4", - "set-function-length": "^1.2.1" + "set-function-length": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.1.tgz", + "integrity": "sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.3.tgz", + "integrity": "sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -15897,9 +15635,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001686", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001686.tgz", - "integrity": "sha512-Y7deg0Aergpa24M3qLC5xjNklnKnhsmSyR/V89dLZ1n0ucJIFNs7PgR2Yfa/Zf6W79SbBicgtGxZr2juHkEUIA==", + "version": "1.0.30001690", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz", + "integrity": "sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==", "funding": [ { "type": "opencollective", @@ -15957,7 +15695,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -16122,15 +15859,6 @@ "node": ">= 0.10" } }, - "node_modules/citty": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/citty/-/citty-0.1.6.tgz", - "integrity": "sha512-tskPPKEs8D2KPafUypv2gxwJP8h/OaJmC82QQGGDQcHvXX43xF2VDACcJVmZ0EuSxkpO9Kc4MlrA3q0+FG58AQ==", - "license": "MIT", - "dependencies": { - "consola": "^3.2.3" - } - }, "node_modules/classnames": { "version": "2.5.1", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.5.1.tgz", @@ -16227,91 +15955,6 @@ "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==", "license": "MIT" }, - "node_modules/clipboardy": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/clipboardy/-/clipboardy-4.0.0.tgz", - "integrity": "sha512-5mOlNS0mhX0707P2I0aZ2V/cmHUEO/fL7VFLqszkhUsxt7RwnmrInf/eEQKlf5GzvYeHIjT+Ov1HRfNmymlG0w==", - "license": "MIT", - "dependencies": { - "execa": "^8.0.1", - "is-wsl": "^3.1.0", - "is64bit": "^2.0.0" - }, - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/execa": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz", - "integrity": "sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==", - "license": "MIT", - "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^8.0.1", - "human-signals": "^5.0.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^4.1.0", - "strip-final-newline": "^3.0.0" - }, - "engines": { - "node": ">=16.17" - }, - "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" - } - }, - "node_modules/clipboardy/node_modules/get-stream": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz", - "integrity": "sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==", - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/human-signals": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz", - "integrity": "sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==", - "license": "Apache-2.0", - "engines": { - "node": ">=16.17.0" - } - }, - "node_modules/clipboardy/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/clipboardy/node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/cliui": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", @@ -16437,12 +16080,6 @@ "dev": true, "license": "MIT" }, - "node_modules/confbox": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/confbox/-/confbox-0.1.8.tgz", - "integrity": "sha512-RMtmw0iFkeR4YV+fUOSucriAQNb9g8zFR52MWCtl+cCZOFRNL6zeB395vPzFhEjjn4fMxXudmELnl/KF/WrK6w==", - "license": "MIT" - }, "node_modules/config-chain": { "version": "1.1.13", "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", @@ -16462,9 +16099,9 @@ "license": "MIT" }, "node_modules/consola": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/consola/-/consola-3.2.3.tgz", - "integrity": "sha512-I5qxpzLv+sJhTVEoLYNcTW+bThDCPsit0vLNKShZx6rLtpilNpmmeTPaeqJb9ZE9dV3DGaeby6Vuhrw38WjeyQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/consola/-/consola-3.3.3.tgz", + "integrity": "sha512-Qil5KwghMzlqd51UXM0b6fyaGHtOC22scxrwrz4A2882LyUMwQjnvaedN1HAeXzphspQ6CpHkzMAWxBTUruDLg==", "license": "MIT", "engines": { "node": "^14.18.0 || >=16.10.0" @@ -16737,12 +16374,12 @@ } }, "node_modules/cross-fetch": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", - "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", "license": "MIT", "dependencies": { - "node-fetch": "^2.6.12" + "node-fetch": "^2.7.0" } }, "node_modules/cross-spawn": { @@ -16878,14 +16515,14 @@ "license": "BSD-2-Clause" }, "node_modules/data-view-buffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.1.tgz", - "integrity": "sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -16895,29 +16532,29 @@ } }, "node_modules/data-view-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.1.tgz", - "integrity": "sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-data-view": "^1.0.1" + "is-data-view": "^1.0.2" }, "engines": { "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/inspect-js" } }, "node_modules/data-view-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.0.tgz", - "integrity": "sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-data-view": "^1.0.1" }, @@ -16964,9 +16601,9 @@ } }, "node_modules/debug": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", - "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -17328,6 +16965,20 @@ "url": "https://dotenvx.com" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", @@ -17424,9 +17075,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.71", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.71.tgz", - "integrity": "sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==", + "version": "1.5.76", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.76.tgz", + "integrity": "sha512-CjVQyG7n7Sr+eBXE86HIulnL5N8xZY1sgmOPGuq/F0Rr0FJq63lg0kEtOIDfZBk44FnDLf6FUJ+dsJcuiUDdDQ==", "license": "ISC" }, "node_modules/elliptic": { @@ -17511,6 +17162,23 @@ "xmlhttprequest-ssl": "~2.1.1" } }, + "node_modules/engine.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/engine.io-client/node_modules/ws": { "version": "8.17.1", "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", @@ -17542,9 +17210,9 @@ } }, "node_modules/enhanced-resolve": { - "version": "5.17.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", - "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "version": "5.18.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.0.tgz", + "integrity": "sha512-0/r0MySGYG8YqlayBZ6MuCfECmHFdJ5qyPh8s8wa5Hnm6SaFLSK1VYCbj+NKp090Nm1caZhD+QTnmxO7esYGyQ==", "dev": true, "license": "MIT", "dependencies": { @@ -17696,57 +17364,60 @@ } }, "node_modules/es-abstract": { - "version": "1.23.5", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.5.tgz", - "integrity": "sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==", + "version": "1.23.8", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.23.8.tgz", + "integrity": "sha512-lfab8IzDn6EpI1ibZakcgS6WsfEBiB+43cuJo+wgylx1xKXf+Sp+YR3vFuQwC/u3sxYwV8Cxe3B0DpVUu/WiJQ==", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.1", - "arraybuffer.prototype.slice": "^1.0.3", + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", - "data-view-buffer": "^1.0.1", - "data-view-byte-length": "^1.0.1", - "data-view-byte-offset": "^1.0.0", - "es-define-property": "^1.0.0", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", "es-set-tostringtag": "^2.0.3", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.4", - "get-symbol-description": "^1.0.2", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.2.6", + "get-symbol-description": "^1.1.0", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", "hasown": "^2.0.2", - "internal-slot": "^1.0.7", - "is-array-buffer": "^3.0.4", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-data-view": "^1.0.1", - "is-negative-zero": "^2.0.3", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.3", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.13", - "is-weakref": "^1.0.2", + "is-data-view": "^1.0.2", + "is-regex": "^1.2.1", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.0", + "math-intrinsics": "^1.1.0", "object-inspect": "^1.13.3", "object-keys": "^1.1.1", - "object.assign": "^4.1.5", + "object.assign": "^4.1.7", + "own-keys": "^1.0.0", "regexp.prototype.flags": "^1.5.3", - "safe-array-concat": "^1.1.2", - "safe-regex-test": "^1.0.3", - "string.prototype.trim": "^1.2.9", - "string.prototype.trimend": "^1.0.8", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", "string.prototype.trimstart": "^1.0.8", - "typed-array-buffer": "^1.0.2", - "typed-array-byte-length": "^1.0.1", - "typed-array-byte-offset": "^1.0.2", - "typed-array-length": "^1.0.6", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.15" + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.18" }, "engines": { "node": ">= 0.4" @@ -17756,13 +17427,10 @@ } }, "node_modules/es-define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", - "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.2.4" - }, "engines": { "node": ">= 0.4" } @@ -17777,27 +17445,28 @@ } }, "node_modules/es-iterator-helpers": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.0.tgz", - "integrity": "sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-iterator-helpers/-/es-iterator-helpers-1.2.1.tgz", + "integrity": "sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.3", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-set-tostringtag": "^2.0.3", "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.4", + "get-intrinsic": "^1.2.6", "globalthis": "^1.0.4", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-property-descriptors": "^1.0.2", - "has-proto": "^1.0.3", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "iterator.prototype": "^1.1.3", - "safe-array-concat": "^1.1.2" + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "iterator.prototype": "^1.1.4", + "safe-array-concat": "^1.1.3" }, "engines": { "node": ">= 0.4" @@ -18649,29 +18318,29 @@ } }, "node_modules/eslint-plugin-react": { - "version": "7.37.2", - "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.2.tgz", - "integrity": "sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==", + "version": "7.37.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.37.3.tgz", + "integrity": "sha512-DomWuTQPFYZwF/7c9W2fkKkStqZmBd3uugfqBYLdkZ3Hii23WzZuOLUskGxB8qkSKqftxEeGL1TB2kMhrce0jA==", "dev": true, "license": "MIT", "dependencies": { "array-includes": "^3.1.8", "array.prototype.findlast": "^1.2.5", - "array.prototype.flatmap": "^1.3.2", + "array.prototype.flatmap": "^1.3.3", "array.prototype.tosorted": "^1.1.4", "doctrine": "^2.1.0", - "es-iterator-helpers": "^1.1.0", + "es-iterator-helpers": "^1.2.1", "estraverse": "^5.3.0", "hasown": "^2.0.2", "jsx-ast-utils": "^2.4.1 || ^3.0.0", "minimatch": "^3.1.2", "object.entries": "^1.1.8", "object.fromentries": "^2.0.8", - "object.values": "^1.2.0", + "object.values": "^1.2.1", "prop-types": "^15.8.1", "resolve": "^2.0.0-next.5", "semver": "^6.3.1", - "string.prototype.matchall": "^4.0.11", + "string.prototype.matchall": "^4.0.12", "string.prototype.repeat": "^1.0.0" }, "engines": { @@ -19649,6 +19318,13 @@ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "license": "MIT" }, + "node_modules/fast-content-type-parse": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-content-type-parse/-/fast-content-type-parse-2.0.0.tgz", + "integrity": "sha512-fCqg/6Sps8tqk8p+kqyKqYfOF0VjPNYrqpLiqNl0RBKmD80B080AJWVV6EkSkscjToNExcXg1+Mfzftrx6+iSA==", + "dev": true, + "license": "MIT" + }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -19767,9 +19443,9 @@ } }, "node_modules/fastq": { - "version": "1.17.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", - "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -20204,15 +19880,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -20256,24 +19934,21 @@ } }, "node_modules/gaxios/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.5.tgz", - "integrity": "sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==", + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "license": "MIT", "dependencies": { - "agent-base": "^7.0.2", + "agent-base": "^7.1.2", "debug": "4" }, "engines": { @@ -20334,16 +20009,21 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", - "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.6.tgz", + "integrity": "sha512-qxsEs+9A+u85HhllWJJFicJfPDhRmjzoYdl64aMWW9yRIJmSyxdn8IEkuIM530/7T+lv0TIHd8L6Q/ra0tEoeA==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "dunder-proto": "^1.0.0", + "es-define-property": "^1.0.1", "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -20367,12 +20047,6 @@ "node": ">=6" } }, - "node_modules/get-port-please": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/get-port-please/-/get-port-please-3.1.2.tgz", - "integrity": "sha512-Gxc29eLs1fbn6LQ4jSU4vXjlwyZhF5HsGuMAa7gqBP4Rw4yxxltyDUuF5MBclFzDTXO+ACchGQoeela4DSfzdQ==", - "license": "MIT" - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -20386,14 +20060,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", - "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4" + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -20516,9 +20190,9 @@ } }, "node_modules/globals": { - "version": "15.13.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-15.13.0.tgz", - "integrity": "sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, "license": "MIT", "engines": { @@ -20643,7 +20317,6 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true, "license": "ISC" }, "node_modules/graphemer": { @@ -20654,9 +20327,9 @@ "license": "MIT" }, "node_modules/graphql": { - "version": "16.9.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.9.0.tgz", - "integrity": "sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==", + "version": "16.10.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.10.0.tgz", + "integrity": "sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" @@ -20751,10 +20424,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -20763,7 +20439,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -20782,12 +20457,12 @@ } }, "node_modules/has-proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.1.0.tgz", - "integrity": "sha512-QLdzI9IIO1Jg7f9GT1gXpPpXArAn6cS31R1eEZqz08Gc+uQ8/XiqHWt17Fiw+2p6oTTIq5GXEpQkAlA88YRl/Q==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "dunder-proto": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -21117,7 +20792,6 @@ "version": "8.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-8.0.2.tgz", "integrity": "sha512-sYKnA7eGln5ov8T8gnYlkSOxFJvywzEx9BueN6xo/GKO8PGiI6uK6xx+DIGe45T3bdVjLAQDQW1aicT8z8JwQg==", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" @@ -21130,7 +20804,6 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, "node_modules/html-parse-stringify": { @@ -21173,28 +20846,15 @@ } }, "node_modules/http-proxy-agent/node_modules/agent-base": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", - "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", + "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", "dev": true, "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, "engines": { "node": ">= 14" } }, - "node_modules/http-shutdown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz", - "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==", - "license": "MIT", - "engines": { - "iojs": ">= 1.0.0", - "node": ">= 0.12.0" - } - }, "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", @@ -21255,9 +20915,9 @@ } }, "node_modules/i18next-browser-languagedetector": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.1.tgz", - "integrity": "sha512-h/pM34bcH6tbz8WgGXcmWauNpQupCGr25XPp9cZwZInR9XHSjIFDYp1SIok7zSPsTOMxdvuLyu86V+g2Kycnfw==", + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/i18next-browser-languagedetector/-/i18next-browser-languagedetector-7.2.2.tgz", + "integrity": "sha512-6b7r75uIJDWCcCflmbof+sJ94k9UQO4X0YR62oUfqGI/GjCLVzlCwu8TFdRZIqVLzWbzNcmkmhfqKEr4TLz4HQ==", "license": "MIT", "dependencies": { "@babel/runtime": "^7.23.2" @@ -21459,14 +21119,14 @@ "license": "Apache-2.0 OR MIT" }, "node_modules/internal-slot": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", - "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "license": "MIT", "dependencies": { "es-errors": "^1.3.0", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -21510,15 +21170,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/ipaddr.js": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.2.0.tgz", - "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", - "license": "MIT", - "engines": { - "node": ">= 10" - } - }, "node_modules/ipfs-unixfs": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/ipfs-unixfs/-/ipfs-unixfs-11.2.0.tgz", @@ -21604,13 +21255,13 @@ } }, "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.2.0.tgz", + "integrity": "sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21620,13 +21271,14 @@ } }, "node_modules/is-array-buffer": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", - "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -21684,12 +21336,12 @@ } }, "node_modules/is-boolean-object": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.0.tgz", - "integrity": "sha512-kR5g0+dXf/+kXnqI+lu0URKYPKgICtHGGNCDSB10AaUFj3o/HkB3u7WfpRBJGFopxxY0oH3ux7ZsDjLtK7xqvw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.1.tgz", + "integrity": "sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" }, "engines": { @@ -21758,9 +21410,9 @@ } }, "node_modules/is-core-module": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.15.1.tgz", - "integrity": "sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==", + "version": "2.16.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", "license": "MIT", "dependencies": { "hasown": "^2.0.2" @@ -21773,11 +21425,13 @@ } }, "node_modules/is-data-view": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.1.tgz", - "integrity": "sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "license": "MIT", "dependencies": { + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", "is-typed-array": "^1.1.13" }, "engines": { @@ -21788,12 +21442,13 @@ } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -21802,21 +21457,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-docker": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-3.0.0.tgz", - "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", - "license": "MIT", - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-electron": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/is-electron/-/is-electron-2.2.2.tgz", @@ -21833,12 +21473,12 @@ } }, "node_modules/is-finalizationregistry": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.0.tgz", - "integrity": "sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -21899,24 +21539,6 @@ "npm": ">=3" } }, - "node_modules/is-inside-container": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-inside-container/-/is-inside-container-1.0.0.tgz", - "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", - "license": "MIT", - "dependencies": { - "is-docker": "^3.0.0" - }, - "bin": { - "is-inside-container": "cli.js" - }, - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/is-ip": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", @@ -21967,18 +21589,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-negative-zero": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", - "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", - "license": "MIT", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-network-error": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-network-error/-/is-network-error-1.1.0.tgz", @@ -22001,12 +21611,12 @@ } }, "node_modules/is-number-object": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.0.tgz", - "integrity": "sha512-KVSZV0Dunv9DTPkhXwcZ3Q+tUc9TsaE1ZwX5J2WMvsSGS6Md8TFPun5uwh0yRdrNerI6vf/tbJxqSx4c1ZI1Lw==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -22046,13 +21656,13 @@ } }, "node_modules/is-regex": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.0.tgz", - "integrity": "sha512-B6ohK4ZmoftlUe+uvenXSbPJFo6U37BH7oO1B3nQH8f/7h27N56s85MhUtbFJAziz5dcmuR3i8ovUl35zp8pFA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "gopd": "^1.1.0", + "call-bound": "^1.0.2", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" }, @@ -22088,12 +21698,12 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", - "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -22115,12 +21725,12 @@ } }, "node_modules/is-string": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.0.tgz", - "integrity": "sha512-PlfzajuF9vSo5wErv3MJAKD/nqf9ngAs1NFQYm16nUYFO2IzxJ2hcm+IOCg+EEopdykNNUhVq5cz35cAUxU8+g==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" }, "engines": { @@ -22131,14 +21741,14 @@ } }, "node_modules/is-symbol": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.0.tgz", - "integrity": "sha512-qS8KkNNXUZ/I+nX6QT8ZS1/Yx0A444yhzdTKxCzKkNjQ9sHErBxJnJAgh+f5YhusYECEcjo4XcyH87hn6+ks0A==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "has-symbols": "^1.0.3", - "safe-regex-test": "^1.0.3" + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -22148,12 +21758,12 @@ } }, "node_modules/is-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", - "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "version": "1.1.15", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.14" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -22194,25 +21804,12 @@ } }, "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.3.tgz", - "integrity": "sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.0.tgz", + "integrity": "sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4" + "call-bound": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -22221,34 +21818,20 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-wsl": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-3.1.0.tgz", - "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", - "license": "MIT", - "dependencies": { - "is-inside-container": "^1.0.0" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is64bit": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is64bit/-/is64bit-2.0.0.tgz", - "integrity": "sha512-jv+8jaWCl0g2lSBkNSVXdzfBA0npK1HGC2KtWM9FumFRoGS94g3NbCCLVnCYHLjp4GrW2KZeeSTMo5ddtznmGw==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "license": "MIT", "dependencies": { - "system-architecture": "^0.1.0" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { - "node": ">=18" + "node": ">= 0.4" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/isarray": { @@ -22437,9 +22020,9 @@ } }, "node_modules/it-ndjson": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.0.7.tgz", - "integrity": "sha512-V3IskT5RCVtov1u6sC9gkg0uD02qe8yPoVzBZVaRx+YkuMdpFd6opiAwfYovNd/NEbqo9mBN8wJLtw6vD0Xiqg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/it-ndjson/-/it-ndjson-1.1.0.tgz", + "integrity": "sha512-vh5u/zLEqaqhN0UYjjhCtz3x01vn921k/bYNtjjawMSiYjj3m6QLxXcmocj9eTQli7fGSayAeUXj3lz57Ct5ig==", "license": "Apache-2.0 OR MIT" }, "node_modules/it-pair": { @@ -22599,17 +22182,18 @@ } }, "node_modules/iterator.prototype": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.3.tgz", - "integrity": "sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==", + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/iterator.prototype/-/iterator.prototype-1.1.4.tgz", + "integrity": "sha512-x4WH0BWmrMmg4oHHl+duwubhrvczGlyuGAZu3nvrf0UXOfPu8IhZObFEr7DE/iv01YgVZrsOiRcqw2srkKEDIA==", "dev": true, "license": "MIT", "dependencies": { - "define-properties": "^1.2.1", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", - "reflect.getprototypeof": "^1.0.4", - "set-function-name": "^2.0.1" + "define-data-property": "^1.1.4", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", + "reflect.getprototypeof": "^1.0.8", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -22625,15 +22209,6 @@ "node": ">= 0.6.0" } }, - "node_modules/jiti": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.4.1.tgz", - "integrity": "sha512-yPBThwecp1wS9DmoA4x4KR2h3QoslacnDR8ypuFM962kI4/456Iy1oHx2RAgh4jfZNdn0bctsdadceiBUgpU1g==", - "license": "MIT", - "bin": { - "jiti": "lib/jiti-cli.mjs" - } - }, "node_modules/jose": { "version": "5.9.6", "resolved": "https://registry.npmjs.org/jose/-/jose-5.9.6.tgz", @@ -22669,9 +22244,9 @@ } }, "node_modules/jsesc": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", - "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "license": "MIT", "bin": { "jsesc": "bin/jsesc" @@ -22741,12 +22316,13 @@ "license": "MIT" }, "node_modules/json-stable-stringify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.1.1.tgz", - "integrity": "sha512-SU/971Kt5qVQfJpyDveVhQ/vya+5hvrjClFOcr8c0Fq5aODJjMwutrOfCU+eCnVD5gpx1Q3fEqkyom77zH1iIg==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.2.1.tgz", + "integrity": "sha512-Lp6HbbBgosLmJbjx0pBLbgvx68FaFU1sdkmBuckmhhJ88kL13OA51CDtR2yJB50eCNMH9wRqtQNNiAqQH4YXnA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "isarray": "^2.0.5", "jsonify": "^0.0.1", "object-keys": "^1.1.1" @@ -22967,36 +22543,38 @@ } }, "node_modules/libp2p": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.3.1.tgz", - "integrity": "sha512-b8SydqWzScHXiS5A+c29w2JGbkYBajW+AGFmWmtaF5r53ZpMTetnPmlczkT7D2Zd9+k4yKC7plGBWBNku/KNXQ==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/libp2p/-/libp2p-2.4.2.tgz", + "integrity": "sha512-8y+moEpzzkDjRbK7e+0k8zgtCnL4RkttFnjxrnzoVLQdk6ki3xf0SQkH3aD6FHyz8fdHlG48Av6BEOsT+F9TKg==", "license": "Apache-2.0 OR MIT", "dependencies": { - "@libp2p/crypto": "^5.0.7", - "@libp2p/interface": "^2.2.1", - "@libp2p/interface-internal": "^2.1.1", - "@libp2p/logger": "^5.1.4", - "@libp2p/multistream-select": "^6.0.9", - "@libp2p/peer-collections": "^6.0.12", - "@libp2p/peer-id": "^5.0.8", - "@libp2p/peer-store": "^11.0.12", - "@libp2p/utils": "^6.2.1", + "@chainsafe/is-ip": "^2.0.2", + "@chainsafe/netmask": "^2.0.0", + "@libp2p/crypto": "^5.0.8", + "@libp2p/interface": "^2.3.0", + "@libp2p/interface-internal": "^2.2.1", + "@libp2p/logger": "^5.1.5", + "@libp2p/multistream-select": "^6.0.10", + "@libp2p/peer-collections": "^6.0.13", + "@libp2p/peer-id": "^5.0.9", + "@libp2p/peer-store": "^11.0.13", + "@libp2p/utils": "^6.3.0", "@multiformats/dns": "^1.0.6", - "@multiformats/multiaddr": "^12.2.3", - "@multiformats/multiaddr-matcher": "^1.2.1", + "@multiformats/multiaddr": "^12.3.3", + "@multiformats/multiaddr-matcher": "^1.6.0", "any-signal": "^4.1.1", - "datastore-core": "^10.0.0", - "interface-datastore": "^8.3.0", - "it-byte-stream": "^1.0.12", + "datastore-core": "^10.0.2", + "interface-datastore": "^8.3.1", + "it-byte-stream": "^1.1.0", "it-merge": "^3.0.5", - "it-parallel": "^3.0.7", + "it-parallel": "^3.0.8", "merge-options": "^3.0.4", - "multiformats": "^13.1.0", + "multiformats": "^13.3.1", "p-defer": "^4.0.1", - "p-retry": "^6.2.0", - "progress-events": "^1.0.0", + "p-retry": "^6.2.1", + "progress-events": "^1.0.1", "race-event": "^1.3.0", - "race-signal": "^1.0.2", + "race-signal": "^1.1.0", "uint8arrays": "^5.1.0" } }, @@ -23015,36 +22593,6 @@ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "license": "MIT" }, - "node_modules/listhen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/listhen/-/listhen-1.9.0.tgz", - "integrity": "sha512-I8oW2+QL5KJo8zXNWX046M134WchxsXC7SawLPvRQpogCbkyQIaFxPE89A2HiwR7vAK2Dm2ERBAmyjTYGYEpBg==", - "license": "MIT", - "dependencies": { - "@parcel/watcher": "^2.4.1", - "@parcel/watcher-wasm": "^2.4.1", - "citty": "^0.1.6", - "clipboardy": "^4.0.0", - "consola": "^3.2.3", - "crossws": ">=0.2.0 <0.4.0", - "defu": "^6.1.4", - "get-port-please": "^3.1.2", - "h3": "^1.12.0", - "http-shutdown": "^1.2.2", - "jiti": "^2.1.2", - "mlly": "^1.7.1", - "node-forge": "^1.3.1", - "pathe": "^1.1.2", - "std-env": "^3.7.0", - "ufo": "^1.5.4", - "untun": "^0.1.3", - "uqr": "^0.1.2" - }, - "bin": { - "listen": "bin/listhen.mjs", - "listhen": "bin/listhen.mjs" - } - }, "node_modules/lit": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/lit/-/lit-2.8.0.tgz", @@ -23328,9 +22876,9 @@ } }, "node_modules/magic-string": { - "version": "0.30.14", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.14.tgz", - "integrity": "sha512-5c99P1WKTed11ZC0HMJOj6CDIue6F8ySu+bJL+85q1zBEIY8IklrJ1eiKC2NDRh3Ct3FcvmJPyQHb9erXMTJNw==", + "version": "0.30.17", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", + "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -23382,9 +22930,9 @@ } }, "node_modules/marked-terminal/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.4.1.tgz", + "integrity": "sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w==", "dev": true, "license": "MIT", "engines": { @@ -23394,6 +22942,15 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -24392,7 +23949,6 @@ "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, "license": "ISC", "dependencies": { "brace-expansion": "^2.0.1" @@ -24448,18 +24004,6 @@ "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", "license": "MIT" }, - "node_modules/mlly": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/mlly/-/mlly-1.7.3.tgz", - "integrity": "sha512-xUsx5n/mN0uQf4V548PKQ+YShA4/IW0KI1dZhrNrPCLG+xizETbHTkOa1f8/xut9JRPp8kQuMnz0oqwkTiLo/A==", - "license": "MIT", - "dependencies": { - "acorn": "^8.14.0", - "pathe": "^1.1.2", - "pkg-types": "^1.2.1", - "ufo": "^1.5.4" - } - }, "node_modules/moment": { "version": "2.30.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", @@ -24824,15 +24368,6 @@ "integrity": "sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==", "license": "MIT" }, - "node_modules/node-forge": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", - "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", - "license": "(BSD-3-Clause OR GPL-2.0)", - "engines": { - "node": ">= 6.13.0" - } - }, "node_modules/node-gyp-build": { "version": "4.8.4", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.8.4.tgz", @@ -24957,9 +24492,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", - "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz", + "integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==", "license": "MIT" }, "node_modules/node-stdlib-browser": { @@ -25096,7 +24631,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.2.tgz", "integrity": "sha512-V6gygoYb/5EmNI+MEGrWkC+e6+Rr7mTmfHrxDbLzxQogBkgzo76rkok0Am6thgSF7Mv2nLOajAJj5vDJZEFn7g==", - "dev": true, "license": "BSD-2-Clause", "dependencies": { "hosted-git-info": "^7.0.0", @@ -25111,7 +24645,6 @@ "version": "7.0.2", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.2.tgz", "integrity": "sha512-puUZAUKT5m8Zzvs72XWy3HtvVbTWljRE66cP60bxJzAqf2DgICo7lYTY2IHUmLnNpjYvw5bvmoHvPc0QO2a62w==", - "dev": true, "license": "ISC", "dependencies": { "lru-cache": "^10.0.1" @@ -25124,14 +24657,12 @@ "version": "10.4.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, "license": "ISC" }, "node_modules/normalize-package-data/node_modules/semver": { "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", "bin": { "semver": "bin/semver.js" @@ -25166,6 +24697,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/notistack/-/notistack-3.0.1.tgz", "integrity": "sha512-ntVZXXgSQH5WYfyU+3HfcXuKaapzAJ8fBLQ/G618rn3yvSzEbnOB8ZSOwhX+dAORy/lw+GC2N061JA0+gYWTVA==", + "license": "MIT", "dependencies": { "clsx": "^1.1.0", "goober": "^2.0.33" @@ -27855,14 +27387,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -27922,13 +27456,14 @@ } }, "node_modules/object.values": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.0.tgz", - "integrity": "sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, @@ -28050,10 +27585,27 @@ "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "license": "MIT" }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/ox": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ox/-/ox-0.1.2.tgz", - "integrity": "sha512-ak/8K0Rtphg9vnRJlbOdaX9R7cmxD2MiSthjWGaQdMk3D7hrAlDoM+6Lxn7hN52Za3vrXfZ7enfke/5WjolDww==", + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/ox/-/ox-0.6.0.tgz", + "integrity": "sha512-blUzTLidvUlshv0O02CnLFqBLidNzPoAZdIth894avUAotTuWziznv6IENv5idRuOSSP3dH8WzcYw84zVdu0Aw==", "funding": [ { "type": "github", @@ -28143,9 +27695,9 @@ } }, "node_modules/ox/node_modules/abitype": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.7.tgz", - "integrity": "sha512-ZfYYSktDQUwc2eduYu8C4wOs+RDPmnRYMh7zNfzeMtGGgb0U+6tLGjixUic6mXf5xKKCcgT5Qp6cv39tOARVFw==", + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/abitype/-/abitype-1.0.8.tgz", + "integrity": "sha512-ZeiI6h3GnW06uYDLx0etQtX/p8E24UaHHBj57RSjK7YBFe7iuVn07EDpOeP451D06sF27VOz9JJPlIKJmXgkEg==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/wevm" @@ -28263,7 +27815,6 @@ "version": "7.0.3", "resolved": "https://registry.npmjs.org/p-map/-/p-map-7.0.3.tgz", "integrity": "sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==", - "dev": true, "license": "MIT", "engines": { "node": ">=18" @@ -28575,12 +28126,13 @@ } }, "node_modules/permissionless": { - "version": "0.2.21", - "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.21.tgz", - "integrity": "sha512-hNrRR/I5InbqkKgRBLhXQY5R0j9biqp688ECBxsW5AO99jOv9HPjz82EdRT87OG4XkCjO4AY20hi4ZPoc+XjRg==", + "version": "0.2.24", + "resolved": "https://registry.npmjs.org/permissionless/-/permissionless-0.2.24.tgz", + "integrity": "sha512-46B/2zuvuEifIMRMLRJEH60LvxduPhEGnX6jzei9f7AoJEL3TEWQorPxOLwx3XUASU2c+ssTNSFigNmVGRkGCw==", "license": "MIT", "peerDependencies": { - "viem": "^2.21.22" + "viem": "^2.21.54", + "webauthn-p256": "0.0.10" } }, "node_modules/picocolors": { @@ -28757,17 +28309,6 @@ "node": ">=10" } }, - "node_modules/pkg-types": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.2.1.tgz", - "integrity": "sha512-sQoqa8alT3nHjGuTjuKgOnvjo4cljkufdtLMnO2LBP/wRwuDlo1tkaEdMxCRhyGRPacv/ztlZgDPm2b7FAmEvw==", - "license": "MIT", - "dependencies": { - "confbox": "^0.1.8", - "mlly": "^1.7.2", - "pathe": "^1.1.2" - } - }, "node_modules/pngjs": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz", @@ -28844,9 +28385,9 @@ } }, "node_modules/preact": { - "version": "10.25.1", - "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.1.tgz", - "integrity": "sha512-frxeZV2vhQSohQwJ7FvlqC40ze89+8friponWUFeVEkaCfhC6Eu4V0iND5C9CXz8JLndV07QRDeXzH1+Anz5Og==", + "version": "10.25.4", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.25.4.tgz", + "integrity": "sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==", "license": "MIT", "funding": { "type": "opencollective", @@ -29548,9 +29089,9 @@ "license": "MIT" }, "node_modules/react-hook-form": { - "version": "7.53.2", - "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.53.2.tgz", - "integrity": "sha512-YVel6fW5sOeedd1524pltpHX+jgU2u3DSDtXEaBORNdqiNrsX/nUI/iGXONegttg0mJVnfrIkiV0cmTU6Oo2xw==", + "version": "7.54.2", + "resolved": "https://registry.npmjs.org/react-hook-form/-/react-hook-form-7.54.2.tgz", + "integrity": "sha512-eHpAUgUjWbZocoQYUHposymRb4ZP6d0uwUnooL2uOybA9/3tPUvoAKqEWK1WaSiTxxOfTpffNZP7QwlnM3/gEg==", "license": "MIT", "engines": { "node": ">=18.0.0" @@ -29586,22 +29127,22 @@ } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "version": "19.0.0", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-19.0.0.tgz", + "integrity": "sha512-H91OHcwjZsbq3ClIDHMzBShc1rotbfACdWENsmEf0IFvZ3FgGPtdHMcsv45bQ1hAbgdfiA8SnxTKfDS+x/8m2g==", "license": "MIT" }, "node_modules/react-lazy-load-image-component": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.6.2.tgz", - "integrity": "sha512-dAdH5PsRgvDMlHC7QpZRA9oRzEZl1kPFwowmR9Mt0IUUhxk2wwq43PB6Ffwv84HFYuPmsxDUCka0E9KVXi8roQ==", + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/react-lazy-load-image-component/-/react-lazy-load-image-component-1.6.3.tgz", + "integrity": "sha512-kdQYUDbuISF3T9El0sBLNoWrmPohqlytcG4ognLtHYjY8bZAsJ0/Ez+VaV+0QlVyUY3K6dDXkuQAz3GpvdjBkw==", "license": "MIT", "dependencies": { "lodash.debounce": "^4.0.8", "lodash.throttle": "^4.1.1" }, "peerDependencies": { - "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x" + "react": "^15.x.x || ^16.x.x || ^17.x.x || ^18.x.x || ^19.x.x" } }, "node_modules/react-markdown": { @@ -29635,6 +29176,12 @@ "react": ">=16" } }, + "node_modules/react-markdown/node_modules/react-is": { + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", + "license": "MIT" + }, "node_modules/react-native-webrtc": { "version": "124.0.4", "resolved": "https://registry.npmjs.org/react-native-webrtc/-/react-native-webrtc-124.0.4.tgz", @@ -29731,17 +29278,17 @@ } }, "node_modules/react-redux": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.1.2.tgz", - "integrity": "sha512-0OA4dhM1W48l3uzmv6B7TXPCGmokUU4p1M44DGN2/D9a1FjVPukVjER1PcPX97jIg6aUeLq1XJo1IpfbgULn0w==", + "version": "9.2.0", + "resolved": "https://registry.npmjs.org/react-redux/-/react-redux-9.2.0.tgz", + "integrity": "sha512-ROY9fvHhwOD9ySfrF0wmvu//bKCQ6AeZZq1nJNtbDC+kk5DuSuNX/n6YWYF/SYy7bSba4D4FSz8DJeKY/S/r+g==", "license": "MIT", "dependencies": { - "@types/use-sync-external-store": "^0.0.3", - "use-sync-external-store": "^1.0.0" + "@types/use-sync-external-store": "^0.0.6", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "@types/react": "^18.2.25", - "react": "^18.0", + "@types/react": "^18.2.25 || ^19", + "react": "^18.0 || ^19", "redux": "^5.0.0" }, "peerDependenciesMeta": { @@ -29764,23 +29311,23 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.0.tgz", - "integrity": "sha512-I2U4JVEsQenxDAKaVa3VZ/JeJZe0/2DxPWL8Tj8yLKctQJQiZM52pn/GWFpSp8dftjM3pSAHVJZscAnC/y+ySQ==", + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.6.2.tgz", + "integrity": "sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==", "license": "MIT", "dependencies": { - "react-remove-scroll-bar": "^2.3.6", + "react-remove-scroll-bar": "^2.3.7", "react-style-singleton": "^2.2.1", "tslib": "^2.1.0", - "use-callback-ref": "^1.3.0", + "use-callback-ref": "^1.3.3", "use-sidecar": "^1.1.2" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -29789,20 +29336,20 @@ } }, "node_modules/react-remove-scroll-bar": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.6.tgz", - "integrity": "sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/react-remove-scroll-bar/-/react-remove-scroll-bar-2.3.8.tgz", + "integrity": "sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==", "license": "MIT", "dependencies": { - "react-style-singleton": "^2.2.1", + "react-style-singleton": "^2.2.2", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" }, "peerDependenciesMeta": { "@types/react": { @@ -29811,9 +29358,9 @@ } }, "node_modules/react-router": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.0.tgz", - "integrity": "sha512-HrYdIFqdrnhDw0PqG/AKjAqEqM7AvxCz0DQ4h2W8k6nqmc5uRBYDag0SBxx9iYz5G8gnuNVLzUe13wl9eAsXXg==", + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router/-/react-router-6.28.1.tgz", + "integrity": "sha512-2omQTA3rkMljmrvvo6WtewGdVh45SpL9hGiCI9uUrwGGfNFDIvGK4gYJsKlJoNVi6AQZcopSCballL+QGOm7fA==", "license": "MIT", "dependencies": { "@remix-run/router": "1.21.0" @@ -29826,13 +29373,13 @@ } }, "node_modules/react-router-dom": { - "version": "6.28.0", - "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.0.tgz", - "integrity": "sha512-kQ7Unsl5YdyOltsPGl31zOjLrDv+m2VcIEcIHqYYD3Lp0UppLjrzcfJqDJwXxFw3TH/yvapbnUvPlAj7Kx5nbg==", + "version": "6.28.1", + "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-6.28.1.tgz", + "integrity": "sha512-YraE27C/RdjcZwl5UCqF/ffXnZDxpJdk9Q6jw38SZHjXs7NNdpViq2l2c7fO7+4uWaEfcwfGCv3RSg4e1By/fQ==", "license": "MIT", "dependencies": { "@remix-run/router": "1.21.0", - "react-router": "6.28.0" + "react-router": "6.28.1" }, "engines": { "node": ">=14.0.0" @@ -29860,21 +29407,20 @@ } }, "node_modules/react-style-singleton": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.1.tgz", - "integrity": "sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==", + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/react-style-singleton/-/react-style-singleton-2.2.3.tgz", + "integrity": "sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==", "license": "MIT", "dependencies": { "get-nonce": "^1.0.0", - "invariant": "^2.2.4", "tslib": "^2.0.0" }, "engines": { "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -29955,9 +29501,9 @@ } }, "node_modules/readable-stream": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", - "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.6.0.tgz", + "integrity": "sha512-cbAdYt0VcnpN2Bekq7PU+k363ZRsPwJoEEJOEtSJQlJXzwaxt3FIo/uL+KeDSGIjJqtkwyge4KQgD2S2kd+CQw==", "license": "MIT", "dependencies": { "abort-controller": "^3.0.0", @@ -30062,18 +29608,19 @@ "license": "Apache-2.0" }, "node_modules/reflect.getprototypeof": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.7.tgz", - "integrity": "sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.9.tgz", + "integrity": "sha512-r0Ay04Snci87djAsI4U+WNRcSw5S4pOH7qFjd/veA5gC7TbqESR3tcj28ia95L/fYUDw11JKP7uqUKUAfVvV5Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "define-properties": "^1.2.1", - "es-abstract": "^1.23.5", + "dunder-proto": "^1.0.1", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "which-builtin-type": "^1.1.4" + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "which-builtin-type": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -30187,6 +29734,19 @@ "regjsparser": "bin/parser" } }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", + "dev": true, + "license": "MIT", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/rehackt": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz", @@ -30318,18 +29878,21 @@ "license": "MIT" }, "node_modules/resolve": { - "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "version": "1.22.10", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", + "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", "license": "MIT", "dependencies": { - "is-core-module": "^2.13.0", + "is-core-module": "^2.16.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, "bin": { "resolve": "bin/resolve" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -30363,9 +29926,9 @@ } }, "node_modules/retimeable-signal": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/retimeable-signal/-/retimeable-signal-0.0.0.tgz", - "integrity": "sha512-jxnBbSwD7khkZIf0cnD6j3BVawwhrbcT4y1WWWZq14l5Ds+z+csataLeBSRtKVqn5tjuT4WPCbMDJLKI2C/WUA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/retimeable-signal/-/retimeable-signal-1.0.1.tgz", + "integrity": "sha512-Cy26CYfbWnYu8HMoJeDhaMpW/EYFIbne3vMf6G9RSrOyWYXbPehja/BEdzpqmM84uy2bfBD7NPZhoQ4GZEtgvg==", "license": "Apache-2.0 OR MIT" }, "node_modules/retry": { @@ -30487,9 +30050,9 @@ } }, "node_modules/rollup": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.28.0.tgz", - "integrity": "sha512-G9GOrmgWHBma4YfCcX8PjH0qhXSdH8B4HDE2o4/jaxj93S4DPCIDoLcXz99eWMji4hB29UFCEd7B2gwGJDR9cQ==", + "version": "4.29.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.29.1.tgz", + "integrity": "sha512-RaJ45M/kmJUzSWDs1Nnd5DdV4eerC98idtUOVr6FfKcgxqvjwHmxc5upLF9qZU9EpsVzzhleFahrT3shLuJzIw==", "dev": true, "license": "MIT", "dependencies": { @@ -30503,24 +30066,25 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.28.0", - "@rollup/rollup-android-arm64": "4.28.0", - "@rollup/rollup-darwin-arm64": "4.28.0", - "@rollup/rollup-darwin-x64": "4.28.0", - "@rollup/rollup-freebsd-arm64": "4.28.0", - "@rollup/rollup-freebsd-x64": "4.28.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.28.0", - "@rollup/rollup-linux-arm-musleabihf": "4.28.0", - "@rollup/rollup-linux-arm64-gnu": "4.28.0", - "@rollup/rollup-linux-arm64-musl": "4.28.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.28.0", - "@rollup/rollup-linux-riscv64-gnu": "4.28.0", - "@rollup/rollup-linux-s390x-gnu": "4.28.0", - "@rollup/rollup-linux-x64-gnu": "4.28.0", - "@rollup/rollup-linux-x64-musl": "4.28.0", - "@rollup/rollup-win32-arm64-msvc": "4.28.0", - "@rollup/rollup-win32-ia32-msvc": "4.28.0", - "@rollup/rollup-win32-x64-msvc": "4.28.0", + "@rollup/rollup-android-arm-eabi": "4.29.1", + "@rollup/rollup-android-arm64": "4.29.1", + "@rollup/rollup-darwin-arm64": "4.29.1", + "@rollup/rollup-darwin-x64": "4.29.1", + "@rollup/rollup-freebsd-arm64": "4.29.1", + "@rollup/rollup-freebsd-x64": "4.29.1", + "@rollup/rollup-linux-arm-gnueabihf": "4.29.1", + "@rollup/rollup-linux-arm-musleabihf": "4.29.1", + "@rollup/rollup-linux-arm64-gnu": "4.29.1", + "@rollup/rollup-linux-arm64-musl": "4.29.1", + "@rollup/rollup-linux-loongarch64-gnu": "4.29.1", + "@rollup/rollup-linux-powerpc64le-gnu": "4.29.1", + "@rollup/rollup-linux-riscv64-gnu": "4.29.1", + "@rollup/rollup-linux-s390x-gnu": "4.29.1", + "@rollup/rollup-linux-x64-gnu": "4.29.1", + "@rollup/rollup-linux-x64-musl": "4.29.1", + "@rollup/rollup-win32-arm64-msvc": "4.29.1", + "@rollup/rollup-win32-ia32-msvc": "4.29.1", + "@rollup/rollup-win32-x64-msvc": "4.29.1", "fsevents": "~2.3.2" } }, @@ -30583,14 +30147,15 @@ } }, "node_modules/safe-array-concat": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.2.tgz", - "integrity": "sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", - "get-intrinsic": "^1.2.4", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -30626,15 +30191,31 @@ "integrity": "sha512-SAJWGKDs50tAbiDXLf89PDwt9XYkWyANFWVzn4dTXl5QyI8t2o/bW5/OJl3lvc2WVU4MEpTo9Yz5NVFNsp+OJQ==", "license": "MIT" }, + "node_modules/safe-push-apply": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-regex-test": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", - "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.6", + "call-bound": "^1.0.2", "es-errors": "^1.3.0", - "is-regex": "^1.1.4" + "is-regex": "^1.2.1" }, "engines": { "node": ">= 0.4" @@ -30848,9 +30429,9 @@ } }, "node_modules/semantic-release/node_modules/execa": { - "version": "9.5.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.1.tgz", - "integrity": "sha512-QY5PPtSonnGwhhHDNI7+3RvY285c7iuJFFB+lU+oEzMY/gEGJ808owqJsrr8Otd1E/x07po1LkUBmdAc5duPAg==", + "version": "9.5.2", + "resolved": "https://registry.npmjs.org/execa/-/execa-9.5.2.tgz", + "integrity": "sha512-EHlpxMCpHWSAh1dgS6bVeoLAXGnJNdR93aabr4QCGbzOM73o5XmRfM/e5FUqsw3aagP8S8XEWUWFAxnRBnAF0Q==", "dev": true, "license": "MIT", "dependencies": { @@ -31184,15 +30765,69 @@ } }, "node_modules/side-channel": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", - "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", "es-errors": "^1.3.0", - "get-intrinsic": "^1.2.4", - "object-inspect": "^1.13.1" + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -31374,23 +31009,21 @@ "license": "MIT" }, "node_modules/simplebar-core": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.2.6.tgz", - "integrity": "sha512-H5NYU+O+uvqOH5VXw3+lgoc1vTI6jL8LOZJsw4xgRpV7uIPjRpmLPdz0TrouxwKHBhpVLzVIlyKhaRLelIThMw==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/simplebar-core/-/simplebar-core-1.3.0.tgz", + "integrity": "sha512-LpWl3w0caz0bl322E68qsrRPpIn+rWBGAaEJ0lUJA7Xpr2sw92AkIhg6VWj988IefLXYh50ILatfAnbNoCFrlA==", "license": "MIT", "dependencies": { - "@types/lodash-es": "^4.17.6", - "lodash": "^4.17.21", - "lodash-es": "^4.17.21" + "lodash": "^4.17.21" } }, "node_modules/simplebar-react": { - "version": "3.2.6", - "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.2.6.tgz", - "integrity": "sha512-8jDiBuVCG86JmOrsmkA+4q77iFAEbhU9EX62PohLisg3dnxdLXFFhkxnx2Es3Cxt8IlZFlJsF9GaobFL3ukwiA==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/simplebar-react/-/simplebar-react-3.3.0.tgz", + "integrity": "sha512-sxzy+xRuU41He4tT4QLGYutchtOuye/xxVeq7xhyOiwMiHNK1ZpvbOTyy+7P0i7gfpXLGTJ8Bep8+4Mhdgtz/g==", "license": "MIT", "dependencies": { - "simplebar-core": "^1.2.6" + "simplebar-core": "^1.3.0" }, "peerDependencies": { "react": ">=16.8.0" @@ -31443,6 +31076,23 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-client/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/socket.io-parser": { "version": "4.2.4", "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", @@ -31456,6 +31106,23 @@ "node": ">=10.0.0" } }, + "node_modules/socket.io-parser/node_modules/debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, "node_modules/solady": { "version": "0.0.180", "resolved": "https://registry.npmjs.org/solady/-/solady-0.0.180.tgz", @@ -31517,7 +31184,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", - "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -31528,14 +31194,12 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", - "dev": true, "license": "CC-BY-3.0" }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, "license": "MIT", "dependencies": { "spdx-exceptions": "^2.1.0", @@ -31546,7 +31210,6 @@ "version": "3.0.20", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.20.tgz", "integrity": "sha512-jg25NiDV/1fLtSgEgyvVyDunvaNHbuwF9lfNV17gSmPFAlYzdfNBlLtLzXTevwkPj7DhGbmN9VnmJIgLnhvaBw==", - "dev": true, "license": "CC0-1.0" }, "node_modules/split-on-first": { @@ -31588,12 +31251,6 @@ "dev": true, "license": "MIT" }, - "node_modules/std-env": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.8.0.tgz", - "integrity": "sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==", - "license": "MIT" - }, "node_modules/stream-browserify": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", @@ -31831,24 +31488,25 @@ } }, "node_modules/string.prototype.matchall": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.11.tgz", - "integrity": "sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==", + "version": "4.0.12", + "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.12.tgz", + "integrity": "sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "es-abstract": "^1.23.2", + "es-abstract": "^1.23.6", "es-errors": "^1.3.0", "es-object-atoms": "^1.0.0", - "get-intrinsic": "^1.2.4", - "gopd": "^1.0.1", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.7", - "regexp.prototype.flags": "^1.5.2", + "get-intrinsic": "^1.2.6", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "internal-slot": "^1.1.0", + "regexp.prototype.flags": "^1.5.3", "set-function-name": "^2.0.2", - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -31869,15 +31527,18 @@ } }, "node_modules/string.prototype.trim": { - "version": "1.2.9", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.9.tgz", - "integrity": "sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==", + "version": "1.2.10", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", "define-properties": "^1.2.1", - "es-abstract": "^1.23.0", - "es-object-atoms": "^1.0.0" + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -31887,15 +31548,19 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.8.tgz", - "integrity": "sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==", + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", "define-properties": "^1.2.1", "es-object-atoms": "^1.0.0" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -32056,7 +31721,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -32095,16 +31759,16 @@ } }, "node_modules/swr": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/swr/-/swr-2.2.5.tgz", - "integrity": "sha512-QtxqyclFeAsxEUeZIYmsaQ0UjimSq1RZ9Un7I68/0ClKK/U3LoyQunwkQfJZr2fc22DfIXLNDc2wFyTEikCUpg==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/swr/-/swr-2.3.0.tgz", + "integrity": "sha512-NyZ76wA4yElZWBHzSgEJc28a0u6QZvhb6w0azeL2k7+Q1gAzVK+IqQYXhVOC/mzi+HZIozrZvBVeSeOZNR2bqA==", "license": "MIT", "dependencies": { - "client-only": "^0.0.1", - "use-sync-external-store": "^1.2.0" + "dequal": "^2.0.3", + "use-sync-external-store": "^1.4.0" }, "peerDependencies": { - "react": "^16.11.0 || ^17.0.0 || ^18.0.0" + "react": "^16.11.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, "node_modules/symbol-observable": { @@ -32133,18 +31797,6 @@ "url": "https://opencollective.com/unts" } }, - "node_modules/system-architecture": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/system-architecture/-/system-architecture-0.1.0.tgz", - "integrity": "sha512-ulAk51I9UVUyJgxlv9M6lFot2WP3e7t8Kz9+IS6D4rVba1tR9kON+Ey69f+1R4Q8cd45Lod6a4IcJIxnzGc/zA==", - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/tapable": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", @@ -32334,7 +31986,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "license": "MIT" }, "node_modules/thenify": { @@ -33140,19 +32791,19 @@ } }, "node_modules/thirdweb/node_modules/@walletconnect/sign-client": { - "version": "2.17.2", - "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.2.tgz", - "integrity": "sha512-/wigdCIQjlBXSWY43Id0IPvZ5biq4HiiQZti8Ljvx408UYjmqcxcBitbj2UJXMYkid7704JWAB2mw32I1HgshQ==", + "version": "2.17.3", + "resolved": "https://registry.npmjs.org/@walletconnect/sign-client/-/sign-client-2.17.3.tgz", + "integrity": "sha512-OzOWxRTfVGCHU3OOF6ibPkgPfDpivFJjuknfcOUt9PYWpTAv6YKOmT4cyfBPhc7llruyHpV44fYbykMcLIvEcg==", "license": "Apache-2.0", "dependencies": { - "@walletconnect/core": "2.17.2", + "@walletconnect/core": "2.17.3", "@walletconnect/events": "1.0.1", "@walletconnect/heartbeat": "1.2.2", "@walletconnect/jsonrpc-utils": "1.0.8", "@walletconnect/logger": "2.1.2", "@walletconnect/time": "1.0.2", - "@walletconnect/types": "2.17.2", - "@walletconnect/utils": "2.17.2", + "@walletconnect/types": "2.17.3", + "@walletconnect/utils": "2.17.3", "events": "3.3.0" } }, @@ -33672,9 +33323,9 @@ } }, "node_modules/type-fest": { - "version": "4.30.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.30.0.tgz", - "integrity": "sha512-G6zXWS1dLj6eagy6sVhOMQiLtJdxQBHIA9Z6HFUNLOlr6MFOgzV8wvmidtPONfPtEUv0uZsy77XJNzTAfwPDaA==", + "version": "4.31.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.31.0.tgz", + "integrity": "sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { @@ -33685,30 +33336,30 @@ } }, "node_modules/typed-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", - "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.3", "es-errors": "^1.3.0", - "is-typed-array": "^1.1.13" + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", - "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -33718,18 +33369,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.3.tgz", - "integrity": "sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-proto": "^1.0.3", - "is-typed-array": "^1.1.13", - "reflect.getprototypeof": "^1.0.6" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -33811,15 +33462,15 @@ } }, "node_modules/typescript-eslint": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.17.0.tgz", - "integrity": "sha512-409VXvFd/f1br1DCbuKNFqQpXICoTB+V51afcwG1pn1a3Cp92MqAUges3YjwEdQ0cMUoCIodjVDAYzyD8h3SYA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.19.0.tgz", + "integrity": "sha512-Ni8sUkVWYK4KAcTtPjQ/UTiRk6jcsuDhPpxULapUDi8A/l8TSBk+t1GtJA1RsCzIJg0q6+J7bf35AwQigENWRQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/eslint-plugin": "8.17.0", - "@typescript-eslint/parser": "8.17.0", - "@typescript-eslint/utils": "8.17.0" + "@typescript-eslint/eslint-plugin": "8.19.0", + "@typescript-eslint/parser": "8.19.0", + "@typescript-eslint/utils": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -33829,26 +33480,22 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.17.0.tgz", - "integrity": "sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz", + "integrity": "sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/type-utils": "8.17.0", - "@typescript-eslint/utils": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -33863,25 +33510,21 @@ }, "peerDependencies": { "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/parser": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.17.0.tgz", - "integrity": "sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.0.tgz", + "integrity": "sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4" }, "engines": { @@ -33892,23 +33535,19 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.17.0.tgz", - "integrity": "sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz", + "integrity": "sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0" + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -33919,14 +33558,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/type-utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.17.0.tgz", - "integrity": "sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz", + "integrity": "sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "8.17.0", - "@typescript-eslint/utils": "8.17.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -33938,18 +33577,14 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/types": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.17.0.tgz", - "integrity": "sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz", + "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==", "dev": true, "license": "MIT", "engines": { @@ -33961,14 +33596,14 @@ } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.17.0.tgz", - "integrity": "sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz", + "integrity": "sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/visitor-keys": "8.17.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -33983,23 +33618,21 @@ "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/utils": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.17.0.tgz", - "integrity": "sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz", + "integrity": "sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.17.0", - "@typescript-eslint/types": "8.17.0", - "@typescript-eslint/typescript-estree": "8.17.0" + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -34009,22 +33642,18 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" } }, "node_modules/typescript-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.17.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.17.0.tgz", - "integrity": "sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz", + "integrity": "sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.17.0", + "@typescript-eslint/types": "8.19.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { @@ -34126,15 +33755,18 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -34416,36 +34048,39 @@ } }, "node_modules/unstorage": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.13.1.tgz", - "integrity": "sha512-ELexQHUrG05QVIM/iUeQNdl9FXDZhqLJ4yP59fnmn2jGUh0TEulwOgov1ubOb3Gt2ZGK/VMchJwPDNVEGWQpRg==", + "version": "1.14.4", + "resolved": "https://registry.npmjs.org/unstorage/-/unstorage-1.14.4.tgz", + "integrity": "sha512-1SYeamwuYeQJtJ/USE1x4l17LkmQBzg7deBJ+U9qOBoHo15d1cDxG4jM31zKRgF7pG0kirZy4wVMX6WL6Zoscg==", "license": "MIT", "dependencies": { "anymatch": "^3.1.3", "chokidar": "^3.6.0", - "citty": "^0.1.6", "destr": "^2.0.3", "h3": "^1.13.0", - "listhen": "^1.9.0", "lru-cache": "^10.4.3", "node-fetch-native": "^1.6.4", "ofetch": "^1.4.1", "ufo": "^1.5.4" }, "peerDependencies": { - "@azure/app-configuration": "^1.7.0", - "@azure/cosmos": "^4.1.1", - "@azure/data-tables": "^13.2.2", + "@azure/app-configuration": "^1.8.0", + "@azure/cosmos": "^4.2.0", + "@azure/data-tables": "^13.3.0", "@azure/identity": "^4.5.0", "@azure/keyvault-secrets": "^4.9.0", - "@azure/storage-blob": "^12.25.0", - "@capacitor/preferences": "^6.0.2", + "@azure/storage-blob": "^12.26.0", + "@capacitor/preferences": "^6.0.3", + "@deno/kv": ">=0.8.4", "@netlify/blobs": "^6.5.0 || ^7.0.0 || ^8.1.0", "@planetscale/database": "^1.19.0", "@upstash/redis": "^1.34.3", + "@vercel/blob": ">=0.27.0", "@vercel/kv": "^1.0.1", + "aws4fetch": "^1.0.20", + "db0": ">=0.2.1", "idb-keyval": "^6.2.1", - "ioredis": "^5.4.1" + "ioredis": "^5.4.2", + "uploadthing": "^7.4.1" }, "peerDependenciesMeta": { "@azure/app-configuration": { @@ -34469,6 +34104,9 @@ "@capacitor/preferences": { "optional": true }, + "@deno/kv": { + "optional": true + }, "@netlify/blobs": { "optional": true }, @@ -34478,14 +34116,26 @@ "@upstash/redis": { "optional": true }, + "@vercel/blob": { + "optional": true + }, "@vercel/kv": { "optional": true }, + "aws4fetch": { + "optional": true + }, + "db0": { + "optional": true + }, "idb-keyval": { "optional": true }, "ioredis": { "optional": true + }, + "uploadthing": { + "optional": true } } }, @@ -34495,20 +34145,6 @@ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", "license": "ISC" }, - "node_modules/untun": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/untun/-/untun-0.1.3.tgz", - "integrity": "sha512-4luGP9LMYszMRZwsvyUd9MrxgEGZdZuZgpVQHEEX0lCYFESasVRvZd0EYpCkOIbJKHMuv0LskpXc/8Un+MJzEQ==", - "license": "MIT", - "dependencies": { - "citty": "^0.1.5", - "consola": "^3.2.3", - "pathe": "^1.1.1" - }, - "bin": { - "untun": "bin/untun.mjs" - } - }, "node_modules/update-browserslist-db": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", @@ -34593,9 +34229,9 @@ "license": "MIT" }, "node_modules/use-callback-ref": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.2.tgz", - "integrity": "sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/use-callback-ref/-/use-callback-ref-1.3.3.tgz", + "integrity": "sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==", "license": "MIT", "dependencies": { "tslib": "^2.0.0" @@ -34604,8 +34240,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -34614,9 +34250,9 @@ } }, "node_modules/use-sidecar": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.2.tgz", - "integrity": "sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/use-sidecar/-/use-sidecar-1.1.3.tgz", + "integrity": "sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==", "license": "MIT", "dependencies": { "detect-node-es": "^1.1.0", @@ -34626,8 +34262,8 @@ "node": ">=10" }, "peerDependencies": { - "@types/react": "^16.9.0 || ^17.0.0 || ^18.0.0", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0" + "@types/react": "*", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc" }, "peerDependenciesMeta": { "@types/react": { @@ -34723,7 +34359,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, "license": "Apache-2.0", "dependencies": { "spdx-correct": "^3.0.0", @@ -34815,9 +34450,9 @@ } }, "node_modules/viem": { - "version": "2.21.54", - "resolved": "https://registry.npmjs.org/viem/-/viem-2.21.54.tgz", - "integrity": "sha512-G9mmtbua3UtnVY9BqAtWdNp+3AO+oWhD0B9KaEsZb6gcrOWgmA4rz02yqEMg+qW9m6KgKGie7q3zcHqJIw6AqA==", + "version": "2.22.0", + "resolved": "https://registry.npmjs.org/viem/-/viem-2.22.0.tgz", + "integrity": "sha512-ZhBiSQYqXeoJHqvEEaRiA9zphO9hlpbGYv+I4F/cQOo7NsJQA+F1EbZT0c7BoUG9nOmKmxyF9b69S+iI2PESqA==", "funding": [ { "type": "github", @@ -34832,7 +34467,7 @@ "@scure/bip39": "1.5.0", "abitype": "1.0.7", "isows": "1.0.6", - "ox": "0.1.2", + "ox": "0.6.0", "webauthn-p256": "0.0.10", "ws": "8.18.0" }, @@ -35530,16 +35165,16 @@ } }, "node_modules/which-boxed-primitive": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.0.tgz", - "integrity": "sha512-Ei7Miu/AXe2JJ4iNF5j/UphAgRoma4trE6PtisM09bPygb3egMH3YLW/befsWb1A1AxvNSFidOFTB18XtnIIng==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "license": "MIT", "dependencies": { "is-bigint": "^1.1.0", - "is-boolean-object": "^1.2.0", - "is-number-object": "^1.1.0", - "is-string": "^1.1.0", - "is-symbol": "^1.1.0" + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" }, "engines": { "node": ">= 0.4" @@ -35549,24 +35184,24 @@ } }, "node_modules/which-builtin-type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.0.tgz", - "integrity": "sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.7", + "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", "has-tostringtag": "^1.0.2", "is-async-function": "^2.0.0", - "is-date-object": "^1.0.5", + "is-date-object": "^1.1.0", "is-finalizationregistry": "^1.1.0", "is-generator-function": "^1.0.10", - "is-regex": "^1.1.4", + "is-regex": "^1.2.1", "is-weakref": "^1.0.2", "isarray": "^2.0.5", - "which-boxed-primitive": "^1.0.2", + "which-boxed-primitive": "^1.1.0", "which-collection": "^1.0.2", - "which-typed-array": "^1.1.15" + "which-typed-array": "^1.1.16" }, "engines": { "node": ">= 0.4" @@ -35600,15 +35235,16 @@ "license": "ISC" }, "node_modules/which-typed-array": { - "version": "1.1.16", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.16.tgz", - "integrity": "sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==", + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.18.tgz", + "integrity": "sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==", "license": "MIT", "dependencies": { "available-typed-arrays": "^1.0.7", - "call-bind": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "for-each": "^0.3.3", - "gopd": "^1.0.1", + "gopd": "^1.2.0", "has-tostringtag": "^1.0.2" }, "engines": { @@ -35863,9 +35499,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.6.1.tgz", - "integrity": "sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.0.tgz", + "integrity": "sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==", "license": "ISC", "bin": { "yaml": "bin.mjs" @@ -35940,9 +35576,9 @@ } }, "node_modules/yup": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.5.0.tgz", - "integrity": "sha512-NJfBIHnp1QbqZwxcgl6irnDMIsb/7d1prNhFx02f1kp8h+orpi4xs3w90szNpOh68a/iHPdMsYvhZWoDmUvXBQ==", + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/yup/-/yup-1.6.1.tgz", + "integrity": "sha512-JED8pB50qbA4FOkDol0bYF/p60qSEDQqBD0/qeIrUCG1KbPBIQ776fCUNb9ldbPcSTxA69g/47XTo4TqWiuXOA==", "license": "MIT", "dependencies": { "property-expr": "^2.0.5", @@ -35989,21 +35625,21 @@ } }, "node_modules/zod": { - "version": "3.23.8", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.23.8.tgz", - "integrity": "sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.1.tgz", + "integrity": "sha512-muH7gBL9sI1nciMZV67X5fTKKBLtwpZ5VBp1vsOQzj1MhrBZ4wlVCm3gedKZWLp0Oyel8sIGfeiz54Su+OVT+A==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/colinhacks" } }, "node_modules/zod-to-json-schema": { - "version": "3.23.5", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.23.5.tgz", - "integrity": "sha512-5wlSS0bXfF/BrL4jPAbz9da5hDlDptdEppYfe+x4eIJ7jioqKG9uUxOwPzqof09u/XeVdrgFu29lZi+8XNDJtA==", + "version": "3.24.1", + "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.1.tgz", + "integrity": "sha512-3h08nf3Vw3Wl3PK+q3ow/lIil81IT2Oa7YpQyUUDsEWbXveMesdfK1xBd2RhCkynwZndAxixji/7SYJJowr62w==", "license": "ISC", "peerDependencies": { - "zod": "^3.23.3" + "zod": "^3.24.1" } }, "node_modules/zwitch": {