diff --git a/.circleci/config.yml b/.circleci/config.yml index 07bf4df0489..9bf6b163fd7 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -373,6 +373,17 @@ jobs: name: "Build and test" command: build l1-contracts + noir-contracts-build: + machine: + image: ubuntu-2204:2023.07.2 + resource_class: large + steps: + - *checkout + - *setup_env + - run: + name: Build + command: build noir-contracts-build | add_timestamps + yarn-project-base: machine: image: ubuntu-2204:2023.07.2 @@ -1221,6 +1232,7 @@ workflows: <<: *defaults - l1-contracts: *defaults + - noir-contracts-build: *defaults - mainnet-fork: *defaults @@ -1233,6 +1245,7 @@ workflows: - yarn-project: requires: - yarn-project-base + - noir-contracts-build <<: *defaults - yarn-project-formatting: requires: diff --git a/README.md b/README.md index 836b9a36caf..bf141bfea78 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,8 @@ To build the C++ code, follow the [instructions in the circuits subdirectory](./ To build Typescript code, make sure to have [`nvm`](https://github.com/nvm-sh/nvm) (node version manager) installed. -To build noir code build & use `yarn-project/noir-compiler`. +To build noir code, make sure that you are using the version from `yarn-project/noir-compiler/src/noir-version.json`. +Install nargo by running `noirup -v TAG_FROM_THE_FILE`. ## Continuous Integration diff --git a/build_manifest.yml b/build_manifest.yml index 5b3c8a5eb43..dbacc1f9262 100644 --- a/build_manifest.yml +++ b/build_manifest.yml @@ -83,6 +83,16 @@ circuits-x86_64-linux-clang-assert: l1-contracts: buildDir: l1-contracts +# We should move the noir source code to the top of the repo. +# It's currently under yarn-project which looks very circular, but it isn't. +# We're specific with our rebuild patterns as we depend on aztec.nr, but it doesn't have its own build. +noir-contracts-build: + buildDir: yarn-project + projectDir: yarn-project/noir-contracts + rebuildPatterns: + - ^yarn-project/noir-contracts/ + - ^yarn-project/aztec-nr/ + yarn-project-base: buildDir: yarn-project projectDir: yarn-project/yarn-project-base @@ -96,10 +106,11 @@ yarn-project-base: yarn-project: buildDir: yarn-project rebuildPatterns: - - ^yarn-project/.*\.(ts|js|cjs|mjs|json|html|md|sh|nr)$ + - ^yarn-project/.*\.(ts|js|cjs|mjs|json|html|md|sh)$ - ^yarn-project/Dockerfile dependencies: - yarn-project-base + - noir-contracts-build aztec-sandbox: buildDir: yarn-project @@ -180,6 +191,7 @@ docs: - ^.*.cpp$ - ^.*.ts$ - ^.release-please-manifest.json$ + - ^.*/noir-version.json$ - ^.*.nr$ dependencies: - yarn-project diff --git a/docs/README.md b/docs/README.md index 552ef3ea196..d07cc7f3981 100644 --- a/docs/README.md +++ b/docs/README.md @@ -136,7 +136,7 @@ import { AztecPackagesVersion } from "@site/src/components/Version"; ### `#include_noir_version` -This macros will be replaced inline with the required Noir version. This value is sourced from `yarn-project/noir-compiler/package.json`. +This macros will be replaced inline with the required nargo version, which is `0.11.1-aztec.0` at the time of these writing. This value is sourced from `yarn-project/noir-compiler/src/noir-version.json`. Alternatively, you can also use the `NoirVersion()` js function, which you need to import explicitly: diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 1c302558c36..945bcc5ccf5 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -82,15 +82,13 @@ const config = { name: "load-versions", async loadContent() { try { - const noirCompilerPackagePath = path.resolve( + const noirVersionPath = path.resolve( __dirname, - "../yarn-project/noir-compiler/package.json" + "../yarn-project/noir-compiler/src/noir-version.json" ); - const noirCompilerPackage = JSON.parse( - fs.readFileSync(noirCompilerPackagePath).toString() - ); - const noir = - noirCompilerPackage.dependencies["@noir-lang/noir_wasm"]; + const noirVersion = JSON.parse( + fs.readFileSync(noirVersionPath).toString() + ).tag; const aztecVersionPath = path.resolve( __dirname, "../.release-please-manifest.json" @@ -99,7 +97,7 @@ const config = { fs.readFileSync(aztecVersionPath).toString() )["."]; return { - noir, + noir: noirVersion, "aztec-packages": `aztec-packages-v${aztecVersion}`, }; } catch (err) { diff --git a/docs/src/preprocess/include_version.js b/docs/src/preprocess/include_version.js index 8ac661a4ae4..afa372e0a04 100644 --- a/docs/src/preprocess/include_version.js +++ b/docs/src/preprocess/include_version.js @@ -7,14 +7,13 @@ let versions; async function getVersions() { if (!versions) { try { - const noirCompilerPackagePath = path.resolve( + const noirVersionPath = path.resolve( __dirname, - "../../../yarn-project/noir-compiler/package.json" + "../../../yarn-project/noir-compiler/src/noir-version.json" ); - const noirCompilerPackage = JSON.parse( - fs.readFileSync(noirCompilerPackagePath).toString() - ); - const noir = noirCompilerPackage.dependencies["@noir-lang/noir_wasm"]; + const noirVersion = JSON.parse( + fs.readFileSync(noirVersionPath).toString() + ).tag; const aztecVersionPath = path.resolve( __dirname, "../../../.release-please-manifest.json" @@ -23,7 +22,7 @@ async function getVersions() { fs.readFileSync(aztecVersionPath).toString() )["."]; versions = { - noir, + noir: noirVersion, aztec: `aztec-packages-v${aztecVersion}`, aztec_short: aztecVersion, }; diff --git a/yarn-project/Dockerfile b/yarn-project/Dockerfile index 71c83227889..ee4f1455cb8 100644 --- a/yarn-project/Dockerfile +++ b/yarn-project/Dockerfile @@ -1,17 +1,21 @@ # This base dockerfile adds all the remaining source files, performs artifact generation, and builds the project. # See yarn-project-base/Dockerfile for deeper insight into why things are how they are. +FROM 278380418400.dkr.ecr.eu-west-2.amazonaws.com/noir-contracts-build as noir FROM 278380418400.dkr.ecr.eu-west-2.amazonaws.com/yarn-project-base as builder # Copy in the entire workspace. COPY . . -# Build the project. -# bash & perl are needed for noir-contracts -RUN apk add bash perl &&\ - yarn workspace @aztec/foundation build && \ - yarn workspace @aztec/noir-compiler build && \ - yarn workspace @aztec/noir-contracts noir:build:all && \ - yarn tsc -b +# Generate Noir contract TypeScript artifacts. +COPY --from=noir /usr/src/yarn-project/noir-contracts/target /usr/src/yarn-project/noir-contracts/target +# Run yarn build to have the json artifacts available for the types generator, generate types, build again. +RUN apk add perl +RUN cd /usr/src/yarn-project/noir-contracts && yarn build && ./scripts/types_all.sh && yarn build +# Cleanup to reduce final image size. +RUN rm -rf noir-contracts/target + +# Build the entire project. +RUN yarn tsc -b # Build aztec.js web artifact RUN cd /usr/src/yarn-project/aztec.js && yarn build:web @@ -33,4 +37,4 @@ RUN cp /usr/src/circuits/cpp/build-wasm/bin/aztec3-circuits.wasm /usr/src/yarn-p WORKDIR /usr/src/yarn-project -ENTRYPOINT ["yarn"] +ENTRYPOINT ["yarn"] \ No newline at end of file diff --git a/yarn-project/acir-simulator/package.json b/yarn-project/acir-simulator/package.json index df1fd8d4d83..74ff55000ce 100644 --- a/yarn-project/acir-simulator/package.json +++ b/yarn-project/acir-simulator/package.json @@ -33,7 +33,7 @@ "@aztec/circuits.js": "workspace:^", "@aztec/foundation": "workspace:^", "@aztec/types": "workspace:^", - "@noir-lang/acvm_js": "0.30.0-3919619.aztec", + "@noir-lang/acvm_js": "0.30.0", "levelup": "^5.1.1", "memdown": "^6.1.1", "tslib": "^2.4.0" diff --git a/yarn-project/aztec-sandbox/src/bin/index.ts b/yarn-project/aztec-sandbox/src/bin/index.ts index 2225c843dcf..463a2b65b35 100644 --- a/yarn-project/aztec-sandbox/src/bin/index.ts +++ b/yarn-project/aztec-sandbox/src/bin/index.ts @@ -52,7 +52,7 @@ async function main() { const packageJsonPath = resolve(dirname(fileURLToPath(import.meta.url)), '../../package.json'); const version = JSON.parse(readFileSync(packageJsonPath).toString()).version; - logger.info(`Setting up Aztec Sandbox v${version} (noir ${NoirVersion}), please stand by...`); + logger.info(`Setting up Aztec Sandbox v${version} (nargo ${NoirVersion.tag}), please stand by...`); const { pxe, node, stop, accounts } = await createAndInitialiseSandbox(); @@ -85,7 +85,7 @@ async function main() { logger.info( `${splash}\n${github}\n\n` .concat(...accountStrings) - .concat(`Aztec Sandbox v${version} (noir ${NoirVersion}) is now ready for use!`), + .concat(`Aztec Sandbox v${version} (nargo ${NoirVersion.tag}) is now ready for use!`), ); } diff --git a/yarn-project/aztec.js/src/artifacts/ecdsa_account_contract.json b/yarn-project/aztec.js/src/artifacts/ecdsa_account_contract.json index c022a634aec..263d59cc327 100644 --- a/yarn-project/aztec.js/src/artifacts/ecdsa_account_contract.json +++ b/yarn-project/aztec.js/src/artifacts/ecdsa_account_contract.json @@ -147,7 +147,7 @@ } ], "returnTypes": [], - "bytecode": "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", + "bytecode": "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", "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { diff --git a/yarn-project/aztec.js/src/artifacts/schnorr_account_contract.json b/yarn-project/aztec.js/src/artifacts/schnorr_account_contract.json index 50579ab585f..eb6e0525bb3 100644 --- a/yarn-project/aztec.js/src/artifacts/schnorr_account_contract.json +++ b/yarn-project/aztec.js/src/artifacts/schnorr_account_contract.json @@ -135,7 +135,7 @@ } ], "returnTypes": [], - "bytecode": "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", + "bytecode": "H4sIAAAAAAAA/+2dB3wVxRPHN3lp9N57R0B9l4QUFAgg2FAQReyahARRilR77x177733ggVs2LBh7733hl38z8Q52VyekPzfzLnzubvPZz6/l/cuezO7s7vfu9t37/XGxmzTyPyzZZCWkSbT27xsKCM7RbkFyaLCwqri/CqvwCtP5pdWlAxNFg6tKCrxSryhJUOn5pcUFFSVFJYUl1aUFidLvcKCKq96aGlBNRWczedjUiLuHCgjRyDuHMfjzoUycgXiznU87s5QRmeBuDs7Hnd3KKO7QNzdHY+7N5TRWyDu3o7H3R/K6C8Qd3/muP2N28+BjH6ibziu9aTyOoCtAutI2om0M2kX0q6k3Ui7k/Yg7Unai7Q3aR/SvqT9SPuTDiAd+B/pELB1qM2wXlpSvazjgF+DLL9aOdZeuP9gsARYnvn3rYw0md7myZVdVChY9lDBsosEyy4WLLtEsOxSwbLLc60yh5CuS7oe6fr+sUj9xM0H6574+3UjMtz8MvFvvx/lWO/5n2db7/mfZ1nv+Z8nrPf8zzOt9/zPM6z3/M9N4Pi4lZEm09xSnZck09ww5jZWHCZFvBkp6iUzRf35n2enqD+7PfzP7XbzP/fbrzm911igDpsyl4n+NzG1t4zA32XW66ZWnTQTiK+5QHzNGhBfcyu+FgLxtRSIr0UD4mtpxddKIL7WAvG1akB8ra342gjEx1xmzTWbtgJ+tuctswTboZ2pfzu0t9qhg0B8HZnLxDI6Wf77sfq+N7E+72jF1onXDy/DOqZfrv93J7nj1sTfeS3xd07hR+cQ47f9i32NfY19/W997fgf+8p/XK+4UeC4uK1pnrN96cLqy99jclfrWL5f/nGaWJ/bedOV14+atugSiN//2/Yv9jX2NfY19jX2NfY19jX2NfY19jX2NfY19jX2VYuv9r2wTMsX5nN7b03XFLqk8KWRQ77kOORLwiFfch3yJcshX/Ic8iXbIV8y/mNf7PURxnrP/9xeR+GPj/Y6im702l5H0Z1e2+soelhx+u/1pNf2Oope9DrPeq+39drXPvS6sfVeX3rdxHqvH71uZr3Xn163sN4bQK9bWe8NpNf2+pJ16HVb671B9Lqd9d5get3Bes+vS7vu/brsar3n12U36z2/Lrtb7/l12cN6z6/LntZ7fl32st7z69KuW78u+1jv+XXZ13rPX//Rz3rPr9/+1nv+OooB1nt+nQ+03rPXW/rv+e0wyHrPv6/v1y3WSWHG6s/9fe2cHZyiHP+13ff8Y5eRJtPbavqefZwy62//WI0tHwY54Eu2Q77kOeRLlkO+5DrkS8IhX3Ic8qWRQ75kpvBlIK8vNfco/TEeN3/MHWj54fs0wPKjP3OdYBn9UvjR3/LDP34/y4++vH7gMt9/5lDbj76WH/7x+1h+9Ob1owDL6JXCj96WH/7xe1l+9OT1o2ZtfY8UfvS0/PCPb3Nid14/atbhd0vhR3fLD//43Sw/mK9B1KzZ75LCj66WH/7xu1h+DOH1oxjLWDeFH0MsP/zjr2v5sR6vHzVjmV++/51df7zwj5Ww9ulH0ITM2ch63+ZMfw2+zaj+enybb/21+TYb59Nrm6sL6LXN5P6XRmye98fbda33/Hlyfes9nymS1ns+f3nWe/68lm+95zNAgfWez0u+T7n0v8xrQPP/3zWg9poa//8F1nCucc2Qf6wmlg+t5HwpafIvx/Y3+9oi8/rYNZ77d0jhSxuHfGnpkC/NHPKlsUO+5DrkS5ZDvrRzyJfWDvnSwiFfmjrkSyOHfMlxyJeEQ760dciX5g750sQhX/Ic8iXbIV8y/mNf/u3+kv+5fa3eZ2T7nk6nQEz4nr/evqn1nn8OZt/n8c+nm1vv+edv9r0f//y/pfWef+7X2novM0Vs/jjV0XrP55FO1nt+TnS23vPHW/v80ecq+36Qn9v2uac/b9j3g/x6833HY7ZP1I0zM0Wcdjn+azt3/GOXkSbT22pyxz5OmfW3fyz7/kh3B3zJdsiXPId8aeKQL80d8qWtQ74kHPIlxyFfGjnkS1OHfGnhkC+tHfKlnUO+ZDnkS65DvjR2yJdmDvnS0iFf2jjkS2YKX5jv+dXc5rHv+fncvbZ7fszfqU4G1z/3tI5rf4+Z+5kWWEbHFPF3suIPfqcc5+Y2gXrCMe/ljNV+SuYMln+w5YN/rIS1z9sZq/16PWN1LP59L3tNoH/eaN8TC55T5srElbTjwq1nirgyTO373j2t/+lixe7v84EV+w+Zq/+P2fea+/b2uWvQb4F8rbndan9fwS/frkP7PmOq/twxsJ/A/Vgv6Id//PbWe71S+NnB8rNnYD+BtSg1+Wf7kWEdt7f1fu8UsdjfB+Feq2OvJbZ9s7cy63Vfy5f+vL4U2OuV6+NLf8uXAby+JKXWia1j+e/H6vvexPp8oBWbxNq5AYE69f+2/Yt95fe1kfVen//YlyaWD/3kfClo8i/10DbQJjiPNrXmUeb1bwX2mOuzTfAaVcLa5+fM1X61pNc4X/hjtN1+zL7WjBX2Wr3eAT/teUtwrV7N/NophR+puN2ep5jvtdTwSPsUftjzuH98+7l7EvOl7Qdu/9F8mZ/OfMk8t+Xb41p9fLHH4UECvqzTAF/steHMa0zz7e/g1MeXIZYvzOtM8+21ovXxZT3Ll6SAL+s3wBd7nai/PtTu5/m8/tXMn17AF/s51rg1sXzoKehLkxTHtuuhnwP14PvQ7T+shwEO1IPvQ6f/sB7WcaAefB86/4f1MNiBevB96Pgf1sO6DtSD70Pmf1gP6ztQD74PvUKuh8bWe/Ya3QLeY5fYx7SvVRZYxyxkjhfLLGKOA/Mm+MMla+KTIiu+El5faq4dllrll1nHsI87jLle7eNmkPnH8N9PWK9n+J3b2g83P+98nzEXi1PsZ78eGvifJtbnxcIx2z/OUmb97R8LrweUW7EWp/Db7vP+5/aP7Ng/XOPv29WKizmHavLZ9hO3NeVzieULcx3X5PMGVvll1jHs427Ie1zPPq6fz/4x/PcT1uuDrDbecPXLf9rY9xnzuTTFfvbrYL43sT4vFY7Z7ldl1t/+sTCf51mxlqbwu8jy2/+8p7Wf3Wf8fe18Zs6hmnwO/tDRmvJ5mOULcx3X5PNwq/wy6xj2cUfwHtezj+vns38M//2E9XqR1cYjVr/8p419nzGfN0ixn/06mO9NrM83EI7Z7ldl1t/+sTCfj7Ri3SCF3/a84n9uX2+1+4y/r53PzDlUk8+2n7itKZ83tHxhruOafB5plV9mHWPDwPuMx/Xs4/r57Jftv5+wXl+ambpu/Db2fcZ8Hp5iP/t1MN+bWJ8H+zZ3zCMCPgXbE/P5LCvW4Sn8tucV/3P7ur3dZ/x97XxmzqGafLb9xG1N+TzC8qWM15eafB4VKL8sxXFH8x7Xs4/r57N/DP/9hPX6dquNR69++U8bl5FiPo9MsZ/9OpjvTazPRwrHXGb5UWb97R8L8/kaK9aRKfy25xX/c/s3Oew+4+9r53MZb1w1+Wz7idua8rnM8oW5jmvyeUwg1tEpjrsR73E9+7h+PvvH8N9PWK8ftdp4o9Uv/2lj32fM51Ep9rNfB/O9ifX5KOGY7X5VZv3tHwvz+V4r1lEp/LbnFf/zjoFyTWBfO5+Zc6gmn20/cVtTPo+2fGGu45p8HmuVX2Ydwz7uON7jevZx/Xz2j+G/n7Bev2q18bjVL/9pY99nzOcxKfazXwfzvYn1+RjhmO1+VWb97R8L8/lpK9YxKfwus/z2P7f+pU6fwc3OZ+Ycqsln20/c1pTPG1m+MNdxTT5vbJVfZh3DPu4mvMf17OP6+ewfw38/Yb3+3GqwTVa//KeNfZ8xn8em2M9+Hcz3JtbnY4VjtvtVmfW3fyzM53esWMem8NueV/zPe5FibvntZl87HysQy7/1zbGWf+0Cvgv4UtIkxbGF1znXXCa21xcH1znb6+G7Wz69bK0770nv22ta7TL99V69rffsdc7B7wPb65vs8Yt5vXVBo4AfuK1p/LLvLzOvqa4Zv+x1S2XWMezj9uM9rmcf1x+//GP47yes1439L3Wa2uugepL6PmMbdkixn/06uG7cXtPQQThmez1ZmfW3fyzM8b+s8SvVeve2lt/+5/ZaDO5nH2AZ9vWFtgHf7HVy9jpJ5vV4a6w/+3nYfQL1JeBLQZMUx7bXufr1FVzn2oTVD68Yy2zGXKb93Gt/W9P45B8/z6z+rv60qvlbzp5fNS/D+n+/THsdp7/ZPJmw/ifL1PUjO8V7OSneyzV1tzzrdSPrdRPr/xoH/LSf720/h8P32f8s19StJ9ZO6G+ZgbILkkWFhVXF+VVegVeezC+tKBmaLBxaUVTilXhDS4ZOzS8pKKgqKSwpLq0oLU6WeoUFVV710NKCaio8k9HP9fnKStoxZzDXp8dYf36y+YmLCztXmb8XwqCuR1pzLFN7y2Buy0LDO+DmWvlWSHEUWPEMpbjrJL5AmyUNL/j4G97E9AeaVANRjkAsJnCcYP01N8KDiUTjFAmUW2z4OodU3MX8bVRr8OMe8PMZyyox/ANOfQbSUrN6lg8OUKXWfsNS7JdJnw8jxc4fvCPLXeecebzhf1Tnw9dQ58Ot/Uasoc5HWHU+MsV+Sfp8JGnCilVibNnA8E/C7+TxjgPccfv5wx33u3ky41+C2c9RjHXJ2NYeZ/2FBWWD+cpK2meLfpl4tRavfuIVSrw6iVd88ao2XvHdFGwzsM3BxoNtAbYl2ASwiWBbgU0C2xpsG7DJYNuCTQHbDmx7sB3AdgTbCWxnsF3AdgXbDawcrAKsEmwqWBVYNdg0sN3BpoPtAbYn2AywmWCzwGaD7QU2B2wu2Dyw+WALwBaC7Q22D9i+YPuB7Q92ANiBYAeZv7+tegjYoab2Ux5tOMXNPustY2oDAdhNZlu+2mfd9hk0fp7FetzCpP3USn9b05UM//h5ZvVZPVzJGLVg/u5Tps+fVTWv1vWM4KiUkSIy+3mY9m/J+Z/7n4leO0iYuqljO8x1nNFGZvhnrQ/v7+sd/nYY6eFWY2RY9VVzQTZFnWVYrzNpn8w17JPxL+X8W3cQSwY/OAz8JytYrIC8wDETzMe2E+T/ncOrqnFLeocZPh443MgkbiZz/XHGfEStsmDf8vzCoqqhyaKqktKSqtLi6qHFycry6uqpxcnCyopkRUVhUbLAK6iuKM5PVuSXwmFLq4ZWejV+hcUaRxh+1sDtSBNfAGJpnCMFyj3KuH0BCOM+ir+NUvrKMdAdJVDu0Ya3Y2InxDJ9gAuDXsYYmUmANS8C9HIM6bEmYvSCgdv0ghUgTS92gqRLL8cYvs53rNFBL5wxH2f00ctxhneQ9LfjTUwvLI1zvEC5Jxi36QXjPoG/jUTo5VjylbvcEw1vx8ROiGWGSS8bGZlJgDUvAvRyEunJJmL0goHb9IIVIE0vdoKkSy8nGb7Od7LRQS+cMS8y+uhlkeEdJP3tFBPTC0vjnCJQ7qnGbXrBuE/lbyMRejmZfOUu9zTD2zGxE2KZYdLLWCMzCbDmRYBeTic9w0SMXjBwm16wAqTpxU6QdOnldMPX+c4wOuiFM+YzjT56OdPwDpL+dpaJ6YWlcc4SKPds4za9YNxn87eRCL2cQb5yl3uO4e2Y2AmxzDDpZZyRmQRY8yJAL+eSnmciRi8YuE0vWAHS9GInSLr0cq7h63znGR30whnz+UYfvZxveAdJf7vAxPTC0jgXCJR7oXGbXjDuC/nbSIReziNfucu9yPB2TOyEWGaY9LKxkZkEWPMiQC8Xk15iIkYvF5va9IIVIE0vdoKkSy8XG77Od4nRQS+cMV9q9NHLpYZ3kPS3y0xMLyyNc5lAuZcbt+kF476cv41E6OUS8pW73CsMb8fETohlhkkvmxiZSYA1LwL0ciXpVSZi9IKB2/SCFSBNL3aCpEsvVxq+zneV0UEvnDFfbfTRy9WGd5D0t2tMTC8sjXONQLnXGrfpBeO+lr+NROjlKvKVu9zrDG/HxE6IZYZJL5samUmANS8C9HI96Q0mYvSCgdv0ghUgTS92gqRLL9cbvs53g9FBL5wx32j00cuNhneQ9LebTEwvLI1zk0C5Nxu36QXjvpm/jUTo5QbylbvcWwxvx8ROiGWGSS+bGZlJgDUvAvRyK+ltJmL0goHb9IIVIE0vdoKkSy+3Gr7Od5vRQS+cMd9u9NHL7YZ3kPS3O0xMLyyNc4dAuXcat+kF476Tv41E6OU28pW73LsMb8fETohlhkkvmxuZSYA1LwL0cjfpYhMxesHAbXrBCpCmFztB0qWXuw1f51tsdNALZ8z3GH30co/hHST97V4T0wtL49wrUO59xm16wbjv428jEXpZTL5yl3u/4e2Y2AmxzDDpZbyRmQRY8yJAL0tIl5qI0QsGbtMLVoA0vdgJki69LDF8nW+p0UEvnDE/YPTRywOGd5D0twdNTC8sjfOgQLkPGbfpBeN+iL+NROhlKfnKXe7DhrdjYifEMsOkly2MzCTAmhcBenmEdJmJGL1g4Da9YAVI04udIOnSyyOGr/MtMzrohTPmR40+ennU8A6S/vaYiemFpXEeEyj3ceM2vWDcj/O3kQi9LCNfuct9wvB2TOyEWGaY9LKlkZkEWPMiQC9Pki43EaMXDNymF6wAaXqxEyRdennS8HW+5UYHvXDG/JTRRy9PGd5B0t+eNjG9sDTO0wLlPmPcpheM+xn+NhKhl+XkK3e5zxrejomdEMsMk14mGJlJgDUvAvTyHOkKEzF6wcBtesEKkKYXO0HSpZfnDF/nW2F00AtnzM8bffTyvOEdJP3tBRPTC0vjvCBQ7ovGbXrBuF/kbyMRellBvnKX+5Lh7ZjYCbHMMOllopGZBFjzIkAvL5O+YiJGLxi4TS9YAdL0YidIuvTysuHrfK8YHfTCGfOrRh+9vGp4B0l/e83E9MLSOK8JlPu6cZteMO7X+dtIhF5eIV+5y33D8HZM7IRYZpj0spWRmQRY8yJAL2+SvmUiRi8YuE0vWAHS9GInSLr08qbh63xvGR30whnz20YfvbxteAdJf3vHxPTC0jjvCJT7rnGbXjDud/nbSIRe3iJfuct9z/B2TOyEWGaY9DLJyEwCrHkRoJf3ST8wEaMXDNymF6wAaXqxEyRdennf8HW+D4wOeuGM+UOjj14+NLyDpL99ZGJ6YWmcjwTK/di4TS8Y98f8bSRCLx+Qr9zlfmJ4OyZ2QiwzTHrZ2shMAqx5EaCXT0k/MxGjFwzcphesAGl6sRMkXXr51PB1vs+MDnrhjPlzo49ePje8g6S/fWFiemFpnC8Eyv3SuE0vGPeX/G0kQi+fka/c5X5leDsmdkIsM0x62cbITAKseRGgl69JvzERoxcM3KYXrABperETJF16+drwdb5vjA564Yz5W6OPXr41vIOkv31nYnphaZzvBMr93rhNLxj39/xtJEIv35Cv3OX+YHg7JnZCLDNMeplsZCYB1rwI0MuPpCtNxOgFA7fpBStAml7sBEmXXn40fJ1vpdFBL5wx/2T00ctPhneQ9LefTUwvLI3zs0C5vxi36QXj/oW/jUToZSX5yl3ur4a3Y2InxDLDpJdtjcwkwJoXAXr5jfR3EzF6wcBtesEKkKYXO0HSpZffDF/n+93ooBfOmP8w+ujlD8M7SPrbnyamF5bG+VOg3FXGbXrBuFfxt5EIvfxOvnKX+5fh7Zj+jBomvUwxMpMAa14E6MWvhIyMiNELHsGmF6wAaXqxEyRdekHH0y3L73wZGTrohTPmzAx99JKZwTtI/pPnGTG9sDQOViR3uVmMSS8Vd1YGexuJ0EsG+cpdbjZzx8ROiGWGSS/bGZlJgDUvAvSSQ5WQGzV6yQnQS24I9GInSLr0ksM4qOUqoRfOmPMU0kueEL00iumFp3EaCdBLY8fpBeNurIRecslX7nKbCNBLk5DpZXsjMwmw5kWAXppSJTSLGr00DdBLsxDoxU6QdOmlKeOg1kwJvXDG3FwhvTQXopcWMb3wNE4LAXpp6Ti9YNwtldBLM/KVu9xWAvTSKmR62cHITAKseRGgl9ZUCW2iRi+tA/TSJgR6sRMkXXppzTiotVFCL5wxt1VIL22F6KVdTC88jdNOgF7aO04vGHd7JfTShnzlLreDAL10CJledjQykwBrXgTopSNVQqeo0UvHAL10CoFe7ARJl146Mg5qnZTQC2fMnRXSS2cheukS0wtP43QRoJeujtMLxt1VCb10Il+5y+0mQC/dQqaXnYzMJMCaFwF66U6V0CNq9NI9QC89QqAXO0HSpZfujINaDyX0whlzT4X00lOIXnrF9MLTOL0E6KW34/SCcfdWQi89yFfucvsI0EufkOllZyMzCbDmRYBe+lIl9IsavfQN0Eu/EOjFTpB06aUv46DWTwm9cMbcXyG99BeilwExvfA0zgABehnoOL1g3AOV0Es/8pW73HUE6GWdkOllFyMzCbDmRYBeBlElDI4avQwK0MvgEOjFTpB06WUQ46A2WAm9cMY8RCG9DBGil3VjeuFpnHUF6GU9x+kF415PCb0MJl+5y11fgF7WD5ledjUykwBrXgToxR/FvKjRSzJAL14I9GInSLr0kmQc1Dwl9MIZc75CeskXopeCmF54GqdAgF4KHacXjLtQCb145Ct3uUMF6GVoyPSym5GZBFjzIkAvRVQJxVGjl6IAvRSHQC+7GT56KWIc1IqV0AtnzCUK6aVEiF5KY3rhaZxSAXoZ5ji9YNzDlNBLMfnKXe4GAvSyQcj0Um5kJgHWvAjQy4ZUCcOjRi8bBuhleAj0YidIuvSyIeOgNlwJvXDGPEIhvYwQopeRMb3wNM5IAXopc5xeapJSCb0MJ1+5yx0lQC+jQqaXCiMzCbDmRYBeRlMljIkavYwO0MuYEOjFTpB06WU046A2Rgm9cMa8kUJ62UiIXsbG9MLTOGMF6GWc4/SCcY9TQi9jyFfucjcWoJeNQ6aXSiMzCbDmRYBeNqFK2DRq9LJJgF42DYFe7ARJl142YRzUNlVCL5wxb6aQXjYTopfNY3rhaZzNBehlvOP0gnGPV0Ivm5Kv3OVuIUAvW4RML1ONzCTAmhcBetmSKmFC1OhlywC9TAiBXuwESZdetmQc1CYooRfOmCcqpJeJQvSyVUwvPI2zlQC9THKcXjDuSUroZQL5yl3u1gL0snXI9FJlZCYB1rwI0Ms2VAmTo0Yv2wToZXII9GInSLr0sg3joDZZCb1wxrytQnrZVohepsT0wtM4UwToZTvH6QXj3k4JvUwmX7nL3V6AXrYPmV6qjcwkwJoXAXrZgSphx6jRyw4BetkxBHqxEyRdetmBcVDbUQm9cMa8k0J62UmIXnaO6YWncXYWoJddHKcXjHsXJfSyI/nKXe6uAvSya8j0Ms3ITAKseRGgl92oEsqjRi+7BeilPAR6sRMkXXrZjXFQK1dCL5wxVyiklwoheqmM6YWncSoF6GWq4/SCcU9VQi/l5Ct3uVUC9FIVMr3sbmQmAda8CNBLNVXCtKjRS3WAXqaFQC92gqRLL9WMg9o0JfTCGfPuCulldyF6mR7TC0/jTBeglz0cpxeMew8l9DKNfOUud08BetkzZHqZbmQmAda8CNDLDKqEmVGjlxkBepkZAr3YCZIuvcxgHNRmKqEXzphnKaSXWUL0MjumF57GmS1AL3s5Ti8Y915K6GUm+cpd7hwBepkTMr3sYWQmAda8CNDLXKqEeVGjl7kBepkXAr3YCZIuvcxlHNTmKaEXzpjnK6SX+UL0siCmF57GWSBALwsdpxeMe6ESeplHvnKXu7cAvewdMr3saWQmAda8CNDLPlQJ+0aNXvYJ0Mu+IdCLnSDp0ss+jIPavkrohTPm/RTSy35C9LJ/TC88jbO/AL0c4Di9YNwHKKGXfclX7nIPFKCXA0OmlxlGZhJgzYsAvRxElXBw1OjloAC9HBwCvdgJki69HMQ4qB2shF44Yz5EIb0cIkQvh8b0wtM4hwrQy2GO0wvGfZgSejmYfOUu93ABejk8ZHqZaWQmAda8CNDLEVQJR0aNXo4I0MuRIdCLnSDp0ssRjIPakUrohTPmoxTSy1FC9HJ0TC88jXO0AL0c4zi9YNzHKKGXI8lX7nKPFaCXY0Oml1lGZhJgzYsAvRxHlXB81OjluAC9HB8CvdgJki69HMc4qB2vhF44Yz5BIb2cIEQvJ8b0wtM4JwrQy0mO0wvGfZISejmefOUu92QBejk5ZHqZbWQmAda8CNDLIqqEU6JGL4sC9HJKCPRiJ0i69LKIcVA7RQm9cMZ8qkJ6OVWIXk6L6YWncU4ToJfTHacXjPt0JfRyCvnKXe4ZAvRyRsj0speRmQRY8yJAL2dSJZwVNXo5M0AvZ4VAL3aCpEsvZzIOamcpoRfOmM9WSC9nC9HLOTG98DTOOQL0cq7j9IJxn6uEXs4iX7nLPU+AXs4LmV7mGJlJgDUvAvRyPlXCBVGjl/MD9HJBCPRiJ0i69HI+46B2gRJ64Yz5QoX0cqEQvVwU0wtP41wkQC8XO04vGPfFSujlAvKVu9xLBOjlkpDpZa6RmQRY8yJAL5dSJVwWNXq5NEAvl4VAL3aCpEsvlzIOapcpoRfOmC9XSC+XC9HLFTG98DTOFQL0cqXj9IJxX6mEXi4jX7nLvUqAXq4KmV7mGZlJgDUvAvRyNVXCNVGjl6sD9HJNCPRiJ0i69HI146B2jRJ64Yz5WoX0cq0QvVwX0wtP41wnQC/XO04vGPf1SujlGvKVu9wbBOjlhpDpZb6RmQRY8yJALzdSJdwUNXq5MUAvN4VAL3aCpEsvNzIOajcpoRfOmG9WSC83C9HLLTG98DTOLQL0cqvj9IJx36qEXm4iX7nLvU2AXm4LmV4WGJlJgDUvAvRyO1XCHVGjl9sD9HJHCPRiJ0i69HI746B2hxJ64Yz5ToX0cqcQvdwV0wtP49wlQC93O04vGPfdSujlDvKVu9zFAvSyOGR6WWhkJgHWvAjQyz1UCfdGjV7uCdDLvSHQi50g6dLLPYyD2r1K6IUz5vsU0st9QvRyf0wvPI1zvwC9LHGcXjDuJUro5V7ylbvcpQL0sjRketnbyEwCrHkRoJcHqBIejBq9PBCglwdDoBc7QdKllwcYB7UHldALZ8wPKaSXh4To5eGYXnga52EBennEcXrBuB9RQi8Pkq/c5S4ToJdlIdPLPkZmEmDNiwC9PEqV8FjU6OXRAL08FgK92AmSLr08yjioPaaEXjhjflwhvTwuRC9PxPTC0zhPCNDLk47TC8b9pBJ6eYx85S53uQC9LA+ZXvY1MpMAa14E6OUpqoSno0YvTwXo5ekQ6MVOkHTp5SnGQe1pJfTCGfMzCunlGSF6eTamF57GeVaAXp5znF4w7ueU0MvT5Ct3uSsE6GVFyPSyn5GZBFjzIkAvz1MlvBA1enk+QC8vhEAvdoKkSy/PMw5qLyihF86YX1RILy8K0ctLMb3wNM5LAvTysuP0gnG/rIReXiBfuct9RYBeXgmZXvY3MpMAa14E6OVVqoTXokYvrwbo5bUQ6MVOkHTp5VXGQe01JfTCGfPrCunldSF6eSOmF57GeUOAXt50nF4w7jeV0Mtr5Ct3uW8J0MtbIdPLAUZmEmDNiwC9vE2V8E7U6OXtAL28EwK92AmSLr28zTiovaOEXjhjflchvbwrRC/vxfTC0zjvCdDL+47TC8b9vhJ6eYd85S73AwF6+SBkejnQyEwCrHkRoJcPqRI+ihq9fBigl49CoBc7QdKllw8ZB7WPlNALZ8wfK6SXj4Xo5ZOYXnga5xMBevnUcXrBuD9VQi8fka/c5X4mQC+fhUwvBxmZSYA1LwL08jlVwhdRo5fPA/TyRQj0YidIuvTyOeOg9oUSeuGM+UuF9PKlEL18FdMLT+N8JUAvXztOLxj310ro5QvylbvcbwTo5ZuQ6eVgIzMJsOZFgF6+pUr4Lmr08m2AXr4LgV7sBEmXXr5lHNS+U0IvnDF/r5Bevheilx9ieuFpnB8E6OVHx+kF4/5RCb18R75yl7tSgF5WhkwvhxiZSYA1LwL08hNVws9Ro5efAvTycwj0cojho5efGAe1n5XQC2fMvyikl1+E6OXXmF54GudXAXr5zXF6wbh/U0IvP5Ov3OX+LkAvv4dML4camUmANS8C9PIHVcKfUaOXPwL08mcI9GInSLr08gfjoPanEnrhjHmVQnpZJUQvf8X0wtM4fwnQC7aIX5aL9LLKni4M70DCTRl/kq/c5WZk8tMLltnIf726etnbbzBjm/WkcjLB6QRYFlg2WA5YLlgexgTWGKwJWFOwZmDNwVqAtQRrBdYarA1YW7B2YO3BOoB1BOsE1hmsC1hXsG5g3cF6gPUE60UV5tcj+pJnVv+dCPydFfg7O/B3TuDv3MDfeYG/GwX+bhz4u0ng76aBv5sF/m4e+LtF4O+Wgb9bBf5uHfi7TeDvtoG/2wX+bh/4u0Pg746BvzsF/u4c+LtL4O+ugb+7Bf7uHvi7R+DvnoG/e2XKg5zdZ9IdOzIZx/cP8mRALlh/6cJrIpOnLGyLLMb6+9D5+qsp2stOP+Z8itnLYay/j1yuv8J//PRy04s5acXs5THW38eu1l9+LT+9Rv9/zMlAzF5jxvr7xMH6K6qu46fX5P+LuSRFzF5Txvr71LX6K0npp9es4TEX/0vMXnPG+vvMpfor/lc/vRYNizl/DTF7LRnr73NX6q94jX56reofc+VaYvZaM9bfFy7UX/Fa/fTa1C/mZD1i9toy1t+X/3X9Jevlp9du7TEPrWfMXnvG+vvqv6y/wnr76XVYY8yF1Q2I2evIWH9f/1f1V9wgP71O/x5zSQNj9joz1t83/0H9lVY32E+vS+qYk/9HzF5Xxvr7Nuz6S/5ffnrd6sbs/Z8xe90Z6++7MOtv6v/tp9ejdswFacTs9WSsv+9Dqr/86rT89Hpl8l1LtK/ZpVt/P4RUf8n0No/xOpv3EWP9/aik/hivE3mfMNbfSiX1x3idw/uMsf5+UlJ/jOfp3heM9fezkvpjPM/0vmKsv1+U1B/jeZL3DWP9/aqk/hg53/uOsf5+U1J/jJzq/cBYf78rqT9GzvJWMtbfH0rqj5ETvJ8Z6+9PJfXHOM95vzLW3yol9cc4Tnu/M9bfX0rqj3Gc8f5krD9ccKih/hj7iceYMx5n/eF6NvxGxhCwVWDrkvrlH27+Xud2LOnJpGeQnkd6CelVpDeQ3ka6mHQp6TLS5aQrSF8hfYv0A9LPSL8hXUn6O2kGfbEil7QZaRvSTqQ9SPuRDib1SItJh5OOId2UdALpZNIdSctJp5HOJJ1Hui/pwaRHkh5PegrpWaQXkF5Geg3pTaR3kN5L+iDpY6T+Dwv7P9Hn/9iN/9h4/wGs/qPM/IeC+F+v9b+o0pPywF/v2JPUXx/pr5v011P66yz99Zf+ukx/vaa/jtNf3+mv+/TXg/rrRP31o/66Un+9qb8O1V+f6q9b9dez+utc/fWv/rpYf72sv47WX1/rr7v11+P663T99bv+ut7emabWxr0+ujfj9e2wvijSyfCOQ/7WJzP+oghL42BFcpfblzFRpeLum8neRmv8xlm69cBZp/0YbxolzOpOZ28uDySSfnZU4mcHwz8wozaj1/0hxwaADQRbB2wQ2GCwIWDrgq0Htj4YfgfYA8sHa0H/i182Cg7u/ten7bpoZOp+nTrHel3GFJ/AZJJEoM6z4jCBeJtTLDm8x52Kx8o2tbfgpFWWoj5rAI1eV82as6BqQdXEBRUzpleOWzCrcv702bPGlM+YYSeCfxA/IRIpggy+n2VVSC69zrbe8/8v19IM7p6Bo2NnU7c2kmluYX35f2CmzAjEXB/5dl0U0B+FmRH78j8G/mfAGa5jYGUWZvJ/x7RQKMG4r80MZECmv78nVl1dkOl+/WUy1x9nzEOtsrySgvz84gLcr2QqpOnUyvyS/PypFYXJymR5ZX5VaaFXWl2YX1hQObWyAsos96qT1eWVpdUlf/sV1rnrUMZ2sv0tis9deRqnSODctdjxc1eMu1jo3FVioigWmIBKmDsmVieWmWnCe0TTOgoprZT+GBY1SisVpDSszGECnWSYEkpbh5HSSjPdrz9uSuOMeQOFlLaBEKVtGFMaT+NsKEBpwx2nNIx7uBJKG0a+cpc7QoDSRoRMaYMUUtpI+qMsapQ2UpDSsDLLBDpJmRJKG8RIaSMz3a8/bkrjjHmUQkobJURpo2NK42mc0QKUNsZxSsO4xyihtDLylbvcjQQobaOQKW19hZQ2lv4YFzVKGytIaViZ4wQ6yTgllLY+I6WNzXS//rgpjTPmjRVS2sZClLZJTGk8jbOJAKVt6jilYdybKqG0ceQrd7mbCVDaZiFTWlIhpW1Of4yPGqVtLkhpWJnjBTrJeCWUlmSktM0z3a8/bkrjjHkLhZS2hRClbRlTGk/jbClAaRMcpzSMe4ISShtPvnKXO1GA0iaGTGmeQkrbiv6YFDVK20qQ0rAyJwl0kklKKM1jpLStMt2vP25K44x5a4WUtrUQpW0TUxpP42wjQGmTHac0jHuyEkqbRL5yl7utAKVtm1mXHLjaDL+L2k+gHqZkyrZ/Mr2t5hv/UwTi7tHI7bzHb85LxN2zkQ5wYGwfr2cjt3O8o1CO93E8xwcI5XhfJTnO2D5eX8dzvINQjg9wPMfzhXJ8oJIcZ2wfb6DjOT6O2trwlivi63hFvk4K0de0fz7ZyPT3wY7n/mChcW6IknGOsX28IY639RChtl4/pLZ26NzR44wZ2wMfhuVfGES+xkf0FpIOIy0jbQy2HbVjrln9QK3B9PkQ0nVJ1yMdRzqedBJpK7DtrfL8i5EDzd+fBxXvmOzQwP13bOD+OzVw/50buP8uDdx/1wbuv1sD9y9v4P4VDdy/soH7T23g/lUN3L+6gftPa+D+uzdw/+nW/pn/sn8e2B713G/Peu43o577zaznfrPqud/seu63Vz33m1PP/ebWc7959dxvfj33W1DP/RbWc7+967nfPvXcb19rvym03/Y0Pudnps7boO5A++1IuhPpzqS7kO5KuhtpOWkFaSXpVNIq0mrSaaS7k04n3YN0T9IZpDNJZ5HOJt2LdA7pXNJ5pPNJF5AuJN2bdB/SfetZP7GGo4PB9ksx/vandtqOdD/S1mD7+52DNm7268xY1gGZfBwZP4G5tp9RfwLzJfT6QMixg8AOBjsE7FCww8AOBzsC7Eiwo8COBjsG7Fiw48COBzsB7ESwk8BOBlsEdgrYqWCngZ0OdgbYmWBngZ0Ndg7YuWDngZ0PdgHYhWAXgV0MdgnYpWCXgV0OdgXYlWBXgV0Ndg3YtWDXgV0PdgPYjWA3gd0MdgvYrWC3gd0OdgfYnWB3gd0NthjsHrB7we4Dux9sCdhSsAfAHgR7COxhsEfAloE9CvYY2ONgT4A9CbYc7Cmwp8GeAXsW7DmwFWDPg70A9iLYS2Avg70C9irYa2Cvg70B9ibYW2Bvg70D9i7Ye2Dvg30A9iHYR2Afg30C9inYZ2Cfg30B9iXYV2Bfg30D9i3Yd2Dfg/0A9iPYSrCfwH4G+wXsV7DfwH4H+wPsT7BVYH9l/j1AZIBlgiXAssCywXLAcsHywBqBNQZrAtYUrBlYc7AWYC3BWoG1BmsD1hasHVh7sA5gHcE6gXUG6wLWFaxbIn6itx2vzBO9y710nujdhl5Xls+YMXHu9IXl86v853nbQ4pfvD+0qHqW9wGZdeshmeYW1mpcHLu5fE7hLlfZtVbjdqcs6JGI2GpcDFxqNS5WJhr7YpiETIJxr8a1O0K6q3G7J9yvv0zm+uOMuadVlpbVuD0Z28n2t1ciXo3L0ji9Evzl9mZMeqm4eyfY20jk7nYP8pV9pRpzx8ROiGXSSU8olHaIQkrrS3nXL2qU1leQ0rAy+wl0kn5KKO0QRkrrm3C//rgpjTPm/goprb8QpQ2IKY2ncQYIUNpAxykN4x6ohNL6ka/c5a4jQGnrhExphyqktEGUd4OjRmmDBCkNK3OwQCcZrITSDmWktEEJ9+uPm9I4Yx6ikNKGCFHaujGl8TTOugKUtp7jlIZxr6eE0gaTr+yr6AUobf2QKe0ohZSWpLzzokZpSUFKw8r0BDqJp4TSjmKktGTC/frjpjTOmPMVUlq+EKUVxJTG0zgFApRW6DilYdyFSijNI1+5yx0qQGlDQ6a0oxVSWhHlXXHUKK1IkNKwMosFOkmxEko7mpHSihLu1x83pXHGXKKQ0kqEKK00pjSexikVoLRhjlMaxj1MCaUVk6/c5W4gQGkbhExpxyiktA0p74ZHjdI2FKQ0rMzhAp1kuBJKO4aR0jZMuF9/3JTGGfMIhZQ2QojSRsaUxtM4IwUorcxxSqtJSiWUNpx85S53lACljQqZ0roJTQLMeVGL0kZT3o2JGqWNFqQ0rMwxAp1kjBJK68Yw4PqUNjrhfv1xUxpnzBsppLSNhChtbExpPI0zVoDSxjlOaRj3OCWUNoZ85S53YwFK2zgh94sr/lNDuOthk4Rs+yfT22qe8LWJxJIrx5/Uj0/Kkog7X8kTrBnbx8tv5HaOdxTK8aGO5/hBQjlepCTHGdvHK3I8xzsI5Xip4zl+rFCOD1OS44zt4w1zPMeRVTcJiauT6W01S9m1+FqsyNfhIfrK8eswEmPTcMf76WFCY/IIJWMyY/t4Ixxv68OF2nqUkl+H4TyP4owZ28P+dRg8F8CnpuMzvVD7kQ4mxV+H2ZTa0f51mMPo/w4nPYL0SFKP/r+YdDgp/jrMZlZ5/hNo29Hn7Uk7kHYk7UTambQp2OZWOYuonM3o82PJj+NIjyc9gfRE0pNITyZdRHoK6amkp5GeTnoG6ZmkZ5GeTXoO6bmk55GeT3oB6YWkF5FeTHoJ6aWkl5FeTnoF6ZWkV5FeTXoN6bWk15FeT3oD6Y2kN5HeTHoL6a2kt5HeTnoH6Z2kd5HeTbqY9B7Se0nvI72fdAnpUtIHSB8kfYj0YdJHSJeRPkr6GOnjpE+QPkm6nPQp0qdJnyF9lvQ50hWkz5O+QPoi6UukL5O+Qvoq6Wukr5O+Qfom6Vukb5O+Q/ou6Xuk75N+QPoh6UekH5N+Qvop6Wekn5N+Qfol6VekX5N+Q/ot6Xek35P+QPoj6UrSn0h/Jv2F9FfS30h/J/2D9E/SVaR/kRrqvxmkmaQJ0izSbNIc0lzSPNJG/vhF2sQfN0ibkTYnbUHa0h+nSFuTtiFtS7o5aRfSrqSDwMZb45KPpAdSfJvSfuP98sG2oJ2452C8br2FwBy8pePXrvHXOfAXQLjjnsAYd1g3QrsZXnbwt4nxjVCexpkocCN0K8dvhGLcWwmdrPtbZqDsdOuBs04n8Q0kof3kD+dAIulnVyV+djH8AzNqM3q9NSTFNmCTwbYFmwK2Hdj2YDuA7Qi2E9jOYLuA7ZqIf6LFjlfmJ1qSU9P5iZZO9Lpq1pwFVQuqJi6omDG90v+RljHlM2bYieAfxE+IRIogg+878UMtODp2N3VrI5nmFtYi3skJmRGIuT5qLeLdjbKgPGqLeHcTXMSLlVkucP5VrmQR72TGRby7Jdyvv0zm+uOMuULhIt4KoUW8lfG5K0/jVAqcu051/NwV454qdO4qMVFMFZiAqgQW8VYlwv2q1bYKKa2a8m5a1CitWpDSsDKnCXSSaUoobVtGSqtOuF9/3JTGGfPuCiltdyFKmx5TGk/jTBegtD0cpzSMew8llDaNfOUud08BStszZEqbopDSZlDezYwapc0QpDSszJkCnWSmEkqbwkhpMxLu1x83pXHGPEshpc0SorTZMaXxNM5sAUrby3FKw7j3UkJpM8lX7nLnCFDanJApbSeFlDaX8m5e1ChtriClYWXOE+gk85RQ2k6MlDY34X79cVMaZ8zzFVLafCFKWxBTGk/jLBCgtIWOUxrGvVAJpc0jX7nL3VuA0vYOmdJ2Vkhp+1De7Rs1SttHkNKwMvcV6CT7KqG0nRkpbZ+E+/XHTWmcMe+nkNL2E6K0/WNK42mc/QUo7QDHKQ3jPkAJpe1LvnKXe6AApR0YMqXtopDSDqK8OzhqlHaQIKVhZR4s0EkOVkJpuzBS2kEJ9+uPm9I4Yz5EIaUdIkRph8aUxtM4hwpQ2mGOUxrGfZgSSjuYfOUu93ABSjs8IfcIcPwu6iSBejgiIdv+yfS2mm/8HyEQ9xjHHx2L35yXiHsjJY8pZGwfbyPHH1PYVSjHN3Y8x7cRyvFNlOQ4Y/t4mzie412Ecnxzx3N8V6EcH68kxxnbxxvveI7Po7Y2vOWK+LqvIl8PDtFXjsdqS/T3CY7n/nZC49xEJeMcY/t4Ex1v6+2F2nprJY/V5jw32VrwsdrI1/h413LSaaQzSfGx2kdSO9qP1d6OPt+edAfSHUnnke5LejApPlb7KKs8f8geaP7+PKh4x+ToBu5/TAP3P7aB+x/XwP2Pb+D+JzRw/xMbuP9JDdz/5Abuv6iB+5/SwP1PbeD+pzVw/9MbuP8ZDdz/TGv/zH/ZPw/srHrud3Y99zunnvudW8/9zqvnfufXc78L6rnfhfXc76J67ndxPfe7pJ77XVrP/S6r536X13O/K+q535XWflNov6NofN41kTpvg3o07XcM6bGkx5EeT3oC6YmkJ5GeTLqI9BTSU0lPIz2d9AzSM0nPIj2b9BzSc0nPIz2f9ALSC0kvIr2Y9BLSS0kvI72c9ArSK+tZP7GGo4PBrkox/m5N7XQk6VWk+Bj7qxN1V8lw8y/+HGtnq3ymcjlXynjBN+z6uIYq8tpExFbKYOBLrGCvtW5+cScJJggmCvdJ0mShk6REen4mA3561yT4Yr6W7yalN1nJBQXO+rtuDWWVFFdVVBcXFpQnC6sroJyi6qqC8vxSr7qkAIovKPQqyquSUwsriosKi0qqi0P7zYjr+Nq81sqZ6xPxyhmWxrk+wV/uDYxJLxX3DQn2NhK5En0t+cpd7pSQJqBkA7egn5y5dCPjBDSF+YofDmLo3ygT3vrwdCbk6tpbZQp3Raj3Jkqwm9dAvaNT1FmQekebtVNvqnLWSr3cjeT60i5skJsEBqibEvwd7GbqYPaW7oAV2Djby7uZcfC7ha+zV/v1eQt/fdbp/Dc5Wp+3MvdLf+M+A7mWMebbmCcMiWWwtwqMRds7fisX475NIO4dlJxlM7aPt4OS29c3Mfbr2xnHWKn8vj0hM15wtrXEJeoJAnHfwRg3QjhebfGvxmDZeOnfN/w8eLur0MSX91P5bNfHnQRSd63hRKdXivoLnuj0Mms/0UlVjuoTHb+isBJ7CvmLDXOXQOe8SwgsXT7RuYtxMrvb8UEd/btbIG/uVpI3dzqaN4sdzxupW5H3CMfNAWmLBfrLzgpO6u4RiHsXJSd1jO3jccYc1tX5e4TGc8Psp10X99JkcV8MrQ3f/Iq6VxBasWHuExhU7osgtN7HCB/3Ow4f6N/9Anlzv5K8udfRvFmiAN6WCORNuRKIYQQPjzNmnIhzTd2Nu04l5i/XfVzK6aPWhipU4OMD3MnE7SBeKnlAYPSsdHTxV2Cr1ZPSjflBxhm8UsGlgwcF8uahBO8MlGPqbpz1KlG3DymYgR6WunTAfRP7CMYO/oiCm9gSnXKZ46eOGPfVAnFXOT4IYyd8RCDuaje/OlTHz0cZ+yNjW3vVjdRMYv985YQ7N5cpmMQe1TKJdWcs6zHGToMdOmHqbtwN1c3INBS3n12V+NmF0U/7hskl9PpxSIonwJ4EWw72FNjTYM+APQv2HNgKsOfBXgB7EewlsJfBXgF7Few1sNfB3gB7E+wtsLfB3gF7F+w9sPfBPgD7EOwjsI/BPgH7FOwzsM/BvgD7EuwrsK/BvgH7Fuw7sO/BfgD7EWwl2E9gP4P9AvYr2G9gv4P9AfYn2CqwvzDhYVTOAMsES4BlgWWD5YDlguWBNQJrDNYErClYM7DmYC3AWoK1AmsN1gasLVg7sPZgHcA6gnUC6wzWBawrWDew7mA9wHqC9QLrDdYHrC9YP7D+YAPABoKtAzYIbDDYELB1wdYDWx8MZxUPLB+sAKwQbChYEVgxWAlYKdgwsA3ANgQbDjYCbCRYGdgosNFgY8A2AhsLNg5sY7BNwDYF2wxsc7DxYFuAbQk2AWwi2FZgk8C2BtsGbDLYtmBTwLYD2x5sB7AdwXYC2xlsF7BdwXYDKwerAKsEmwpWBVYNNg1sd6xnysVGpu73OBtZ45Z9Yy/T1N7sibeMqb8IfG+0ZoVknhWHCcTbnGLJYT1uuYfHyja1t4zA32Up6hN9bUOvK8tnzJg4d/rC8vlV4xbMqpw/ffYse0jxi/eHlkSK8ILvZ1lV4V/ZzLbe8/8v19IM7jEWH8L9WKJuPSTT3MJaHPCkFBzx+lnrp12mU8vvkRWxB1Zg4FI/7YKVicZ9lollMvkoeon4SYYrSP5Pu0zPcr/+uG9Qcsa8p1WWlp922ZOxnWx/Z2TFD6hgaZwZWfzlzmRMeqm4Z2axt5HICo89yFfucmcxd0zshFhmpgnvAQvLFVLabMq7vaJGabMFKQ0rcy+BTrKXEkpbzkhps7Pcrz9uSuOMeY5CSpsjRGlzY0rjaZy5ApQ2z3FKw7jnKaG0vchX7nLnC1Da/JAp7SmFlLaA8m5h1ChtgSClYWUuFOgkC5VQ2lOMlLYgy/3646Y0zpj3VkhpewtR2j4xpfE0zj4ClLav45SGce+rhNIWkq/c5e4nQGn7hUxpKxRS2v6UdwdEjdL2F6Q0rMwDBDrJAUoobQUjpe2f5X79cVMaZ8wHKqS0A4Uo7aCY0nga5yABSjvYcUrDuA9WQmkHkK/c5R4iQGmHhExpzyuktEMp7w6LGqUdKkhpWJmHCXSSw5RQ2vOMlHZolvv1x01pnDEfrpDSDheitCNiSuNpnCMEKO1IxykN4z5SCaUdRr5yl3uUAKUdFTKlvaCQ0o6mvDsmapR2tCClYWUeI9BJjlFCaS8wUtrRWe7XHzelccZ8rEJKO1aI0o6LKY2ncY4ToLTjHac0jPt4JZR2DPnKXe4JApR2QsiUtrvQJMCcF7Uo7UTKu5OiRmknClIaVuZJAp3kJCWUtjvDgOtT2olZ7tcfN6VxxnyyQko7WYjSFsWUxtM4iwQo7RTHKQ3jPkUJpZ1EvnKXe6oApZ2aVZccuNrMf2oIdz2cliXb/sn0tponfJ0m0P7TG7md9/ikLIm491Dy9HrG9vH2cPxxnV2Fcnym4zn+hFCOz1KS44zt481yPMe7COX4HMdz/EWhHJ+rJMcZ28eb63iOI6ueFhJXJ9Pbapaya/H1MEW+HhOir+mOIdjXJcamBY7306eFxuSFSsZkxvbxFjre1s8ItfW+IbW1Q+e5HmfM2B74eFV/qMRzgVXm7wdKou5FupC0Mdjp1I65ZvUjWp+m/3uG9FnS50gPoP8/jPQY0lZgZ1jl+U+g3Y0+LyetIK0knUpaRdoU7EyrnEVUzhn0+Yvkx0ukL5O+Qvoq6Wukr5O+Qfom6Vukb5O+Q/ou6Xuk75N+QPoh6UekH5N+Qvop6Wekn5N+Qfol6VekX5N+Q/ot6Xek35P+QPoj6UrSn0h/Jv2F9FfS30h/J/2D9E/SVaR/kRqq5wzSTNIEaRZpNmkOaS5pHmkjP89Im/jtS9qMtDlpC9KWfj6RtiZtQ9qWtB1pe9IOpB1JO5F2Ju1C2pW0G2l30h6kPUl7kfYm7UPal7QfaX/SAaQDSdchHUQ6mHQI6bqk65GuT5ok9UjzSQtIC0mHkhaRFpOWkJaSDiPdgHRD0uGkI0hHkpaRjiIdTTqGdCPSsaTjSDcm3YR0U9LNSDcnHU+6BemWpBNIJ5JuRTqJdGvSbUgnk25LOoV0O9LtSXcg3ZF0J9KdSXch3ZX0TNJq0ml+O4KdZY1L/o2hx6nfnE77neXnLdjZWXVXGHDPx/gz8gdYB2Aql3OVgRd8w66Pc2jCOjcrYqsMMPAlVrBYAWUB57iO6ScJN7Tt7+bvFyUDfnrnZPHFbLdTMr3N21/JCQ5n/Z23hrJKiqsqqosLC8qThdUVUE5RdVVBeX6pV11SAMUXFHoV5VXJqYUVxUWFRSXVxcmwVh2cl8UL6v52fla86oClcc7P4i/3Asakl4r7giz2NhK5MnYu+cpd7oGO/vpt0E/OXLqQcQI6kPkKBA5i6N8oE97a2nQm5OraW2UKd0Wo9yLqtxevgXpHp6izIPWONmun3lTlrJV6uRvJ9WUx2CAXCQxQF2Xxd7CLqYPZG/c6Xcb28i5mHPwu4evs1X59XsJfn3U6/0WO1uelzP3S37jPQM5ljPky5glDYgnhpQJj0cGO31rCuC8TiPsQJWfZjO3jHaLkdtpFjP36csYxViq/L8+SGS8421ri6uOWAkutr2CMGyHc/gFTLHugWW34eWMr//G9QhNf3k/ls10fV1KFXrWGE51eKeoveKLTy6z9RCdVOapPdPyKwkrsKeQvNsxVAoPSVUJg6fKJzlWMk9nVjg/q6N/VAnlztZK8udLRvLlGAQxI3Iq8VjhuDki7RqC/HK7gpO5agbiPUHJSx9g+HmfMYV2dv1ZoPDfMftp1cR1B6/UxtDZ88yvqOkFoxYa5XmBQuT6C0Ho9I3zc4Dh8oH83COTNDUry5jpH8+ZGBfB2o0DeHK0EYhjBw+OMGSfixqbuxl2nEvOX6z7exOmj1oYqVODjzdzJxO0gXiq5WWD0PNbRxV+BrVZPSjfmWxhn8GMVXDq4RSBvbs3inYHs0zXDWwdig8atCmag26QuHXDfxD6NsYPfruAmtkSnvMPxU0eM+2yBuI93fBDGTni7QNwnuPnVoTp+3snYHxnb2juhkZpJ7J+vnHDn5h0KJrE7OX3Ei9FNTN1VKBKO4wMSJwms2pmU4E3cJkYsccWSYqACH+/iPv/X2FAazv/vDguTk+lttTIq3VFkseO4iKPcYgFsuic+d/XuUTDt3+v6RTmpRbn3ZcXTu4bp/f54etcxvS+Rmt65L3MzZlStoNMdkZYqQIWlAqjwQIwK3gMKUOHBeCTWMWU+FDeUjinzYS1TJmNG5T/MOGU+omDKfERgylwWT5neMgVT5qPxSKxjynwsbigdU+bjWqZMxowqeJxxynxCwZT5hMCU+WQ8ZXpPKpgyl2u5S3QtY6d8ivGSFN57b2rq3nvPove1Ja0GfHiaGx80NpQGfHhGy+jyNOPo8qyCKf9ZgSn/OeYpP8fU3TjrVaJun1Mw5a/QcA96gsA96OeZEzSe3mV8fCGe3nVM7y9quTrAmFG1gk53RHpJASq8JIAKL8eo4L2sABVeiUdiHVPmq3FD6ZgyX9MyZTJmVP5rjFPm6wqmzNcFpsw34inTe0PBlPlmPBLrmDLfihtKx5T5tpYpkzGjCt5mnDLfUTBlviMwZb4bT5neuwqmzPe03CW6J8GXnO87/kCP7lDGfQKd8mTHH2zxGLTxvQJxL1LyYIsPGPOSsa29RQry5kGBvPnQ8ckb435UIO6PFMS9XCDujx2PG+cFiQe3n6agfz8lEPfpSuaFTxjnBca29k53PG+wv6wQyJuzFPSX5wXiPltJf/mUsb8wtrV3toL+8opA3nymYF59UyDuzxXE/Z5A3F8oiPt9gbjPc7x/4zWUxwQW952vZF74knFeYGxr73zmHxHKMHU37lzqxVdW0vb3q6zVv/iZmSIXcgRiMYHjBOuveYr3nL6A2IsqkrvcrxnvjEjF/XUWexuJ/twyZ51+wzjAJczqTmdvLg8kkn72VOJnD8M/MKM2o9ffQo59B/Y92A9gP4KtBPsJ7GewX8B+BfsN7HewP8Ba0P/aP+ecab2XCNRFI1P3l/DsO4BlTPEJTCY1P1udZ8VhAvE2p1hyeI87FY+VbWpvwUmrLEV9oq+d6HXVrDkLqhZUTVxQMWN65bgFsyrnT589a0z5jBl2IvgH8RMikSLI4PtZVoXk0uts6z3//3ItzeDuGTg69jZ1ayOZ5hbW7zZ+L3WvltfPfLsu/qSWX5X177/b+FeKOsuwXmfSPplr2CfjX8pZ6+82Mgfv+cFh4H8GnOE6BlbmKoHz11VCCca92Od7BmSqqv57+zPL/frjXkvBGfNfVlleSUF+fnEB7lcyNekVTq3ML8nPn1pRmKxMllfmV5UWeqXVhfmFBZVTKyugzHKvOlldXllaXfK3X2Gdu/7F2E61/M2Oz11ZGgcrkrvcjGy3z10x7oxs9jYS+fHNVeQrd7mZ2bwdEzshlplJnSMMSvtBIaUlKO+ysiNGaRi4FKVhZWYJdJKsbJkE46a0HxgpLZHtfv1xUxpnzNnZ+igtm3ky8LecmNJ4GidHgNJyHac0jDtXCaVlka/c5eYJUFpeyJT2o0JKa0R51zhqlNZIkNKwMhsLdJLGSijtR0ZKa5Ttfv1xUxpnzE0UUloTIUprGlMaT+M0FaC0Zo5TGsbdTAmlNSZfucttLkBpzUOmtF8VUloLyruWUaO0FoKUhpXZUqCTtFRCab8yUlqLbPfrj5vSOGNupZDSWglRWuuY0ngap7UApbVxnNIw7jZKKK0l+cpdblsBSmsbMqX9ppDS2lHetY8apbUTpDSszPYCnaS9Ekr7jZHS2mW7X3/clMYZcweFlNZBiNI6xpTG0zgdBSitk+OUhnF3UkJp7clX7nI7C1Ba55Ap7XeFlNaF8q5r1CitiyClYWV2FegkXZVQ2u+MlNYl2/3646Y0zpi7KaS0bkKU1j2mNJ7G6S5AaT0cpzSMu4cSSutKvnKX21OA0npm1yUHrjbrDWV8I/A1vl7Zsu2fTG+r+cZ/L4H2v6iR23mP35yXiPviRjrAgbF9vIsdf9RST6Ecv8zxHP9OKMcvV5LjjO3jXe54jvcQyvGrHM/xP4Ry/GolOc7YPt7Vjuc43vftFRJXJ9Pbam6/afG1a4i+pv2tZCPT369zPPdXCo1z1ysZ5xjbx7ve8bb+SaitbwqprR06d/Q4Y8b2wIdh+RcGka9Xmb8f/4OK3/FDbewrWG9qx1yz+oFaK2n/n0h/Jv2FtCX9f3vSrqStwPpY5fkXI/FX5lalULxj0reB+/dr4P79G7j/gAbuP7CB+6/TwP0HNXD/wQ3cf0gD91+3gfuv18D912/g/skG7u81cP/8Bu5fYO2f+S/754EV1nO/ofXcr6ie+xXXc7+Seu5XWs/9htVzvw3qud+G9dxveD33G1HP/UbWc7+yeu43qp77ja7nfmOs/abQfn1ofP4jK3XeBrUv7d+PtD/pANKBpOuQDiIdTDqEdF3S9UjXJ02SeqT5pAWkhaRDSYtIi0lLSEtJh5FuQLoh6XDSEaQjSctIR5GOJh2TXb/6iTUcHQy2UYrx91vK497UXhuRtgYbm113lQw3628FB7B/YjCZ3lbzu5pfCj+JOs2yveAbdv2Oo3PzjaO28gYDX2IFu7F1M437pMtPOu6TrlscP9n0Owd33Le6+TsUyYCf3jjGxQQbM5Z1W0j1l0xv8xjz22PMGe82JRe2OPNvkzWUVVJcVVFdXFhQniysroByiqqrCsrzS73qkgIovqDQqyivSk4trCguKiwqqS4O7bdLNhFawbVpvIKLp3E2FVjBtZnjK7gw7s2U3BHZmHzlLvcuRyegoJ+cubQ532Dk3cV85RkHMfRvlAnvewobp1Ef1bW3yhTuipwtjad+u8UazpZGp6iz4NnSaLP2s6VU5az1bIl9CV+27ACVTG/zsEHGCwxQ4wWWmG5BHczeuImZsb28LRgHvy35Onu1X59b8tdnnc4/3tH6nMDcL/2N+wyE86x1IvOEIbEce4LAWLTY8as8GPdEgbjvUXKWzdg+3j1KllGMZ+zXWzGOsVL5vVW2zHjB2dYSV60lfl3+fgVXrT8ViHuJkl9PnsTYHxnb2luiIG8+E8ibrR0fJzDuzwXi3kZB3F8IxD2ZMW68SIEXCPyr1di3MZ+wbifTRQz80VZ7WUqhiW/D+5tJsXH5bNfvtnQ1acoaLiz1svb/twtLvczaLyylKkf1hSW/orASewr5iw0zRQACp2SHAwXJ9DbWC0tTGE8etnN8kkD/thPIm+2U5M22jubN9iHVX7p+7sBYf44upxC5c4nj1fYC/e5BBRfjdhCI+yElF+MY28fjjDmsu6o7CI1rhtlPuy52JOLdKYbfhm9+Re0oCL/YMDsJDCo7RRB+d2KEmJ0dh1/0b2eBvNlZSd7s6Gje7CKcNxzwtotA3ixTAjGM4OFxxowTcQtTd+OuU4n5y3Ufd+X0UWtDFSrwcTfuZOJ2EC+57CYwej6m5FsjuzLOlOWMM/hjCi4dlAvkTUU27wzU3NTdOOtVom4rFMxAlVKXDrgXH/Vi7OBTFSw+kuiUVY6fOmLcYwXifsLxQRg74VSBuJ9UsviomrE/Mra192QjNZPYP18V5M7NKgWTWLWWSaw3Y1nTGDsNduiEqbuxD/BGpqG4/eypxM8ejH7aN0wuode7Q45NB9sDbE+wGWAzwWaBzQbbC2wO2FyweWDzwRaALQTbG2wfsH3B9gPbH+wAsAPBDgI7GOwQsEPBDgM7HOwIsCPBjgI7GuwYsGPBjgM7HuwEsBPBTgI7GWwR2Clgp4KdBnY62BlgZ4KdBXY22Dlg54KdB3Y+2AVgF4JdBHYx2CVgl4JdBnY52BVgV4JdBXY12DVg14JdB3Y92A1gN4LdBHYz2C1gt4LdBnY72B1gd4LdBXY32GKwe8DuBbsP7H6wJWBLwR4AexDsIbCHwR4BWwb2KNhjYI+DPQH2JNhysKfAngZ7BuxZsOfAVoA9D/YC2ItgL4G9DPYK2Ktgr4G9DvYG2Jtgb4G9DfYO2Ltg74G9D/YB2IdgH4F9DPYJ2Kdgn4F9DvYF2JdgX4F9DfYN2Ldg34F9D/YD2I9gK8F+AvsZ7BewX8F+A/sd7A+wP8FWgf0Fhl+azwDLBEuAZYFlg+WA5YLl5ay+pIU37ILfv29kjVv2jb1MU3vLsV6XMfUXge/716zczLPiMIF4m1MsOazHLffwWNmm9pYR+LssRX2ir23odWX5jBkT505fWD6/atyCWZXzp8+eZQ8pfvH+0JJIEV7w/SyrKvxnXWZb7/n/l2tpBvcYiz/iMS27bj0k09zCWhyAYzeXzync5Sq71k/DNaIEa5wTsQdUYeBSPw2HlYnGfZaJZTL5KHqJ2O4I6f40XKMc9+uP+wYlZ8xNrLK0/DRcE8Z2sv1tmhM/WIilcZrm8JfbjDHppeJulsPeRiIrPBqTr9zlNmfumNgJscxME96DcfZUSGktKO9aRo3SWghSGlZmS4FO0lIJpe3JSGktctyvP25K44y5lUJKayVEaa1jSuNpnNYClNbGcUrDuNsoobSW5Ct3uW0FKK1tyJQ2QyGltaO8ax81SmsnSGlYme0FOkl7JZQ2g5HS2uW4X3/clMYZcweFlNZBiNI6xpTG0zgdBSitk+OUhnF3UkJp7clX7nI7C1Ba55ApbY5CSutCedc1apTWRZDSsDK7CnSSrkoobQ4jpXXJcb/+uCmNM+ZuCimtmxCldY8pjadxugtQWg/HKQ3j7qGE0rqSr9zl9hSgtJ4hU9pchZTWi/Kud9QorZcgpWFl9hboJL2VUNpcRkrrleN+/XFTGmfMfRRSWh8hSusbUxpP4/QVoLR+jlMaxt1PCaX1Jl+5y+0vQGn9Q6a0eQopbQDl3cCoUdoAQUrDyhwo0EkGKqG0eYyUNiDH/frjpjTOmNdRSGnrCFHaoJjSeBpnkAClDXac0jDuwUoobSD5yl3uEAFKGxIypeUJTQLMeVGL0talvFsvapS2riClYWWuJ9BJ1lNCaXkMA65PaevmuF9/3JTGGfP6CiltfSFKS8aUxtM4SQFK8xynNIzbU0Jp65Gv3OXmC1Bafk5dcuBqM/+pIdz1UJAj2/7J9LaaJ3wVCLT/047/9BA+KUsi7meUPL2esX28Zxx/XGdPoRxf4XiOTxfK8eeV5Dhj+3jPO57jPYRy/CXHc3y+UI6/rCTHGdvHe9nxHEdWLQiJq5PpbTVL2bX42luRrwND9DXdMQT7usTY9Jrj/XSm0Jj8upIxmbF9vNcdb+tZQm39Vkht7dB5rscZM7YHPl7Vv4iJ5wKrzN8PlERtSdqetDFYIbVjrln9iNaZ9H+zSGeT7kXalf6/N+lA0lZgQ63y/hmy6fMM0kzSBGkWaTZpU7Aiq5xFVMxQ+nw++bGAdCHp3qT7kO5Luh/p/qQHkB5IehDpwaSHkB5Kehjp4aRHkB5JehTp0aTHkB5Lehzp8aQnkJ5IehLpyaSLSE8hPZX0NNLTSc8gPZP0LNKzSc8hPZf0PNLzSS8gvZD0ItKLSS8hvZT0MtLLSa8gvZL0KtKrSa8hvZb0OtLrSW8gvZH0JtKbSW8hvZX0NtLbSe8gvZP0LtK7SReT3kN6L+l9pPeTLiFdSvoA6YOkD5E+TPoI6TLSR0kfI32c9AnSJ0mXkz5F+jTpM6TPkj5HuoL0edIXSF8kfYn0ZdJXSF8lfY30ddI3SN8kfYv0bdJ3SN8lfY/0fdIPSD8k/Yj0Y9JPSD8l/Yz0c9IvSL8k/Yr0a9JvSL8l/Y70e9IfSH8kXUn6E+nPpL+Q/kr6G+nvpH+Q/km6ivQv0iIaZ3JIc0kHgRVb45J/Y2h3+r9C2q+YtDVYSU7dFQbc7LEVHODaLL7yJkF5n2St9pepXM5VC17wDbt+S2niGRa1VQsY+BIr2GHWjQhuCPSTjhsC33Ecfv3OwR33u27+DlQy4KdXyngjdhhjWe8p+RFMxvz2GHPGe0/JiTZn/m2whrJKiqsqqosLC8qThdUVUE5RdVVBeX6pV11SAMUXFHoV5VXJqYUVxUWFRSXVxcmwVr9sILT6ZcN49QtP42wosPpluOOrXzDu4Uqu0A4jX7nL/cjRCSjoJ2cujeAbjLyPmK+E4SCG/o0y4a3xHpZGfVTX3ipTuCtytjSS+m3ZGs6WRqeos+DZ0miz9rOlVOWs9WyJu5FcX56FDTJSYIAaKbA8r4w6mL1xEzNje3lljIPfKL7OXu3X5yj++qzT+Uc6Wp+jlay/5zxrHcM8YUgsZR0tMBZ94vhVHox7jEDcnyo5y2ZsH+9TJbd1RzL2640Yx1ip/N4oR2a84GxriavW9wlcvf1CwVXrDwTi/tLNq9Z1/BzL2B8Z29r7UkHefCiQN+McHycw7o8E4t5YQdwfC8S9CWPceJEClxr5V6uxb2M+Yd1uQhcx8Na7zwcDwQpNfBve30yKjctnu343pQtLm63hwlIva/9/u7DUy6z9wlKqclRfWPIrCiuxp5C/2DCbCUDgZkoeRMB5YWkzxpOHzR2fJNC/zQXyZnMlebOpo3kzPqT6S9fPLRjrz9HlFCJ3LnG8Gi/Q775RcDFuC4G4v1VyMY6xfTzOmMO6q7qF0LhmmP2062JLgt8JMfw2fPMraktB+MWGmSAwqEyIIPxOYISYiY7DL/o3USBvJirJmy0dzZuthPOGA962EsibH5RADCN4eJwx40Tc2tTduOtUYv5y3cdJnD5qbahCBT5uzZ1M3A7iJZetBUbPlUq+NTKJcabchnEGX6ng0sE2AnkzOYd3Bmpl6m6c9SpRt5MVzEDbSl064F58VMDYwacoWHwk0Sm3c/zUEeMuEYj7Z8cHYeyEUwTi/kXJ4qPtGfsjY1t7vzRSM4n981VB7tzcTsEktj2nj3gxuo2puzpGwnF8wPI3AquJvsniTdw2RixxxZJioAIfd+A+/9fYUBrO/3cMC5OT6W21MirdUWQnx3ERR7mdBLBp5/jc1dtZwbS/i1Sn5ObbXSOwuD7GBDkfd4sxQQcmlIc1IiXT2zgzqlbQ6Y6UFQqQo0IAOSpj5PAqFSDHVNfvA0p9H60qJ0YFDahQHaOCDlSYpgUVGDMqfxojKuyuABV2F0CF6TEqeNMVoMIeGlBB4ivce8aooAIVZsSooAMVZmpBBcaMKpjJiAqzFKDCLAFUmB2jgjdbASrspQEVJJ56MkdoZOO+q7oF42A0l/HSK65VaWvqrlXJoveDG9NxI41N87ixSWNDacCm+VrWbMxjHF0WKECdBQKos5AZdZqbuhtnvUrU7UIFqLO3ljUb+zBO0/czrtlYwrxmI8YEGR/3jTFBBybsp+XqCmNG1Qo63ZFyfwXIsb8AchwQI4d3gALkOFDD1ZXPBK6uHJQTo4IGVDg4RgUdqHCIFlRgzKj8QxhR4VAFqHCoACocFqOCd5gCVDhcAyp8LoAKR8SooAIVjoxRQQcqHKUFFRgzquAoRlQ4WgEqHC2ACsfEqOAdowAVjtWACl8IoMJxStZs7JDNF/Pxjj8wqjeUsavAYPS74w9OmgZtvItA3H8oeXDSCYx5ydjW3h+O5w32lyqBvPlLQX+ZKhC3aayjv5zI2F8Y29rjrj+J/rKnQN4kHI8b+8seAnFnKekvJzH2F8a29rIU9Jc5AnmTq6C/7CUQd56S/nIyY39hbGsvT0F/kfgBqyYK+stcgbibKukvixj7C2Nbe00V9Je9BfKmhYL+so9A3C2V9JdTGPsLY1t7LRX0lwMF8qaNgv5ykEDcbZX0l1MZ+wtjW3ttFfSXwwXypoOC/nKEQNwdlfSX0xj7C2Nbex0V9JdjBfKmi4L+cpxA3F2V9JfTGfsLY1t7XRX0l+MF8qaH43HjPWnsM9xx91TSX85g7C+Mbe1x1l/Cyht7486lfnxlJW1/z8z5+/kRuGWmyIUcgVhM4DjB+mue4j3Wg0s0zpk5/OWexbjCTipu9JG5jda4UCjdeuCs07M5b5iZ1Z3O3lweSCT97KvEzz6Gf2BGbUavz4EcOxfsPLDzwS4AuxDsIrCLwS4BuxTsMrDLwa4Aa0H/28jUHdwbWXmWYb1nD/64Wd2aLT6BySSJD0XKs+IwgXibUyw5vMedisfKNrW34KRVlqI+0ddO9Lpq1pwFVQuqJi6omDG9ctyCWZXzp8+eNaZ8xgw7EfyD+AmRSBFk8P0sq0Jy6XW29Z7/f7mWZnD3DBwd+5u6tZFMc0uYutnqVxan/+dJLern9TPfrosrKc2uylnd4BlWfWFi/JWizjKs15m0T+Ya9sn4l3L+rQeK4ZwfHAb+Z8AZrmNgZV4lcP56lVCCcX9p5DwGZKqq/nu7Msf9+stkrj/OmK+2yvJKCvLziwtwv5KpSa9wamV+SX7+1IrCZGWyvDK/qrTQK60uzC8sqJxaWQFllnvVyeryytLqkr/9Cuvc9WrGdrL9vSY+d+VpnGsEzl2vdfzcFeO+VujcVWKiuFZgArqOuWNiJ8QyM6lzhEFp5yuktOsp726IGqVdL0hpWJk3CHSSG5RQ2vmMlHZ9jvv1x01pnDHfqJDSbhSitJtiSuNpnJsEKO1mxykN475ZCaXdQL5yl3uLAKXdEjKlXaCQ0m6lvLstapR2qyClYWXeJtBJblNCaRcwUtqtOe7XHzelccZ8u0JKu12I0u6IKY2nce4QoLQ7Hac0jPtOJZR2G/nKXe5dApR2V8iUdqlCSrub8m5x1CjtbkFKw8pcLNBJFiuhtEsZKe3uHPfrj5vSOGO+RyGl3SNEaffGlMbTOPcKUNp9jlMaxn2fEkpbTL5yl3u/AKXdHzKlXaaQ0pZQ3i2NGqUtEaQ0rMylAp1kqRJKu4yR0pbkuF9/3JTGGfMDCintASFKezCmNJ7GeVCA0h5ynNIw7oeUUNpS8pW73IcFKO3hkCntcoWU9gjl3bKoUdojgpSGlblMoJMsU0JplzNS2iM57tcfN6VxxvyoQkp7VIjSHospjadxHhOgtMcdpzSM+3EllLaMfOUu9wkBSnsipy45cLVZfyjjbIF6eDJHtv2T6W013/h/UiDuPo3dznv85rxE3H0b6wAHxvbx+jr+qKW+Qjk+wPEcP1coxwcqyXHG9vEGOp7jfYRyfLDjOX6FUI4PUZLjjO3jDXE8xxdTWxveckV8XarI12Uh+ppuv8T+I9Hf13c89y8UGueSSsY5xvbxko639UVCbV0QUls7dO7occaM7YEPw/IvDCJfrzJ/P/4H9QbS20jh0GY5tWOuWf1ArQvp84tILya9hHQx6VLSZaStwJ6yyvMvRuKvla9KoXjH5OkG7v9MA/d/toH7P9fA/Vc0cP/nG7j/Cw3c/8UG7v9SA/d/uYH7v9LA/V9t4P6vNXD/1xu4/xsN3P9Na//Mf9k/D+yteu73dj33e6ee+71bz/3eq+d+79dzvw/qud+H9dzvo3ru93E99/uknvt9Ws/9Pqvnfp/Xc78v6rnfl9Z+U2i/p2h8viIndd4G9Wna7xnSZ0mfI11B+jzpC6Qvkr5E+jLpK6Svkr5G+jrpG6Rvkr5F+jbpO6Tvkr5H+j7pB6Qfkn5E+jHpJ6Sfkn5G+jnpF6Rf1rN+Yg1HB4N9lWL8PYfaaTnpV6Stwb7OqbtKhpv1vwbAsn+yPZne5n0D5Z0hdH4b3P7Psr3gG3b9fkO+f5sTsZU3GPgSK9hvrZtp3CddftJxn3QNdfxk0+8c3HEXufk7FMmAn943jIsJvmUsqzik+kumt3mM+e0x5oxXrOTCFmf+fbeGskqKqyqqiwsLypOF1RVQTlF1VUF5fqlXXVIAxRcUehXlVcmphRXFRYVFJdXFof12yXfMC0X87fuceAUXS+N8n8Nf7g+MSS8V9w9K7oh8S75yl7uBoxNQ0E/OXPqRbzDyNmC+8oyDGPo3yoT3PYVv06iP6tpbZQp3Rc6WVlK//WkNZ0ujU9RZ8GxptFn72VKqctZ6tsTdSK4vMcQGWSkwQK3M4e9gP1EHszduYmZsL+8nxsHvZ77OXu3X58/89Vmn8690tD5/Ye6X/sZ9BsJ51vor84QhsRz7F4GxaLjjV3kw7l8F4h6h5CybsX28EUqWUaxk7Ne/MY6xUvn9W47MeMHZ1hJXrfcRiHuUgqvWpwjEPVrJryf/ztgfGdvaG+143mB/OUggb8Yq6C+nCsQ9Tkl/+YOxvzC2tTdOQX85QiBvNlXQX04TiHszJf3lT8b+wtjW3mYK+stxAnmzhYL+crpA3Fsq6S+rGPsLY1t7nPWHF9Pbm9V3VZFBcV7FsWIVXWzvYGovnyw08XIxfzMpNi6f7fr9y/c9999vgPSy9v+3GyC9zNpvgKQqR/UNEL+isBJ7CvnrfxmEe7DEMrnqwWpDp2+A2DGnW38ZuW5PsuhfhkDeZCjJm78czZvMXB2QkuDz09VlfyIrbHC8yhTod1spuGmUEIh7kpKbRozt43HGHNbqn4TQuGaY/bTrIou+ZJsdw2/DN7+isBJ7Cvlb0zACg0p2BOE3mxFichyHX/QvRyBvcpTkTVaum3mTK5w3HPCWK5A3k5VADCN4eJwx40TcwdTduOtUYv5y3cc8Th+1NlShAh8bcScTt4N4yaWRwOg5Rcm3G/MYZ8rGjDP4FAWXDhoL5E2TXN4ZqL2pu3HWq0TdNlEwAzWVunSQyZxQTzIukm3G2MElGkWqUzZ3/NQR4/5aYHHC9o4PwtgJmwm09w5KFmW0YOyPjG3t7dBYzST2z1fauXOzuYJJrIWWSaw/Y1ktGTsNduiEqbtxN1Q/I9NQ3H72VeJnH0Y/7Rsml9DrVpBjrcHagLUFawfWHqwDWEewTmCdwbqAdQXrBtYdrAfelwDrBdYbrA9YX7B+YP3BBoANBFsHbBDYYLAhYOuCrQe2PlgSzAPLBysAKwQbClYEVgxWAlYKNgxsA7ANwYaDjQAbiX0DbBTYaLAxYBuBjQUbB7Yx2CZgm4JtBrY52HiwLcC2BJsANhFsK7BJYFuDbQM2GWxbsClg24FtD7YD2I5gO4HtDLYL2K5gu4GVg1WAVYJNBasCqwabBrY72HSwPcD2BJsBNhNsFthssL3A5oDNBZsHNh9sAdhCsL3B9gHbF2w/sP3BDgA7EOwgsIPBDgE7FOwwsMPBjgA7EuwosKPBjgE7Fuw4sOPBTgA7EewksJPBFoGdAnYq2Glgp4OdAXYm2FlgZ4OdA3Yu2Hlg54NdAHYh2EVgF4NdAnYp2GVgl4NdAXYl2FVgV4NdA3Yt2HVg14PdAHYj2E1gN4PdAtaCchFv2AWfE9PIGrfsG3uZpvZmLRJk6y8Cz6WpWbmZZ8VhAvE2p1hyWI9b7uGxsk3tLSPwd1mK+kRf29DryvIZMybOnb6wfH7VuAWzKudPnz3LHlL84v2hJZEivOD7WVZV5NLrbOs9//9yLc3gHmPxx6Za5po69ZBMcwtrcQCO3Vw+p3CXq+xaP2F6K9X3bbkRe5AiBi71E6ZYmWjcZ5m3CSUY9yViuyOk+xOmt+a6X3/cNyg5Y77dKkvLT5jezthOtr935MYPwGNpnDty+cu9kzHppeK+U4BOUvnKMdDdKTAB3cXcMbETYpmZJrwHuLVVSGl3U94tjhql3S1IaViZiwU6yWIllNaWkdLuznW//rgpjTPmexRS2j1ClHZvTGk8jXOvAKXd5zilYdz3KaG0xeQrd7n3C1Da/SFTWjuFlLaE8m5p1ChtiSClYWUuFegkS5VQWjtGSluS6379cVMaZ8wPKKS0B4Qo7cGY0nga50EBSnvIcUrDuB9SQmlLyVfuch8WoLSHQ6a0zgop7RHKu2VRo7RHBCkNK3OZQCdZpoTSOjNS2iO57tcfN6VxxvyoQkp7VIjSHospjadxHhOgtMcdpzSM+3EllLaMfOUu9wkBSnsiZErropDSnqS8Wx41SntSkNKwMpcLdJLlSiitCyOlPZnrfv1xUxpnzE8ppLSnhCjt6ZjSeBrnaQFKe8ZxSsO4n1FCacvJV+5ynxWgtGdDprSuCintOcq7FVGjtOcEKQ0rc4VAJ1mhhNK6MlLac7nu1x83pXHG/LxCSnteiNJeiCmNp3FeEKC0Fx2nNIz7RSWUtoJ85S73JQFKeylkSrtFIaW9THn3StQo7WVBSsPKfEWgk7yihNJuYaS0l3Pdrz9uSuOM+VWFlPaqEKW9FlMaT+O8JkBprztOaRj360oo7RXylbvcNwQo7Y3cuuTA1Wb+U0O46+HNXNn2T6a31Tzh602BuHd2/KeH8ElZEnHvouTp9Yzt4+3i+OM6+wrleLnjOd5aKMcrlOQ4Y/t4FY7neB+hHK9yPMe7CeV4tZIcZ2wfr9rxHH+F2trwlivi6zJFvi5X5OuKEH1N++dLjczYNN3xftpeaEzeQ8mYzNg+3h6Ot3UHobaeGVJbO3Se63HGjO2Bw6R/ERPPBVaZvx8oibqYdCkpHNq8Re2Ya1Y/orU9fd6BtCNpJ9JlpMtJV5C2AnvbKs9/Au019Pm1pNeRXk96A+mNpE3B3rHKWUTlvE2fdyPtTtqDtCdpL9LepH1I+5L2I+1POoB0IOk6pINIB5MOIV2XdD3S9UmTpB5pPmkBaSHpUNIi0mLSEtJS0mGkG5BuSDqcdATpSNIy0lGko0nHkG5EOpZ0HOnGpJuQbkq6GenmpONJtyDdknQC6UTSrUgnkW5Nug3pZNJtSaeQbke6PekOpDuS7kS6M+kupLuS7kZaTlpBWkk6lbSKtJp0GunupNNJ9yDdk3QG6UzSWaSzSfcinUM6l3Qe6XzSBaQLSfcm3Yd0X9L9SPcnPYD0QNKDSA8mPYT0UNLDSA8nPYL0SNKjSI8mPYb0WNLjSI8nPYH0RNKTSE8mXUR6CumppKeRnk56BumZpGeRnk16Dum5pOeRnk96AemFpBeRXkx6CemlpJeRXk56BemVpFeRXk36DulNpDeTDgJ7N3f1uOTfGGpFn79F+i5pa7D3cuuuMOBmj69hwN+C8Zdwv4HyFlmPY2cql3PVghd8w67f93P/1g9yI7ZqAQNfYgWLFVAWcI7rmH7ScUPgbMfh1+8c3HHv5ebvQCUDfnrv5/LF/AFjWXOU/AgmY357jDnjzVFyos2Zfx+uoayS4qqK6uLCgvJkYXUFlFNUXVVQnl/qVZcUQPEFhV5FeVVyamFFcVFhUUl1cTKs1S+2z8k0N9vfj3Lj1S8sjfNRLn+5HzMmvVTcH+eyt5HIFdoPyFfuchc4OgEF/eTMpU/4BiNvAfOVMBzE0L9RJrw13h+kUR/VtbfKFO6KnC19Sv32szWcLY1OUWfBs6XRZu1nS6nKWevZEncjub48CxvkU4EB6tNc/g72GXUwe+MmZsb28j5jHPw+5+vs1X59fs5fn3U6/6eO1ucXzP3S37jPQDjPWr9knjAklrJ+ITAW7e34VR6M+0uBuPdRcpbN2D7ePkpu637K2K+/YhxjpfL7q1yZ8YKzrSWuWu8qcPV2fwVXrU8QiPsAN69a1/Hza8b+yNjW3gGO5w32lyqBvDlYQX85USDuQ5T0l28Y+wtjW3uHKOgvewrkzeEK+stJAnEfoaS/fMvYXxjb2jtCQX+ZI5A3RyvoLycLxH2Mkv7yHWN/YWxrj7P+8GJ6J7P6rioyKM6rOFZ8RxfbO5vV57EDwQpNvFzM30yKjctnu36/pxsgP6zhBkgva/9/uwHSy6z9BkiqclTfAPErCiuxp5C/2DA/CFys+CE3nMEymd7GegPkB8aLXD86frEH/ftRIG9+VJI33zuaNytzdUDKT4z15+iyP5EVNjherRTod8cruGn0k0DcJyi5acTYPh5nzGGt/vlJaFwzzH7adfEzwe8vMfw2fPMr6mdB+MWG+UVgUPklgvD7CyPE/Oo4/KJ/vwrkza9K8uZnR/PmN+G84YC33wTy5mQlEMMIHh5nzDgRdzZ1N+46lZi/XPfxd04ftTZUoQIf/+BOJm4H8ZLLHwKj5ylKvt34O+NM+SfjDH6KgksHfwrkzapc3hmok6m7cdarRN2uUjAD/SV16SCTOaHe5PwmYh5fBUo0ilSnzMhzfzB6TyDu0xwfhLETYk5yx326kkUZmYz9kbGtvdMbq5nE/vlKO3duco8ZEj5mcvqIF6O7mLqrYyQcxx8COFtgNdbZObyJ28WIJa5YUgxU4GOCM3G1NpSG8/8sgVGwZuO+imhnVLqjSLbjuIijXLYANuXkqZn2xRI+R8G0nyvVKbn5No+Rb139EliMCXI+NooxQQcmNA5rREqmt3FmVK2g0x0pmyhAjiYCyNE0Rg6vqQLkaKYFOZozdnBXv0cbI4ecjy1i5NCBHC21IAdjRuW3ZESOVgqQo5UAcrSOkcNrrQA52mhBjraMyOHqowhi5JDzsV2MHDqQo70W5GDMqIL2jMjRQQFydBBAjo4xcngdFSBHJy3I0ZkROVx+mktXU3c9Sha9r60DaECRLtwoorGhNKBIVy3rMrow4kM3BfjQTQAfujPjQ3tTd+OsV4m67a4AH3powYeejPgwihEfRjNfsYgxQcbHXjEm6MCE3lquWDBmVK2g0x0p+yhAjj4CyNE3Rg6vrwLk6KcFOfozdvCxjMgxLkYOFcgxIEYOHcgxUAtyMGZU/kBG5FhHAXKsI4Acg2Lk8AYpQI7BWpBjCCNybMqIHJvFyKECOdaNkUMHcqynBTkYM6pgPUbkWF8BcqwvgBzJGDm8pALk8LQgRz4jcmzBiBxbOv4goP5QRp5ABz/L8bhb5hqTKxD32UoegFTA2F8Y29o7W0F/aS6QN+cp6C/NBOI+X0l/KWTsL4xt7Z2voL+0FcibixT0lzYCcV+spL8MZewvjG3tXaygv3QWyJvLFPSXTgJxX66kvxQx9hfGtvYuV9BfegjkzVUK+ktPgbivVtJfihn7C2Nbe1cr6C/9BPLmOgX9pb9A3Ncr6S8ljP2Fsa296xX0l8ECeXOTgv4yRCDum5X0l1LG/sLY1t7NCvqLJ5A3tynoL/kCcd+upL8MY+wvjG3t3e543uRDGUMNf97c5XjcJVDGKIG471bSXzZg7C+Mbe3d7XjenJUjc7/yXsfjxoUYBQJx36ekv2zI2F8Y29q7T0F/kbhfuVRBfykUiPsBJf1lOGN/YWxr7wEF/UXifuXDCvrLUIG4H1HSX0Yw9hfGtvYeUdBfJO5XPqagvxQJxP24kv4ykrG/MLa197iC/iJx3265gv5SLBD3U0r6Sxljf2Fsa+8pBf1F4r7dswr6S4lA3M8p6S+jGPsLY1t7zynoLxL37V5Q0F9KBeJ+UUl/Gc3YXxjb2ntRQX+RuG/3ioL+Mkwg7leV9JcxjP2Fsa09qfrLZM6fDMa22ChPR8yZjDGPVRJzgjHmcUpizmKMeWMlMWczxryJkphzGGPeVEnMuYwxb6Yk5kGMMW+uJOaBjDGPj2DMW0Qw5i0jGPMEJTFvwPjQmYkRbOetIhjzpAjGvHUEY94mgjFPjmDM20Yw5ikRjHm7CMa8fQRj3iGCMe8YwZh3imDMO0cw5l0iGPOuEYx5twjGXB7BmCsiGHNlBGOeGsGYqyIYc3UEY54WwZh3j2DM0yMY8x4RjHnPCMY8I4Ixz4xgzLMiGPPsCMa8VwRjnhPBmOdGMOZ5EYx5fgRjXhDBmBdGMOa9IxjzPhGMed8IxrxfBGPeP4IxHxDBmA+MYMwHRTDmgyMY8yERjPnQCMZ8WARjPjyCMR8RwZiPjGDMR0Uw5qMjGPMxEYz52AjGfFwEYz4+gjGfEMGYT4xgzCdFMOaTIxjzogjGfEoEYz41gjGfFsGYT49gzGdEMOYzIxjzWRGM+ewIxnxOBGM+N4IxnxfBmM+PYMwXRDDmCyMY80URjPniCMZ8SQRjvjSCMV8WwZgvj2DMV0Qw5isjGPNVEYz56gjGfE0EY742gjFfF8GYr49gzDdEMOYbIxjzTRGM+eYIxnxLBGO+NYIx3xbBmG+PYMx3RDDmOyMY810RjPnuCMa8OIIx3xPBmO+NYMz3RTDm+yMY85IIxrxUScwb5vHF/ICSmIczxvygkphHMMb8kJKYRzLG/LCSmMsYY35EScyjGGNepiTm0YwxP6ok5jGMMT8WQSZ5PIIxPxHBmJ+MYMzLIxjzUxGM+ekIxvxMBGN+VknMeYwxP6ck5kaMMa9QEnNjxpifVxJzE8aYX1ASc1PGmF9UEnMzxphfUhJzc8aYX1YScwvGmF9REnNLxphfVRJzK8aYX1MSc2vGmF9XEnMbxpjfUBJzW8aY31QSczvGmN9SEnN7xpjfZoy5PZWTQTEnwLLAssFywHLB8JwQz5HwnAEZGpkSGQuZA+dgnJNwjMYxC/sw5jS2cXt6H7cOYB3BOoF1BusC1hWsG1h3sB5gPcF6gfUG6wPWF6wfWH+wAWDnUVkbgUNjwcaBbQy2CdimYJuBbQ42HmwLsC3BJoBNBNsKbBLY1mDbgE0G2xZsCth2YNuD7QCGvxuPv6OOvyuOv7ONvzuNv8OMv0uMv9OLv1uLv+OKv2uKv/OJv3uJvwOJv4uIvxOIv5uHvyOHv6uGvzOGv7uFv0OFv8uEv1OEv9uDv2ODv+uCv3OCv/uBv4OBvwuBv5OAvxuAz9HH58rjc9bxueP4HG58LjU+pxmfW4zP8cXn2uJzXvG5p/gcUHwuJj4nEp+biM8RxOfq4XPm8Llr+BwyfC4XPqcKn9uEzzHC5/rgc27wuS/4HBR8Lgg+JwOfG4HPUcDnCuD37PF75/g9bPxeMn5PF7+3it/jxO814vf88Htv+D0w/F4Ufk8IvzeD3yPB71Xg9wxw3T2uQ8d12bhOGdft4jpWXNeJ6xxx3R+ug8N1YbhOCtcN4ToaXFeC6yxw3QHeh8f70nifFu9b4n08vK+F93nwvgfeB8Dr4nidGK+b4nVEvK6G15nwugteh8DzcjxPxfM2PI9BrkfORe5DDkIuwHkS5w0cR3FcwX7mb/8DNjoow/tNCQA=", "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { diff --git a/yarn-project/aztec.js/src/artifacts/schnorr_single_key_account_contract.json b/yarn-project/aztec.js/src/artifacts/schnorr_single_key_account_contract.json index 16478caedc8..1160631d294 100644 --- a/yarn-project/aztec.js/src/artifacts/schnorr_single_key_account_contract.json +++ b/yarn-project/aztec.js/src/artifacts/schnorr_single_key_account_contract.json @@ -70,7 +70,7 @@ } ], "returnTypes": [], - "bytecode": "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", + "bytecode": "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", "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" }, { diff --git a/yarn-project/bootstrap.sh b/yarn-project/bootstrap.sh index 274408c74f3..e5bc73c47de 100755 --- a/yarn-project/bootstrap.sh +++ b/yarn-project/bootstrap.sh @@ -28,9 +28,7 @@ done yarn --cwd circuits.js remake-bindings yarn --cwd circuits.js remake-constants -yarn workspace @aztec/noir-contracts noir:build:all -yarn workspace @aztec/noir-contracts build - +(cd noir-contracts && ./bootstrap.sh) (cd boxes && ./bootstrap.sh) (cd .. && l1-contracts/bootstrap.sh) diff --git a/yarn-project/cli/src/unbox.ts b/yarn-project/cli/src/unbox.ts index 267c47fbf5f..07fcdd21983 100644 --- a/yarn-project/cli/src/unbox.ts +++ b/yarn-project/cli/src/unbox.ts @@ -63,6 +63,27 @@ async function copyFolderFromGithub(data: JSZip, repositoryFolderPath: string, l } } +/** + * @param data - in memory unzipped clone of a github repo + * @param repositoryFile - path of the file to copy from github repo + * @param localOutputPath - local path to copy the file to + */ +async function copyFileFromGithub(data: JSZip, repositoryFile: string, localOutputPath: string, log: LogFn) { + log(`Downloading file from github: ${repositoryFile}`); + + const file = data.files[repositoryFile]; + + if (!file || file.dir) { + throw new Error(`File not found or it's a directory: ${repositoryFile}`); + } + + const filename = path.basename(repositoryFile); + const targetPath = `${localOutputPath}/${filename}`; + + const content = await file.async('nodebuffer'); + await fs.writeFile(targetPath, content); +} + /** * Not flexible at at all, but quick fix to download a noir smart contract from our * monorepo on github. this will copy over the `yarn-projects/boxes/{contract_name}` folder @@ -98,6 +119,12 @@ async function downloadContractAndBoxFromGithub( const boxPath = `${repoDirectoryPrefix}/${BOXES_PATH}/${contractName}/`; await copyFolderFromGithub(data, boxPath, outputPath, log); + // the expected noir version is contained in + // aztec-packages/yarn-project/noir-compiler/src/noir-version.json + // copy it in and use to update the package.json script to install that version of noir + const noirVersionPath = `${repoDirectoryPrefix}/yarn-project/noir-compiler/src/noir-version.json`; + await copyFileFromGithub(data, noirVersionPath, outputPath, log); + const contractTargetDirectory = path.join(outputPath, 'src', 'contracts'); const boxContainsNoirSource = await isDirectoryNonEmpty(contractTargetDirectory); if (boxContainsNoirSource) { @@ -220,6 +247,13 @@ async function updatePackageJsonVersions(packageVersion: string, outputPath: str } } } + // read the `noir-version.json`, grab the expected noir version, and patch the noir install script + const noirVersionPath = path.join(outputPath, 'noir-version.json'); + const noirVersionContent = await fs.readFile(noirVersionPath, 'utf-8'); + const noirVersionJSON = JSON.parse(noirVersionContent); + const noirTag = noirVersionJSON.tag; + packageData.scripts['install:noir'] = packageData.scripts['install:noir'].replace('NOIR_VERSION', `${noirTag}`); + log(`Updated Noir version to: ${noirTag}`); // modify the version of the sandbox to pull - it's set to "latest" version in the monorepo, // but we need to replace with the same tagVersion as the cli and the other aztec npm packages diff --git a/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts index 921e17e35f3..2aa7f94cbeb 100644 --- a/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts +++ b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts @@ -158,7 +158,7 @@ describe('e2e_cross_chain_messaging', () => { secretForL2MessageConsumption, ) .simulate(), - ).rejects.toThrowError('Cannot satisfy constraint'); + ).rejects.toThrowError("Cannot satisfy constraint 'l1_to_l2_message_data.message.content == content"); // send the right one - const consumptionTx = l2Bridge @@ -231,6 +231,8 @@ describe('e2e_cross_chain_messaging', () => { .withWallet(user2Wallet) .methods.claim_public(ownerAddress, bridgeAmount, ethAccount, messageKey, secretForL2MessageConsumption) .simulate(), - ).rejects.toThrowError('Failed to solve brillig function, reason: explicit trap hit in brillig'); + ).rejects.toThrowError( + "Failed to solve brillig function, reason: explicit trap hit in brillig 'l1_to_l2_message_data.message.content == content'", + ); }, 50_000); }); diff --git a/yarn-project/end-to-end/src/e2e_public_cross_chain_messaging.test.ts b/yarn-project/end-to-end/src/e2e_public_cross_chain_messaging.test.ts index eafa74562a3..d42b21af784 100644 --- a/yarn-project/end-to-end/src/e2e_public_cross_chain_messaging.test.ts +++ b/yarn-project/end-to-end/src/e2e_public_cross_chain_messaging.test.ts @@ -179,6 +179,6 @@ describe('e2e_public_cross_chain_messaging', () => { .withWallet(user2Wallet) .methods.claim_private(secretHash, bridgeAmount, ethAccount, messageKey, secret) .simulate(), - ).rejects.toThrowError('Cannot satisfy constraint'); + ).rejects.toThrowError("Cannot satisfy constraint 'l1_to_l2_message_data.message.content == content"); }); }); diff --git a/yarn-project/end-to-end/src/shared/uniswap_l1_l2.ts b/yarn-project/end-to-end/src/shared/uniswap_l1_l2.ts index 5ac6beaca63..44a7584523f 100644 --- a/yarn-project/end-to-end/src/shared/uniswap_l1_l2.ts +++ b/yarn-project/end-to-end/src/shared/uniswap_l1_l2.ts @@ -588,7 +588,9 @@ export const uniswapL1L2TestSuite = ( await ownerWallet.setPublicAuth(swapMessageHash, true).send().wait(); // Swap! - await expect(action.simulate()).rejects.toThrowError('Assertion failed: Message not authorized by account'); + await expect(action.simulate()).rejects.toThrowError( + "Assertion failed: Message not authorized by account 'result == IS_VALID_SELECTOR'", + ); }); it("uniswap can't pull funds without transfer approval", async () => { @@ -621,7 +623,7 @@ export const uniswapL1L2TestSuite = ( Fr.ZERO, ) .simulate(), - ).rejects.toThrowError('Assertion failed: Message not authorized by account'); + ).rejects.toThrowError(`Assertion failed: Message not authorized by account 'result == IS_VALID_SELECTOR'`); }); // tests when trying to mix private and public flows: diff --git a/yarn-project/noir-compiler/.dockerignore b/yarn-project/noir-compiler/.dockerignore deleted file mode 100644 index 439bb0a6ded..00000000000 --- a/yarn-project/noir-compiler/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -dest -node_modules diff --git a/yarn-project/noir-compiler/src/__snapshots__/index.test.ts.snap b/yarn-project/noir-compiler/src/__snapshots__/index.test.ts.snap index 55530d1b14a..6a2df40de8b 100644 --- a/yarn-project/noir-compiler/src/__snapshots__/index.test.ts.snap +++ b/yarn-project/noir-compiler/src/__snapshots__/index.test.ts.snap @@ -1,6 +1,385 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`noir-compiler using noir_wasm compiles the test contract 1`] = ` +exports[`noir-compiler using nargo binary compiles the test contract 1`] = ` +[ + { + "debug": { + "debugSymbols": [ + "eJyrVsrJT04syczPK1ayqlYyULKKrlYqLkjMA/GKSxKLSpSsDE0MdZRS81KALFOzWh2ltMycVCC7VgdDpbEJVKGZOVydsSkWhUaGZlCVRiaWCKW1sbW1AA1jLOg=", + "eJyrVsrJT04syczPK1ayqq6tBQAz9wY7", + ], + "fileMap": { + "1": { + "path": "/home/ubuntu/host/aztec-packages/yarn-project/noir-compiler/src/fixtures/test_contract/src/main.nr", + "source": "contract TestContract { + use dep::test::module::foo; + + fn constructor(param: Field, pub_param: pub Field) -> pub [Field; 2] { + [foo::bar(param), param + pub_param] + } + + open fn openFunction() -> pub Field { + 42 + } + +} +", + }, + "3": { + "path": "std/hash.nr", + "source": "mod poseidon; + +#[foreign(sha256)] +pub fn sha256(_input : [u8; N]) -> [u8; 32] {} + +#[foreign(blake2s)] +pub fn blake2s(_input : [u8; N]) -> [u8; 32] {} + +pub fn pedersen(input : [Field; N]) -> [Field; 2] { + pedersen_with_separator(input, 0) +} + +#[foreign(pedersen)] +pub fn pedersen_with_separator(_input : [Field; N], _separator : u32) -> [Field; 2] {} + +pub fn pedersen_hash(input : [Field; N]) -> Field { + pedersen_hash_with_separator(input, 0) +} + +#[foreign(pedersen_hash)] +pub fn pedersen_hash_with_separator(_input : [Field; N], _separator : u32) -> Field {} + +#[foreign(hash_to_field_128_security)] +pub fn hash_to_field(_input : [Field; N]) -> Field {} + +#[foreign(keccak256)] +pub fn keccak256(_input : [u8; N], _message_size: u32) -> [u8; 32] {} + +// mimc-p/p implementation +// constants are (publicly generated) random numbers, for instance using keccak as a ROM. +// You must use constants generated for the native field +// Rounds number should be ~ log(p)/log(exp) +// For 254 bit primes, exponent 7 and 91 rounds seems to be recommended +fn mimc(x: Field, k: Field, constants: [Field; N], exp : Field) -> Field { + //round 0 + let mut t = x + k; + let mut h = t.pow_32(exp); + //next rounds + for i in 1 .. constants.len() { + t = h + k + constants[i]; + h = t.pow_32(exp); + }; + h + k +} + +global MIMC_BN254_ROUNDS = 91; + +//mimc implementation with hardcoded parameters for BN254 curve. +pub fn mimc_bn254(array: [Field; N]) -> Field { + //mimc parameters + let exponent = 7; + //generated from seed "mimc" using keccak256 + let constants: [Field; MIMC_BN254_ROUNDS] = [ + 0, + 20888961410941983456478427210666206549300505294776164667214940546594746570981, + 15265126113435022738560151911929040668591755459209400716467504685752745317193, + 8334177627492981984476504167502758309043212251641796197711684499645635709656, + 1374324219480165500871639364801692115397519265181803854177629327624133579404, + 11442588683664344394633565859260176446561886575962616332903193988751292992472, + 2558901189096558760448896669327086721003508630712968559048179091037845349145, + 11189978595292752354820141775598510151189959177917284797737745690127318076389, + 3262966573163560839685415914157855077211340576201936620532175028036746741754, + 17029914891543225301403832095880481731551830725367286980611178737703889171730, + 4614037031668406927330683909387957156531244689520944789503628527855167665518, + 19647356996769918391113967168615123299113119185942498194367262335168397100658, + 5040699236106090655289931820723926657076483236860546282406111821875672148900, + 2632385916954580941368956176626336146806721642583847728103570779270161510514, + 17691411851977575435597871505860208507285462834710151833948561098560743654671, + 11482807709115676646560379017491661435505951727793345550942389701970904563183, + 8360838254132998143349158726141014535383109403565779450210746881879715734773, + 12663821244032248511491386323242575231591777785787269938928497649288048289525, + 3067001377342968891237590775929219083706800062321980129409398033259904188058, + 8536471869378957766675292398190944925664113548202769136103887479787957959589, + 19825444354178182240559170937204690272111734703605805530888940813160705385792, + 16703465144013840124940690347975638755097486902749048533167980887413919317592, + 13061236261277650370863439564453267964462486225679643020432589226741411380501, + 10864774797625152707517901967943775867717907803542223029967000416969007792571, + 10035653564014594269791753415727486340557376923045841607746250017541686319774, + 3446968588058668564420958894889124905706353937375068998436129414772610003289, + 4653317306466493184743870159523234588955994456998076243468148492375236846006, + 8486711143589723036499933521576871883500223198263343024003617825616410932026, + 250710584458582618659378487568129931785810765264752039738223488321597070280, + 2104159799604932521291371026105311735948154964200596636974609406977292675173, + 16313562605837709339799839901240652934758303521543693857533755376563489378839, + 6032365105133504724925793806318578936233045029919447519826248813478479197288, + 14025118133847866722315446277964222215118620050302054655768867040006542798474, + 7400123822125662712777833064081316757896757785777291653271747396958201309118, + 1744432620323851751204287974553233986555641872755053103823939564833813704825, + 8316378125659383262515151597439205374263247719876250938893842106722210729522, + 6739722627047123650704294650168547689199576889424317598327664349670094847386, + 21211457866117465531949733809706514799713333930924902519246949506964470524162, + 13718112532745211817410303291774369209520657938741992779396229864894885156527, + 5264534817993325015357427094323255342713527811596856940387954546330728068658, + 18884137497114307927425084003812022333609937761793387700010402412840002189451, + 5148596049900083984813839872929010525572543381981952060869301611018636120248, + 19799686398774806587970184652860783461860993790013219899147141137827718662674, + 19240878651604412704364448729659032944342952609050243268894572835672205984837, + 10546185249390392695582524554167530669949955276893453512788278945742408153192, + 5507959600969845538113649209272736011390582494851145043668969080335346810411, + 18177751737739153338153217698774510185696788019377850245260475034576050820091, + 19603444733183990109492724100282114612026332366576932662794133334264283907557, + 10548274686824425401349248282213580046351514091431715597441736281987273193140, + 1823201861560942974198127384034483127920205835821334101215923769688644479957, + 11867589662193422187545516240823411225342068709600734253659804646934346124945, + 18718569356736340558616379408444812528964066420519677106145092918482774343613, + 10530777752259630125564678480897857853807637120039176813174150229243735996839, + 20486583726592018813337145844457018474256372770211860618687961310422228379031, + 12690713110714036569415168795200156516217175005650145422920562694422306200486, + 17386427286863519095301372413760745749282643730629659997153085139065756667205, + 2216432659854733047132347621569505613620980842043977268828076165669557467682, + 6309765381643925252238633914530877025934201680691496500372265330505506717193, + 20806323192073945401862788605803131761175139076694468214027227878952047793390, + 4037040458505567977365391535756875199663510397600316887746139396052445718861, + 19948974083684238245321361840704327952464170097132407924861169241740046562673, + 845322671528508199439318170916419179535949348988022948153107378280175750024, + 16222384601744433420585982239113457177459602187868460608565289920306145389382, + 10232118865851112229330353999139005145127746617219324244541194256766741433339, + 6699067738555349409504843460654299019000594109597429103342076743347235369120, + 6220784880752427143725783746407285094967584864656399181815603544365010379208, + 6129250029437675212264306655559561251995722990149771051304736001195288083309, + 10773245783118750721454994239248013870822765715268323522295722350908043393604, + 4490242021765793917495398271905043433053432245571325177153467194570741607167, + 19596995117319480189066041930051006586888908165330319666010398892494684778526, + 837850695495734270707668553360118467905109360511302468085569220634750561083, + 11803922811376367215191737026157445294481406304781326649717082177394185903907, + 10201298324909697255105265958780781450978049256931478989759448189112393506592, + 13564695482314888817576351063608519127702411536552857463682060761575100923924, + 9262808208636973454201420823766139682381973240743541030659775288508921362724, + 173271062536305557219323722062711383294158572562695717740068656098441040230, + 18120430890549410286417591505529104700901943324772175772035648111937818237369, + 20484495168135072493552514219686101965206843697794133766912991150184337935627, + 19155651295705203459475805213866664350848604323501251939850063308319753686505, + 11971299749478202793661982361798418342615500543489781306376058267926437157297, + 18285310723116790056148596536349375622245669010373674803854111592441823052978, + 7069216248902547653615508023941692395371990416048967468982099270925308100727, + 6465151453746412132599596984628739550147379072443683076388208843341824127379, + 16143532858389170960690347742477978826830511669766530042104134302796355145785, + 19362583304414853660976404410208489566967618125972377176980367224623492419647, + 1702213613534733786921602839210290505213503664731919006932367875629005980493, + 10781825404476535814285389902565833897646945212027592373510689209734812292327, + 4212716923652881254737947578600828255798948993302968210248673545442808456151, + 7594017890037021425366623750593200398174488805473151513558919864633711506220, + 18979889247746272055963929241596362599320706910852082477600815822482192194401, + 13602139229813231349386885113156901793661719180900395818909719758150455500533, + ]; + + let mut r = 0; + for elem in array { + let h = mimc(elem, r, constants, exponent); + r = r + elem + h; + } + r +} +", + }, + "35": { + "path": "/home/ubuntu/host/aztec-packages/yarn-project/noir-compiler/src/fixtures/test_lib/src/module/foo.nr", + "source": "fn bar(param: Field) -> Field { + dep::std::hash::pedersen([param])[0] +}", + }, + }, + }, + "events": [], + "functions": [ + { + "bytecode": "H4sIAAAAAAAA/61RQQ7DMAij6bL3QIAGbvvKoqX/f8G0TqVSem4tWTYXC9kZABLsmDY+Q4/7G37e+IAz5tBXKF4DTTdmpSGLcRHptXRiemPxZoqibTEyUtNPMeZuYtWbV3QS7rSq8xph+b6/cOz28GnY4N9pHjr+AWqna3ugAQAA", + "functionType": "secret", + "isInternal": false, + "name": "constructor", + "parameters": [ + { + "name": "pub_param", + "type": { + "kind": "field", + }, + "visibility": "public", + }, + ], + "returnTypes": [], + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f", + }, + { + "bytecode": "H4sIAAAAAAAA/6WPuwnAMAxE5Y30taUuq9hE3n+EFEnAEFL5NQdXHPcKABT48nbHk4JVNRsnCXXkGG6oNqqTk7md7CLp6i1GNAxSSZoWMvGmLFu4Bfe/r6vHBVdaDl3YAAAA", + "functionType": "open", + "isInternal": false, + "name": "openFunction", + "parameters": [], + "returnTypes": [ + { + "kind": "field", + }, + ], + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f", + }, + ], + "name": "TestContract", + }, +] +`; + +exports[`noir-compiler using nargo binary generates Aztec.nr external interface 1`] = ` +"/* Autogenerated file, do not edit! */ + +use dep::std; +use dep::aztec::context::{ PrivateContext, PublicContext }; +use dep::aztec::constants_gen::RETURN_VALUES_LENGTH; + + + +// Interface for calling TestContract functions from a private context +struct TestContractPrivateContextInterface { + address: Field, +} + +impl TestContractPrivateContextInterface { + pub fn at(address: Field) -> Self { + Self { + address, + } + } + + pub fn openFunction( + self, + context: &mut PrivateContext + ) { + let mut serialized_args = [0; 0]; + + context.call_public_function(self.address, 0x46be982e, serialized_args) + } + +} + + + + +// Interface for calling TestContract functions from a public context +struct TestContractPublicContextInterface { + address: Field, +} + +impl TestContractPublicContextInterface { + pub fn at(address: Field) -> Self { + Self { + address, + } + } + + pub fn openFunction( + self, + context: PublicContext + ) -> [Field; RETURN_VALUES_LENGTH] { + let mut serialized_args = [0; 0]; + + context.call_public_function(self.address, 0x46be982e, serialized_args) + } + +} + + +" +`; + +exports[`noir-compiler using nargo binary generates typescript interface 1`] = ` +" +/* Autogenerated file, do not edit! */ + +/* eslint-disable */ +import { + AztecAddress, + AztecAddressLike, + CompleteAddress, + Contract, + ContractArtifact, + ContractBase, + ContractFunctionInteraction, + ContractMethod, + DeployMethod, + EthAddress, + EthAddressLike, + FieldLike, + Fr, + Point, + PublicKey, + Wallet, +} from '@aztec/aztec.js'; +import TestContractContractArtifactJson from '../target/test.json' assert { type: 'json' }; +export const TestContractContractArtifact = TestContractContractArtifactJson as ContractArtifact; + +/** + * Type-safe interface for contract TestContract; + */ +export class TestContractContract extends ContractBase { + + private constructor( + completeAddress: CompleteAddress, + wallet: Wallet, + portalContract = EthAddress.ZERO + ) { + super(completeAddress, TestContractContractArtifact, wallet, portalContract); + } + + + + /** + * Creates a contract instance. + * @param address - The deployed contract's address. + * @param wallet - The wallet to use when interacting with the contract. + * @returns A promise that resolves to a new Contract instance. + */ + public static async at( + address: AztecAddress, + wallet: Wallet, + ) { + return Contract.at(address, TestContractContract.artifact, wallet) as Promise; + } + + + /** + * Creates a tx to deploy a new instance of this contract. + */ + public static deploy(wallet: Wallet, pub_param: FieldLike) { + return new DeployMethod(Point.ZERO, wallet, TestContractContractArtifact, Array.from(arguments).slice(1)); + } + + /** + * Creates a tx to deploy a new instance of this contract using the specified public key to derive the address. + */ + public static deployWithPublicKey(publicKey: PublicKey, wallet: Wallet, pub_param: FieldLike) { + return new DeployMethod(publicKey, wallet, TestContractContractArtifact, Array.from(arguments).slice(2)); + } + + + + /** + * Returns this contract's artifact. + */ + public static get artifact(): ContractArtifact { + return TestContractContractArtifact; + } + + + /** Type-safe wrappers for the public methods exposed by the contract. */ + public methods!: { + + /** openFunction() */ + openFunction: (() => ContractFunctionInteraction) & Pick; + }; +} +" +`; + +exports[`noir-compiler using noir_wasm binary compiles the test contract 1`] = ` [ { "debug": undefined, @@ -42,7 +421,7 @@ exports[`noir-compiler using noir_wasm compiles the test contract 1`] = ` ] `; -exports[`noir-compiler using noir_wasm generates Aztec.nr external interface 1`] = ` +exports[`noir-compiler using noir_wasm binary generates Aztec.nr external interface 1`] = ` "/* Autogenerated file, do not edit! */ use dep::std; @@ -104,7 +483,7 @@ impl TestContractPublicContextInterface { " `; -exports[`noir-compiler using noir_wasm generates typescript interface 1`] = ` +exports[`noir-compiler using noir_wasm binary generates typescript interface 1`] = ` " /* Autogenerated file, do not edit! */ diff --git a/yarn-project/noir-compiler/src/cli/contract.ts b/yarn-project/noir-compiler/src/cli/contract.ts index f3e7d970069..454385664ff 100644 --- a/yarn-project/noir-compiler/src/cli/contract.ts +++ b/yarn-project/noir-compiler/src/cli/contract.ts @@ -5,7 +5,12 @@ import { mkdirSync, writeFileSync } from 'fs'; import { mkdirpSync } from 'fs-extra'; import path, { resolve } from 'path'; -import { compileUsingNoirWasm, generateNoirContractInterface, generateTypescriptContractInterface } from '../index.js'; +import { + compileUsingNargo, + compileUsingNoirWasm, + generateNoirContractInterface, + generateTypescriptContractInterface, +} from '../index.js'; /** * Registers a 'contract' command on the given commander program that compiles an Aztec.nr contract project. @@ -20,6 +25,7 @@ export function compileContract(program: Command, name = 'contract', log: LogFn .option('-o, --outdir ', 'Output folder for the binary artifacts, relative to the project path', 'target') .option('-ts, --typescript ', 'Optional output folder for generating typescript wrappers', undefined) .option('-i, --interface ', 'Optional output folder for generating an Aztec.nr contract interface', undefined) + .option('-c --compiler nargo|wasm', 'Which compiler to use. Defaults to nargo', 'nargo') .description('Compiles the contracts in the target project') .action( @@ -30,15 +36,17 @@ export function compileContract(program: Command, name = 'contract', log: LogFn outdir: string; typescript: string | undefined; interface: string | undefined; + compiler: string | undefined; }, /* eslint-enable jsdoc/require-jsdoc */ ) => { - const { outdir, typescript, interface: noirInterface } = options; + const { outdir, typescript, interface: noirInterface, compiler = 'nargo' } = options; if (typeof projectPath !== 'string') throw new Error(`Missing project path argument`); const currentDir = process.cwd(); + const compile = compiler === 'wasm' ? compileUsingNoirWasm : compileUsingNargo; log(`Compiling contracts...`); - const result = await compileUsingNoirWasm(projectPath, { log }); + const result = await compile(projectPath, { log }); for (const contract of result) { const artifactPath = resolve(projectPath, outdir, `${contract.name}.json`); diff --git a/yarn-project/noir-compiler/src/compile/nargo.ts b/yarn-project/noir-compiler/src/compile/nargo.ts new file mode 100644 index 00000000000..85443ebf631 --- /dev/null +++ b/yarn-project/noir-compiler/src/compile/nargo.ts @@ -0,0 +1,86 @@ +import { LogFn, createDebugLogger } from '@aztec/foundation/log'; + +import { execSync } from 'child_process'; +import { readFileSync, readdirSync, statSync, unlinkSync } from 'fs'; +import { emptyDirSync } from 'fs-extra'; +import path from 'path'; + +import { NoirCommit, NoirTag } from '../index.js'; +import { NoirCompilationArtifacts, NoirCompiledContract, NoirDebugMetadata } from '../noir_artifact.js'; + +/** Compilation options */ +export type CompileOpts = { + /** Silence output from nargo compile. */ + quiet?: boolean; + /** Path to the nargo binary. */ + nargoBin?: string; + /** Logging function */ + log?: LogFn; +}; + +/** + * A class that compiles Aztec.nr contracts using nargo via the shell. + */ +export class NargoContractCompiler { + private log: LogFn; + constructor(private projectPath: string, private opts: CompileOpts = {}) { + this.log = opts.log ?? createDebugLogger('aztec:noir-compiler'); + } + + /** + * Compiles the contracts in projectPath and returns the Aztec.nr artifact. + * @returns Aztec.nr artifact of the compiled contracts. + */ + public compile(): Promise { + const stdio = this.opts.quiet ? 'ignore' : 'inherit'; + const nargoBin = this.opts.nargoBin ?? 'nargo'; + const version = execSync(`${nargoBin} --version`, { cwd: this.projectPath, stdio: 'pipe' }).toString(); + this.checkNargoBinVersion(version.replace('\n', '')); + emptyDirSync(this.getTargetFolder()); + execSync(`${nargoBin} compile --no-backend`, { cwd: this.projectPath, stdio }); + return Promise.resolve(this.collectArtifacts()); + } + + private checkNargoBinVersion(version: string) { + if (!version.includes(NoirCommit)) { + this.log( + `Warning: the nargo version installed locally does not match the expected one. This may cause issues when compiling or deploying contracts. Consider updating your nargo or aztec-cli installation. \n- Expected: ${NoirTag} (git version hash: ${NoirCommit})\n- Found: ${version}`, + ); + } else if (!this.opts.quiet) { + this.log(`Using ${version}`); + } + } + + private collectArtifacts(): NoirCompilationArtifacts[] { + const contractArtifacts = new Map(); + const debugArtifacts = new Map(); + + for (const filename of readdirSync(this.getTargetFolder())) { + const file = path.join(this.getTargetFolder(), filename); + if (statSync(file).isFile() && file.endsWith('.json')) { + if (filename.startsWith('debug_')) { + debugArtifacts.set( + filename.replace('debug_', ''), + JSON.parse(readFileSync(file).toString()) as NoirDebugMetadata, + ); + } else { + contractArtifacts.set(filename, JSON.parse(readFileSync(file).toString()) as NoirCompiledContract); + } + // Delete the file as it is not needed anymore and it can cause issues with prettier + unlinkSync(file); + } + } + + return [...contractArtifacts.entries()].map(([filename, contractArtifact]) => { + const debugArtifact = debugArtifacts.get(filename); + return { + contract: contractArtifact, + debug: debugArtifact, + }; + }); + } + + private getTargetFolder() { + return path.join(this.projectPath, 'target'); + } +} diff --git a/yarn-project/noir-compiler/src/index.test.ts b/yarn-project/noir-compiler/src/index.test.ts index 9fe58a9764b..1e6a1860b26 100644 --- a/yarn-project/noir-compiler/src/index.test.ts +++ b/yarn-project/noir-compiler/src/index.test.ts @@ -2,9 +2,24 @@ import { ContractArtifact } from '@aztec/foundation/abi'; import { LogFn, createDebugLogger } from '@aztec/foundation/log'; import { fileURLToPath } from '@aztec/foundation/url'; +import { execSync } from 'child_process'; import path from 'path'; -import { compileUsingNoirWasm, generateNoirContractInterface, generateTypescriptContractInterface } from './index.js'; +import { + compileUsingNargo, + compileUsingNoirWasm, + generateNoirContractInterface, + generateTypescriptContractInterface, +} from './index.js'; + +function isNargoAvailable() { + try { + execSync(`which nargo`); + return true; + } catch (error) { + return false; + } +} describe('noir-compiler', () => { let projectPath: string; @@ -15,10 +30,18 @@ describe('noir-compiler', () => { log = createDebugLogger('noir-compiler:test'); }); - describe('using noir_wasm', () => { + const tests: Array<[string, (path: string, opts: { log: LogFn }) => Promise]> = [ + ['noir_wasm', compileUsingNoirWasm], + ]; + + if (isNargoAvailable()) { + tests.push(['nargo', compileUsingNargo]); + } + + describe.each(tests)('using %s binary', (_, compileFn) => { let compiled: ContractArtifact[]; beforeAll(async () => { - compiled = await compileUsingNoirWasm(projectPath, { log }); + compiled = await compileFn(projectPath, { log }); }); it('compiles the test contract', () => { @@ -35,4 +58,16 @@ describe('noir-compiler', () => { expect(result).toMatchSnapshot(); }); }); + + const conditionalIt = isNargoAvailable() ? it : it.skip; + conditionalIt('both nargo and noir_wasm should compile identically', async () => { + const [noirWasmArtifact, nargoArtifact] = await Promise.all([ + compileUsingNoirWasm(projectPath, { log }), + compileUsingNargo(projectPath, { log }), + ]); + + const withoutDebug = ({ debug: _debug, ...rest }: ContractArtifact): Omit => rest; + + expect(nargoArtifact.map(withoutDebug)).toEqual(noirWasmArtifact.map(withoutDebug)); + }); }); diff --git a/yarn-project/noir-compiler/src/index.ts b/yarn-project/noir-compiler/src/index.ts index f7a5333d374..4da91b9b146 100644 --- a/yarn-project/noir-compiler/src/index.ts +++ b/yarn-project/noir-compiler/src/index.ts @@ -2,11 +2,12 @@ import { ContractArtifact } from '@aztec/foundation/abi'; import { join, resolve } from 'path'; +import { CompileOpts, NargoContractCompiler } from './compile/nargo.js'; import { OnDiskFileManager } from './compile/noir/file-manager/on-disk-file-manager.js'; import { NoirWasmCompileOptions, NoirWasmContractCompiler } from './compile/noir/noir-wasm-compiler.js'; import { generateContractArtifact } from './contract-interface-gen/abi.js'; -export { NoirVersion } from './noir-version.js'; +export * from './noir-version.js'; export { generateNoirContractInterface } from './contract-interface-gen/noir.js'; export { generateTypescriptContractInterface } from './contract-interface-gen/typescript.js'; @@ -15,6 +16,17 @@ export { generateContractArtifact }; /** * Compile Aztec.nr contracts in project path using a nargo binary available in the shell. * @param projectPath - Path to project. + * @param opts - Compiler options. + * @returns Compiled artifacts. + */ +export async function compileUsingNargo(projectPath: string, opts: CompileOpts = {}): Promise { + return (await new NargoContractCompiler(projectPath, opts).compile()).map(generateContractArtifact); +} + +/** + * Compile Aztec.nr contracts in project path using built-in noir_wasm. + * @param projectPath - Path to project. + * @param opts - Compiler options. * @returns Compiled artifacts. */ export async function compileUsingNoirWasm( diff --git a/yarn-project/noir-compiler/src/noir-version.json b/yarn-project/noir-compiler/src/noir-version.json new file mode 100644 index 00000000000..59bd6879a72 --- /dev/null +++ b/yarn-project/noir-compiler/src/noir-version.json @@ -0,0 +1,4 @@ +{ + "tag": "v0.17.0-aztec.5", + "commit": "b6819f6261e63cea3e653a1b874727a2b5919f5e" +} diff --git a/yarn-project/noir-compiler/src/noir-version.ts b/yarn-project/noir-compiler/src/noir-version.ts index daeaad75918..43f9383e7d4 100644 --- a/yarn-project/noir-compiler/src/noir-version.ts +++ b/yarn-project/noir-compiler/src/noir-version.ts @@ -1,5 +1,12 @@ import { readFileSync } from 'node:fs'; -// read package.json at runtime instead of compile time so that we keept rootDir as-is in tsconfig +import NoirVersion from './noir-version.json' assert { type: 'json' }; + +// read package.json at runtime instead of compile time so that we keep rootDir as-is in tsconfig const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf-8')); -export const NoirVersion = pkg.dependencies['@noir-lang/noir_wasm']; + +export const NoirWasmVersion = pkg.dependencies['@noir-lang/noir_wasm']; +export const NoirTag = NoirVersion.tag; +export const NoirCommit = NoirVersion.commit; + +export { NoirVersion }; diff --git a/yarn-project/noir-compiler/tsconfig.json b/yarn-project/noir-compiler/tsconfig.json index 63f8ab3e9f7..a2d81aa678d 100644 --- a/yarn-project/noir-compiler/tsconfig.json +++ b/yarn-project/noir-compiler/tsconfig.json @@ -10,5 +10,5 @@ "path": "../foundation" } ], - "include": ["src"] + "include": ["src", "src/*.json"] } diff --git a/yarn-project/noir-contracts/Dockerfile b/yarn-project/noir-contracts/Dockerfile new file mode 100644 index 00000000000..5600d0a9e98 --- /dev/null +++ b/yarn-project/noir-contracts/Dockerfile @@ -0,0 +1,20 @@ +FROM ubuntu:lunar +RUN apt-get update && apt-get install -y \ + jq \ + curl \ + git \ + sed +WORKDIR /usr/src/yarn-project +COPY noir-contracts noir-contracts +COPY noir-compiler noir-compiler +COPY aztec-nr aztec-nr +WORKDIR /usr/src/yarn-project/noir-contracts + +# Download and extract nargo +ENV NARGO_HOME="/usr/src/yarn-project/noir-contracts/.nargo" +RUN ./scripts/install_noirup.sh $(pwd) +ENV PATH="/usr/src/yarn-project/noir-contracts/.nargo/bin:${PATH}" + +RUN ./scripts/install_noir.sh +RUN ./scripts/compile_all.sh +RUN ./scripts/nargo_test_ci.sh diff --git a/yarn-project/noir-contracts/bootstrap.sh b/yarn-project/noir-contracts/bootstrap.sh new file mode 100755 index 00000000000..1077490d138 --- /dev/null +++ b/yarn-project/noir-contracts/bootstrap.sh @@ -0,0 +1,15 @@ +#!/bin/bash + +# Install noir if it is not installed already +if ! command -v noirup &> /dev/null +then + echo "Installing noir" + source ./scripts/install_noirup.sh +fi + +# Update noir +./scripts/install_noir.sh + +# Use yarn script to compile and create types +yarn +yarn noir:build:all \ No newline at end of file diff --git a/yarn-project/noir-contracts/scripts/catch.sh b/yarn-project/noir-contracts/scripts/catch.sh new file mode 100644 index 00000000000..8a0a894b93f --- /dev/null +++ b/yarn-project/noir-contracts/scripts/catch.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +# Handler for SIGCHLD, cleanup if child exit with error, used by nargo_test.sh and compile.sh +handle_sigchld() { + for pid in "${pids[@]}"; do + # If process is no longer running + if ! kill -0 "$pid" 2>/dev/null; then + # Wait for the process and get exit status + wait "$pid" + status=$? + + # If exit status is error + if [ $status -ne 0 ]; then + # Create error file + touch "$error_file" + fi + fi + done +} \ No newline at end of file diff --git a/yarn-project/noir-contracts/scripts/compile_all.sh b/yarn-project/noir-contracts/scripts/compile_all.sh index 0e0d7e466dd..1cd26131e89 100755 --- a/yarn-project/noir-contracts/scripts/compile_all.sh +++ b/yarn-project/noir-contracts/scripts/compile_all.sh @@ -1,7 +1,13 @@ #!/bin/bash # Compiles all noir contracts +source ./scripts/nargo_check.sh + +echo "Checking noir version" +nargo_check + # Runs the compile scripts for all contracts. echo "Compiling all contracts" -./scripts/compile.sh $(./scripts/get_all_contracts.sh) +# ./scripts/compile.sh $(./scripts/get_all_contracts.sh) +nargo compile --workspace --no-backend diff --git a/yarn-project/noir-contracts/scripts/get_all_libraries.sh b/yarn-project/noir-contracts/scripts/get_all_libraries.sh new file mode 100755 index 00000000000..f1913a46caf --- /dev/null +++ b/yarn-project/noir-contracts/scripts/get_all_libraries.sh @@ -0,0 +1,3 @@ +#!/bin/bash +# Utility to get the names of all noir libraries located in ../aztec-nr +echo $(ls -d ../aztec-nr/*/Nargo.toml | sed -r "s/..\\/aztec-nr\\/(.+)\\/Nargo.toml/\\1/") \ No newline at end of file diff --git a/yarn-project/noir-contracts/scripts/install_noir.sh b/yarn-project/noir-contracts/scripts/install_noir.sh new file mode 100755 index 00000000000..325e9a56620 --- /dev/null +++ b/yarn-project/noir-contracts/scripts/install_noir.sh @@ -0,0 +1,8 @@ +#!/bin/bash +# Script to install noirup and the latest aztec nargo +set -eu + +VERSION="${VERSION:-$(jq -r '.tag' ../noir-compiler/src/noir-version.json)}" + +# Install nargo +noirup -v $VERSION diff --git a/yarn-project/noir-contracts/scripts/install_noirup.sh b/yarn-project/noir-contracts/scripts/install_noirup.sh new file mode 100755 index 00000000000..11ba9b15d31 --- /dev/null +++ b/yarn-project/noir-contracts/scripts/install_noirup.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# Script to install noirup and the latest nargo +set -eu + +SPECIFIED_HOME=${1:-$HOME} + +export NARGO_HOME="$SPECIFIED_HOME/.nargo" +NARGO_BIN_DIR="$NARGO_HOME/bin" +BIN_URL="https://raw.githubusercontent.com/noir-lang/noirup/master/noirup" +BIN_PATH="$NARGO_BIN_DIR/noirup" +NARGO_MAN_DIR="$NARGO_HOME/share/man/man1" + +# Clean +rm -rf $NARGO_HOME + +# Install noirup. +mkdir -p $NARGO_BIN_DIR +mkdir -p $NARGO_MAN_DIR + +curl -# -Ls $BIN_URL -o $BIN_PATH +chmod +x $BIN_PATH +export PATH=$NARGO_BIN_DIR:$PATH diff --git a/yarn-project/noir-contracts/scripts/nargo_check.sh b/yarn-project/noir-contracts/scripts/nargo_check.sh new file mode 100644 index 00000000000..10d9d14c2c1 --- /dev/null +++ b/yarn-project/noir-contracts/scripts/nargo_check.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# Check nargo version matches the expected one +nargo_check() { + echo "Using $(nargo --version)" + EXPECTED_VERSION=$(jq -r '.commit' ../noir-compiler/src/noir-version.json) + FOUND_VERSION=$(nargo --version | grep -o 'git version hash: [0-9a-f]*' | cut -d' ' -f4) + if [ "$EXPECTED_VERSION" != "$FOUND_VERSION" ]; then + echo "Expected nargo version $EXPECTED_VERSION but found version $FOUND_VERSION. Aborting." + + # Get the directory of the script and the parent directory, where its meant to be run + SCRIPT_DIR="$(dirname "$(realpath "$0")")" + PARENT_DIR="$(dirname "$SCRIPT_DIR")" + + # bootstrap.sh calls this non-interactively, so we can't just ask for confirmation to autorun this script. + echo "To fix the version issue, you can run the following command:" + echo "cd $PARENT_DIR && scripts/install_noir.sh" + exit 1 + fi +} diff --git a/yarn-project/noir-contracts/scripts/nargo_test.sh b/yarn-project/noir-contracts/scripts/nargo_test.sh new file mode 100755 index 00000000000..8468c19f492 --- /dev/null +++ b/yarn-project/noir-contracts/scripts/nargo_test.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +# Tests noir contracts, if multiple are provided, then they are testing in parallel, bubbling any testing errors +# +# Usage: +# If testing a single contract: +# ./scripts/test.sh CONTRACT +# If testing multiple contracts: +# ./scripts/test.sh CONTRACT ... +# If testing a library: +# ./scripts/test.sh LIB +# If testing multiple libraries: +# ./scripts/test.sh LIB ... + +source ./scripts/catch.sh + +ROOT=$(pwd) + +# Get the project type from the first argument +PROJECT_TYPE=$1 +shift + +# Error flag file +error_file="/tmp/error.$$" +# Array of child PIDs +pids=() + +# Set SIGCHLD handler +trap handle_sigchld SIGCHLD # Trap any ERR signal and call the custom error handler + +test() { + PROJECT_NAME=$1 + + if [ "$PROJECT_TYPE" == "CONTRACT" ]; then + CONTRACT_FOLDER="${PROJECT_NAME}_contract" + echo "Testing contract $PROJECT_NAME..." + cd src/contracts/$CONTRACT_FOLDER + nargo test --package ${PROJECT_NAME}_contract + else + echo "Testing library $PROJECT_NAME..." + cd ../aztec-nr/$PROJECT_NAME + nargo test + fi +} + +echo "Using $(nargo --version)" + +# Build contracts +for PROJECT_NAME in "$@"; do + test $PROJECT_NAME & + pids+=($!) +done + +# Wait for all background processes to finish +wait + +# If error file exists, exit with error +if [ -f "$error_file" ]; then + rm "$error_file" + echo "Error occurred in one or more child processes. Exiting..." + exit 1 +fi diff --git a/yarn-project/noir-contracts/scripts/nargo_test_ci.sh b/yarn-project/noir-contracts/scripts/nargo_test_ci.sh new file mode 100755 index 00000000000..5a4458d4da5 --- /dev/null +++ b/yarn-project/noir-contracts/scripts/nargo_test_ci.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +# Runs tests scripts for all contracts, then for all libraries. +./scripts/nargo_test.sh CONTRACT $(./scripts/get_all_contracts.sh) +./scripts/nargo_test.sh LIB $(./scripts/get_all_libraries.sh) \ No newline at end of file diff --git a/yarn-project/noir-contracts/scripts/types_all.sh b/yarn-project/noir-contracts/scripts/types_all.sh index 5cbb3ce9d91..fe2b1685276 100755 --- a/yarn-project/noir-contracts/scripts/types_all.sh +++ b/yarn-project/noir-contracts/scripts/types_all.sh @@ -1,3 +1,6 @@ #!/bin/bash # Run the types script for all files ./scripts/types.sh $(./scripts/get_all_contracts.sh) + +# Remove the debug files as they are no longer needed and can cause prettier and build issues +rm -r ./target/debug* diff --git a/yarn-project/noir-contracts/src/scripts/copy_output.ts b/yarn-project/noir-contracts/src/scripts/copy_output.ts index 00c6e829639..5477b601335 100644 --- a/yarn-project/noir-contracts/src/scripts/copy_output.ts +++ b/yarn-project/noir-contracts/src/scripts/copy_output.ts @@ -1,6 +1,10 @@ import { ContractArtifact } from '@aztec/foundation/abi'; import { createConsoleLogger } from '@aztec/foundation/log'; -import { generateNoirContractInterface, generateTypescriptContractInterface } from '@aztec/noir-compiler'; +import { + generateContractArtifact, + generateNoirContractInterface, + generateTypescriptContractInterface, +} from '@aztec/noir-compiler'; import { readFileSync, writeFileSync } from 'fs'; import camelCase from 'lodash.camelcase'; @@ -41,15 +45,54 @@ function writeToProject(artifact: any) { } } +/** + * Processes nargo workspace artifacts + * @param projectName - The project name + * @param contractName - The contract name + */ +function processNargoWorkspaceArtifact(projectName: string, contractName: string) { + const artifactFile = `${projectName}-${contractName}.json`; + + const buildJsonFilePath = `./target/${artifactFile}`; + const buildJson = JSON.parse(readFileSync(buildJsonFilePath).toString()); + + const debugArtifactFile = `debug_${artifactFile}`; + let debug = undefined; + + try { + const debugJsonFilePath = `./target/${debugArtifactFile}`; + const debugJson = JSON.parse(readFileSync(debugJsonFilePath).toString()); + if (debugJson) { + debug = debugJson; + } + } catch (err) { + // Ignore + } + // Remove extraneous information from the buildJson (which was output by Nargo) to hone in on the function data we actually care about: + const artifactJson: ContractArtifact = generateContractArtifact({ contract: buildJson, debug }); + return artifactJson; +} + +/** + * Processes an artifact generated by noir-compiler. + * Currently unused. This should be used once contracts are compiled with `noir-compiler` instead of Nargo. + * + * @param projectName - The name of the project + * @param contractName - The name of the contract + */ +function _processNoirCompilerArtifact(projectName: string, contractName: string) { + const artifactJsonFilePath = `src/contracts/${projectName}/target/${contractName}.json`; + const artifactJson: ContractArtifact = JSON.parse(readFileSync(artifactJsonFilePath).toString()); + return artifactJson; +} + const main = () => { const name = process.argv[2]; if (!name) throw new Error(`Missing argument contract name`); const projectName = `${snakeCase(name)}_contract`; - const contractName = upperFirst(camelCase(name)); - const artifactJsonFilePath = `src/contracts/${projectName}/target/${contractName}.json`; - const artifactJson: ContractArtifact = JSON.parse(readFileSync(artifactJsonFilePath).toString()); + const artifactJson = processNargoWorkspaceArtifact(projectName, contractName); // Write the artifact: const artifactsDir = 'src/artifacts'; diff --git a/yarn-project/pxe/src/pxe_service/pxe_service.ts b/yarn-project/pxe/src/pxe_service/pxe_service.ts index 2ddf91dc129..16a7349a920 100644 --- a/yarn-project/pxe/src/pxe_service/pxe_service.ts +++ b/yarn-project/pxe/src/pxe_service/pxe_service.ts @@ -421,7 +421,7 @@ export class PXEService implements PXE { const nodeInfo: NodeInfo = { sandboxVersion: this.sandboxVersion, - compatibleNargoVersion: NoirVersion, + compatibleNargoVersion: NoirVersion.tag, chainId, protocolVersion: version, l1ContractAddresses: contractAddresses, diff --git a/yarn-project/yarn.lock b/yarn-project/yarn.lock index d7521ddb880..1c24c1c6592 100644 --- a/yarn-project/yarn.lock +++ b/yarn-project/yarn.lock @@ -67,7 +67,7 @@ __metadata: "@aztec/noir-contracts": "workspace:^" "@aztec/types": "workspace:^" "@jest/globals": ^29.5.0 - "@noir-lang/acvm_js": 0.30.0-3919619.aztec + "@noir-lang/acvm_js": 0.30.0 "@rushstack/eslint-patch": ^1.1.4 "@types/jest": ^29.5.0 "@types/levelup": ^5.1.3 @@ -3466,10 +3466,10 @@ __metadata: languageName: node linkType: hard -"@noir-lang/acvm_js@npm:0.30.0-3919619.aztec": - version: 0.30.0-3919619.aztec - resolution: "@noir-lang/acvm_js@npm:0.30.0-3919619.aztec" - checksum: 2ae79360347309f1cf7a9fde3580c7e1f25c03c36dc98fe30f9cd675f863bc36ee97b591d114ceb61ad66ec4096407f2997da3627c3350bbcdfd1e8e32aa0ffb +"@noir-lang/acvm_js@npm:0.30.0": + version: 0.30.0 + resolution: "@noir-lang/acvm_js@npm:0.30.0" + checksum: 4209b8b572f35b90c577a3235303c9fdf4be0dbf20ac750c3580faac8256efd5f3810e10a1646d38b1607b67fbd11ec57c8a5c90935662be55b6edfa8a6b0c10 languageName: node linkType: hard