@aztec/protocol-contracts 0.64.0 → 0.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4,23 +4,93 @@
4
4
  "name": "ContractInstanceDeployer",
5
5
  "functions": [
6
6
  {
7
- "name": "sync_notes",
7
+ "name": "compute_note_hash_and_optionally_a_nullifier",
8
8
  "is_unconstrained": true,
9
9
  "custom_attributes": [],
10
10
  "abi": {
11
11
  "error_types": {
12
+ "16957488177269924912": {
13
+ "error_kind": "fmtstring",
14
+ "item_types": [],
15
+ "length": 16
16
+ },
12
17
  "17843811134343075018": {
13
18
  "error_kind": "string",
14
19
  "string": "Stack too deep"
15
20
  }
16
21
  },
17
- "parameters": [],
18
- "return_type": null
22
+ "parameters": [
23
+ {
24
+ "name": "contract_address",
25
+ "type": {
26
+ "fields": [
27
+ {
28
+ "name": "inner",
29
+ "type": {
30
+ "kind": "field"
31
+ }
32
+ }
33
+ ],
34
+ "kind": "struct",
35
+ "path": "aztec::protocol_types::address::aztec_address::AztecAddress"
36
+ },
37
+ "visibility": "private"
38
+ },
39
+ {
40
+ "name": "nonce",
41
+ "type": {
42
+ "kind": "field"
43
+ },
44
+ "visibility": "private"
45
+ },
46
+ {
47
+ "name": "storage_slot",
48
+ "type": {
49
+ "kind": "field"
50
+ },
51
+ "visibility": "private"
52
+ },
53
+ {
54
+ "name": "note_type_id",
55
+ "type": {
56
+ "kind": "field"
57
+ },
58
+ "visibility": "private"
59
+ },
60
+ {
61
+ "name": "compute_nullifier",
62
+ "type": {
63
+ "kind": "boolean"
64
+ },
65
+ "visibility": "private"
66
+ },
67
+ {
68
+ "name": "serialized_note",
69
+ "type": {
70
+ "kind": "array",
71
+ "length": 0,
72
+ "type": {
73
+ "kind": "field"
74
+ }
75
+ },
76
+ "visibility": "private"
77
+ }
78
+ ],
79
+ "return_type": {
80
+ "abi_type": {
81
+ "kind": "array",
82
+ "length": 4,
83
+ "type": {
84
+ "kind": "field"
85
+ }
86
+ },
87
+ "visibility": "public"
88
+ }
19
89
  },
20
- "bytecode": "H4sIAAAAAAAA/9VUyw6CMBBseURBOaiJ3kz8gyIYOJJ49x8akKMe8OKNT5eabbqpVRKlJkzSbEs3szNlW0oUKESPvAH9tGnIFdhBDCA6aN/tRgFr9hviQKs7JH/O0iQw+BtQ/5OfWtIvIPktnT+bAM+xVfzYi6w77UaIesKWZ/nPbHpe9fhc/MFnh32k1caghm+uIYci3RuYR4Y8iRlRd9prh/eV5YzJei7w++RVO67va/lrWIeafvmOFV/qrDMe1wmv+YFXVVrypcYv4KBzGnMvbGHe1wvY45yo3mjul/J0vZ0b0gNB8gCVxsvQjgYAAA==",
21
- "debug_symbols": "ndLBCoQgEAbgd5lzh9TU6lViCSsLQTTMFpbo3deiXdqli10GZvCbOfgv0MlmHmplejtBWS2gbSu8siZ0y5pA45TWaqjPY0i3gtD+fhqF2drJC+ehJDgBaTooszToXmkZZpyvjwQQjgUkFmSxgEYCfHmhoDg/SEEp/aIc7YbeMOyG4TdMHm/I5ccXDPGPYYT9mDV0T+GUaLQ8ctXPpj3FzL9G+Ze40dlWdrOTW/ZOsQu1CqcwDmvD6jc=",
90
+ "bytecode": "H4sIAAAAAAAA/9VZS27bMBClLcmy5Mh27RsE6K4FxFj+ZGegn5xDTewT9ABadNOeuiHMkZ5Hk8KAh0U8QEBZQ715fDMiKWZgTjZ+/Rv469i3I9M36rP3bXmdWUWsMiTPwY3wHN4Iz+hGeMaKPAcCT9fS+5aY0zuXmtP72HPiwy7REfjNv4BY0D++zXw7BL9iYmwmDFYLf1dWz5k5N2X+q8xjpmHw14Q/DoNfEu8vTYePY6G4kW+fmk7LJ3jGWeGvsYgJl3xD8H1lvgh835gPa/g782HdEyfSbQRjUayrXei80NhSGNvgjdaYTju8R1rnJmiNWsp5xvhw/sSnoD5Nx2fEfDH4MuZLwEf6u/Ye+vHcp9DvM9znNRmZfg2Tn3KOWoeoqTgA/qtVku48J3FzHht9qHsMet4zfUKsFahPCP2dPss3+NO1s7QxrUVMT9SINBtjf+bLwBc353Fy/zuGOIhFPBLW/5P/PfPtCJ6h5+dC/BGLf8ZbuIcacaxIuEf93Tv50V9PzKl+flF/05+n9DbVm0qas/Xwty1+Fob/kfDzMPgbwp+EwW/3MndB8B9Kwi/C8H8k/GmY+mn3krMw/A+EPw+CXx1o3f1gOmvnB3+9gPt6c7e1l+yJMH7OuIbaEy0YH64Prr/OtxS4zgUfz+FSiLMU4khYmSLWnSLW7J2OcayINVHEmipiaeYxVcTS1CtXxCoUsTTrXlMvyqO0T3O29215pUn7NEV8K+3TNL/dSWuqr1jQEMeXsP4/mc6TIDztA6059K5TDIxdBIp96XpN8QuBD/HOBd81h7KHH+u1fay31pbHTbVq81kwrvwefhPhfIz9pbVf2vcpal1K3/1T0NVZDL6C+RLwEUfpu38aiP8l+mP8ueDj6/+luVyY/no4YePGM669ypi78z/pbD7w/LW+9N2k+Lnpz9f/63wR9eF76VzgOhd8fH+SC3FyIc4tYvEzetTQ1TXpFDedXyuX2133Dy6aixJzfu5vWPyE9f/tf+PYqL1mzj9ua3tc1cd6Xb+8VM/1guE7G4JOfwHiE0IYFR8AAA==",
91
+ "debug_symbols": "tdfRioQgFAbgd/HaC49aZq+yLIOVDYJYWC0s0buvDbO7w8zl8N8ER06fEf7I2dngu+16CWmcFtZ+7CxOvVvDlEq1H5x1OcQYrpfHZSbOh1W3/mV26SyX1eWVtUpy5tPAWi3K22OIvqyZ+uAvnea305i/zqo5PjmzGiZXMLmGyQYmNzDZomQSAkcTjpY4WuFojaMrHF3jaIOjGxyNSyPh0ki4NBIujYRLI+HSSLg00ptptOreWX7ti22AdgO0Lc6WAmgT0JZAWwFtDbQroA3MpQTmUgJzKVG5PEr15XJwXfT3wWrcUv8wZ63fs38aueY89X7Ysj+Hr/+56zzLSnOtb1d7Kah8IClTNikb/QA=",
22
92
  "brillig_names": [
23
- "sync_notes"
93
+ "compute_note_hash_and_optionally_a_nullifier"
24
94
  ]
25
95
  },
26
96
  {
@@ -1818,7 +1888,7 @@
1818
1888
  }
1819
1889
  },
1820
1890
  "bytecode": "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sZOaPk9rrjurue4rzXXnNbHvNH3+oLnuJ811v2iu+10T+7+HHVykz+wVLn5dTs11uTXXXaaJ5df0WVBzXWHNdUU118VoYsU1fZbUXFdac11ZzXUVNLFKmj4ra667UnNdFc1112pi1TR91tBcF9BcF6e5LkETS9L0may5rrbmurqa6xpoYo00fTbRXNdMc10LzXWtNbG2mj7ba667XnNdB811N2tit2j6vE1zXWfNdV0116VoYmmaPtM11/XUXHeH5rq7NLF7NH3eq7nufs11fTXXDdDEBmn6HKK57kHNdUM11z2qiT2m6fMJzXVPaq57WnPdFE1smqbPGZrrZmmum6O5br4mtlDT52LNdUs11y3XXLdKE1uj6XOd5roNmus2aa7bqolt1/T5mua6nZrr3tBc95Ym9o6mzz2a6/Zprjugue5dTex9TZ+HNdd9pLnuiOa6zzSxzzV9fqm57rjmupOa685oYuc0fX6tue685rrvNNf9qIn9rOnzV811v2uu+78Hl13kuhyaWK6KF+8zj+a6yzTX5ddcV0gTK6Lps5jmuhjNdcU115XSxMpo+iynua6C5rpKmuuu0MSu0vR5tea6azXXVdNcV1MTczR9BjXXJWiuS9JcV0sTq6Pps57mugaa6xpprmuqiTXX9NlSc11rzXVtNdelaWLpmj57aq67Q3NdL81192hi92r6vF9zXV/Ndf011w3SxIZo+nxQc91QzXWPaK57TBN7QtPnk5rrntZcN1Jz3RhNbJymzwma657VXDdRc92LmthLmj5f0Vw3RXPdNM11MzWx2Zo+52qum6+5bqHmuiWa2DJNnys0163SXLdGc916TWyjps/Nmuu2aq7brrluhyb2uqbPNzXXvaW57h3NdXs1sf2aPg9qrntXc937mus+1MQ+1vT5iea6zzTXfa657pgmdkLT5ynNdWc0153TXPeNJvatps/vNdf9qLnuZ811v2liFzR9Zqt08etyVLr4dbk01+XVxPJp+iygua6Q5roimuuu0sSu1vR5rea6aprramiuczSxoKbPBM11SZrrkjXX1dHE6mn6bKC5rpHmuiaa65prYi01fbbWXNdWc117zXU3aGI3avq8WXPdLZrrbtNc10UT66bpM0VzXZrmunTNdbdrYndq+rxLc909muvu1VzXRxPrp+lzgOa6QZrrhmiue0gTe1jT56Oa6x7TXPeE5rqnNLERmj5Haa4bo7lunOa6ZzSx5zR9Pq+57kXNdS9prpusiU3V9Dldc91MzXWzNdfN08QWaPpcpLluiea6ZZrrVmpiqzV9rtVct15z3UbNdVs0sW2aPl/VXLdDc93rmut2aWJva/rcrblur+a6/ZrrTmhipzR9ntFcd05z3dea677VxL7X9Pmj5rqfNdf9qrnugiaW7fKL95nj8otfl0tzXR7Ndfk0sQKaPgtpriuiua6Y5rpYTayEps9SmuvKaK4rp7muoiZ2uabPKzTXXaW57mrNdVU1seqaPmtqrnM01wU11yVqYiFNn7U019XRXFdPc11DTayxps+mmuuaa65rqbmujSbWTtPndZrrbtBcd6Pmuo6a2K2aPjtpruuiua6b5rpUTayHps8MzXW3a667U3Pd3ZpYb02f92mu66O5rp/muoGa2GBNnw9orntIc93DmuuGaWKPa/ocrrnuKc11IzTXjdbExmr6HK+57hnNdc9prpuhic3S9DlHc908zXULNNct1sSWavpcrrlupea61Zrr1mliGzR9btJct0Vz3TbNda9pYjs1fb6huW6X5rq3Ndft0cT2afo8oLnukOa69zTXHdbEPtL0eURz3aea645qrvtSEzuu6fOk5rrTmuvOaq77WhM7r+nzO811P2iu+0lzXaXKF7/u5sr+113mXZvpv7OH/83mthxuaxD+78ClHc5lEf2i+w8F4hMvi/rzAeYPXhbuU1Ifr0+B/gPhx19HNX74j/4zj0UdBcP/nS1CS++avOF4VMS/TSL6y5Yp1tTn/yU5TjcP4r3+cwr07x5x0T783v9L6RP+uon/i2f+uWyZrskRdfF5iPI5l82nn8y6Rs5bg383Zifziczj1I3Ni+XKNFa/cUdenyvqr+POlan/zHMa5fP/yHGRa/36za4Zx/+6NlL7glF/nUePRz3e0qtNOR/+M3+D8PnAJRxJoUDgv9qH+88V9dc8ivz/58r08xXD/50vgj9yHA3+JWdGUoqTEUzJSElI6dEjPi2lWKb+oyI0UzqFP3KZtRbpj6DwWhEnXEN91yK/eqpbizLfc+poEo75rVORa5HXn+Sa7uZBgvA8OdFRF18/lAalIrSJ1DVX1MXXkVyZfjb8texRud1W9CL95db0VzDq4vOrrgt/bepf1i/v3wZRGK38OLL5cBT04fCuYajl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",
1821
- "debug_symbols": "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",
1891
+ "debug_symbols": "7b3djixJcl77LnM9F+H25+Z6FYEQKIoSBiBIgaQOcCDw3Y/3TFft3V1eFadzO3OvyDBdCD3siipL63D3LzJt5fq/f/of//jf/8//+m9/+ef/+S//9qf/8l//75/+6V/+4e///S//8s/zf/3fP7X86//t3/733//zL//z3/797//13//0X1qM489/+sd//h/zH/tx/Mef//Q///JP//in/6I9/uPPH35aUvPXn5aMbz/dPBc/rd7Grz+tPuTkp4eY/frTQ7y//7ToqpJmIm91m7Vvdevqh5u8FdJaz+9/+O/+/Kc2qjHLxshRjVk3plVj1o2Rasy6MVqNWTfGqjHrxng1Zt2YqMasG9OrMevGVPL9pDGVfNeN0Uq+nzSmku8njank+0ljKvl+0hirxqwbU8n3k8ZU8v2kMfjkm+29McPPGpMZb3WPw3+oMfjk+7Mag0++P6kxtiH5WhP/9aetxbeV3Y7x1z/R/vP/xDKNzb6//QfT6P3kTzSRt5+eHfvWJ2nH4qcj3v575Szh/Wd/+ecPP5t56NsPZ4vn7ZOm1ZZVW6zasmqLs9tix3tb3J64Q0a1ZdWWvqEt7Vtb9PuXumxLc3kvPr4/I5c//fMak9WYdWOWGUz78baBaXc9zWDd3zPYaN+91LbKYMf75qjNvtXTBmrj9aMas25Mq8asGyPVmHVjtBqzboxVY9aN8WrMujFRjVk3pldj1o3Jasy6MZV8142JSr6fNKaS7yeNqeT7SWMq+X7SGKM35ie9HxP45PuzGrMj+Y5vL/VIPWnMz3up/T4vdUM61abfbuAeJy9VzN7qEcvv5iPs9JV+10X/a/GDXfxwfy/+u87P4j/+sEX/9WdtfPc645fX2Q/065TjePtoRg6xH3idjf06W3s7rKXp+N3N2IVd/LexpPmxm379H6lp9veg8d0G8+sr1du8UnuhV+r6dvc29/iBVerVlI9NiVdqynt8bT5+5Nzq1ZSPTdmSuJp9a0o/acp8VHz73Tb/39dNmX/wrXbNpt//8C/FD3bx82nr7VePD8XnceXi25WLlysXr1cu3q5cvF+5+Lhy8f3KxcNP2K+L333C5tn7j+14f++pHb19Xby38farXZr9rvhxXLn4duXi5crFK7t4sXgvPuL3xduVi/crFx9XLr6zi4/+dkh5bycnWg99e6U98vcn2sjbvFL42Z3t/ZWmy4+80nbAT/o/9lLH21sevbf24aXCc8HOlwpPEZ+/1L9WD48RJ9Ub/KnF9P19Qe8fqqc/qn9d/TpJZD/eL/oOVl5XH4e8/eeNQ78b41gSavMNZ+/f3nzO+M3P/7WmDqxpeZSb5Nub7qanFFd//+H8/rPio//tLyyPUPP3+8hcT5H0d/BL7Fs1rcvqLpL3l2zSf/Ne/WIF2/Ge6Oz74v/6xn5rx4VrbxeuXS5cu164drtw7X7h2uPCtfcL154Xrv3C56pc+FyVC5+rcuFzVS58rsqFz1W58LkqFz5X5cLnqlz4XJULn6t64XNVL3yu6oXPVb3wuaoXPlf1wueqXvhc1Qufq3rhc1UvfK7ahc9Vu/C5ahc+V+3C56pd+Fy1Z5+rcbx9xmkhx4dyglVOZ5WTrHKefUbFO09s0T+U4wernMYqR1jlKKscQ60sZ+3KztqVnbUre7JuZdauHKxdOVi7crB25WDtymGscpxVTrDK6axyWLtysHblztqVO2tX7oIKGF1Z5bCycmdl5c7alTtrV+6sXbmzduVk7crJ2pWTlZWTlZWTlZWTlZWTtSsna1dO1q6crF15HKiAMRqrHFZWHqysPFi78mDtyoO1Kw/WrjxYu/JA7cpyoLKyHKisLAcqK8uByspyoHZlOVC7shyoXVkO1K4sB2oGQ57Oi39dTkNlZWmorCyNtSs31q7cWLtyY+3KjbUrN9au3FBZWRorKwsrKwsrKwtrVxbWriysXVlYu7KgJuNEUJNxIqysLKysrKxdWVm7srJ2ZWXtysralZW1KysrKysrKysrKysrKxtrVzbWrmysXdlYu/LTQcCvAwaL7RMW2ycstk+MtSuz2D5hsX3CYvuExfYJi+2T57N9X5fDysrOysrOysostk9YbJ+w2D5hsX0SqMk4CdRknDyf7fu6HFZWZrF9wmL7hMX2CYvtExbbJyy2TzorK3dWVn4+2/d1OayszGL7hMX2CYvtExbbJ8majEvWZFyysnKysjKL7RMW2ycstk9YbJ+w2D5hsX0yWFl5sLLyYGXlwcrKLLZPWGyfsNg+YbF9MliTcQM1GacHKivrgcrKymL7lMX26YHalZXF9imL7VMW26cHKivrgcrK2lBZWRsqKyuL7VMW26cstk9ZbJ821GScNtRknDZUVtbGysostk9ZbJ+y2D5lsX3KYvuUxfapsLKysLKysLKysLIyi+1TFtunLLZPWWyfPp/t+zJgKGoyTpWVlZWVlVlsn7LYPmWxfcpi+5TF9imL7dPns31fl8PKysbKysbKyiy2T1lsn7LYPmWxfeqoyTh11GScsrx9yvL2KYvtUxbbpyy2T1lsn7LYPmWxfcry9inL26csb5+yvH3KYvuUxfYpi+1TFtunnTUZ11mTcSxvn7K8fcpi+5TF9imL7VMW26cstk9ZbJ+yvH3K8vYpy9unLG+fstg+ZbF9ymL7lMX2abIm45I1Gcfy9inL26cstk9ZbJ+y2D5lsX3KYvuUxfYpy9unLG+fsbx9xvL2GYvtMxbbZwdqVzYW22cHajLODtRknLG8fcby9hmL7TMW22csts9YbJ+x2D5jsX3G8vYZy9tnLG+fsbx9xmL7jMX2GYvtMxbbZ89n+74MGIKajDOWt89Y3j5jsX3GYvuMxfYZi+0zFttnLLbPWN4+Y3n7jOXtM5a3z1hsn7HYPmOxfcZi+8xQk3FmqMk4Y3n7jOXtMxbbZyy2z1hsn7HYPmOxfcZi+4zl7TOWt89Y3j5jefuMxfYZi+0zFttnLLbPAjUZZ4GajDOWt89Y3j5jsX3GYvuMxfYZi+0zFttnLLbPWN4+Y3n7jOXtM5a3z1hsn7HYPmOxfcZi+6yzJuM6azKO5e0zlrfPWGyfsdg+Y7F9xmL7jMX2GYvtM5a3z1jePmN5+4zl7TMW22csts9YbJ+x2D4brMm4wZqMY3n7jOXtcxbb5yy2z1lsn7PYPj9Qu7Kz2D5nefuc5e1zlrfPWd4+Z7F9zmL7nMX2OYvt8+ezfV8GjIaajHOWt89Z3j5nsX3OYvucxfY5i+1zFtvnLLbPWd4+Z3n7nOXtc5a3z1lsn7PYPmexfc5i+1xRk3GuqMk4Z3n7nOXtcxbb5yy2z1lsn7PYPmexfc5i+5zl7XOWt89Z3j5nefucxfY5i+1zFtvnLLbPHTUZ546ajHOWt89Z3j5nsX3OYvucxfY5i+1zFtvnLLbPWd4+Z3n7nOXtc5a3z1lsn7PYPmexfc5i+zxQk3EerMk4lrfPWd4+Z7F9zmL7nMX2OYvtcxbb5yy2z1nePmd5+5zl7XOWt89ZbJ+z2D5nsX3OYvs8WZNxyZqMY3n7nOXtcxbb5yy2z1lsn7PYPmexfc5i+5zl7XOWt89Z3j5nefuCxfYFi+0LFtsXLLZvHvekgBEHajIuWN6+YHn7gsX2BYvtCxbbFyy2L1hsX7DYvmB5+4Ll7QuWty9Y3r5gsX3BYvuCxfYFi+0LQU3GhaAm44Ll7QuWty9YbF+w2L5gsX3BYvuCxfYFi+0LlrcvWN6+YHn7guXtCxbbFyy2L1hsX7DYvjDUZFwYajIuWN6+YHn7gsX2BYvtCxbbFyy2L1hsX7DYvmB5+4Ll7QuWty9Y3r5gsX3BYvuCxfYFi+0LR03GhaMm44Ll7QsW2xcsti9YbF+w2L5gsX3BYvsiWDMYLLYvWGxfsLx9wfL2BYvtCxbbFyy2L1hsX3TWZFxn7cosb1+wvH3BYvuCxfYFi+0LFtsXLLYvWGxfsLx9wfL2BcvbFyxvXzyd7evZ3n5zT/1QzrN3ZfH+9pul/6acjz/sdrz9ZjexD7XLhWvXC9duF67dL1x7XLj2fuHa88K1j8vW3p8OXO6s/brnaj+ue67247rnaj+ue67247rnaj+ue67247rnaj+ue67248LnarvwudoufK62C5+r7cLn6tMx3521X/hcbRc+V9uFz9V24XO1XfhclQufq3Lhc1UufK7Khc/Vp4PaO2tHUd1dUHMeXVBzHl1Qcx6dRXV3FtXdWVR3Z1HdnUV1d5axtbOMrV1Zu7KydmUW1d1ZVHdnGVs7y9jaWcbWzjK2dhbV3VlUd2dR3Z1FdXcW1d1ZVHdnUd2dRXV3lrG1s4yt/flU99flsLIyi+ruLKq7s4ytnWVs7Sxja2dR3Z1FdXcW1d1ZVHdnUd2dRXV3lrG1B2tXDtauzDK2dpaxtXdWVu6srMyiujuL6u4sY2tnGVs7y9jaWcbWzqK6O4vq7iyqu7Oo7s6iujuL6u4sqruzqO7OMrZ2lrG1D1ZWHqyszDK2dpaxtbOMrZ1lbO0sY2tnGVs7y9jaWcbWZBlbk2VsTZaxNVnG1jxQu3IeqF05WcbWZBlb80Bl5TxQWTlZxtZkGVuTZWxNlrE1WcbWZBlbk2VsTZaxNVnG1mQZW5NlbE2WsTWFtSsLa1dmGVuTxfYli+1LFtuXLGNrsti+ZLF9yWL7ksX2JYvtS5axNVnG1mQZW5NlbE0W25csti9ZbF+y2L5kGVuTZWzN57N9X5fDysosti9ZbF+y2L5ksX3JYvuSxfYly9iaLGNrsoytyTK2JovtSxbblyy2L1lsX7KMrRmoybgMVlYOVlZmsX3JYvuSxfYli+1LFtuXLLYvWcbWZBlbk2VsTZaxNVlsX7LYvmSxfcli+5JlbE2WsTWTlZWTlZVZbF+y2L5ksX3JYvuSxfYli+1LlrE1WcbWHKysPFhZmcX2JYvtSxbblyy2LwdrMm6wJuMGKysPVFYeLLZvsNi+wWL7BovtGwdqVx4stm8cqKw8DlRWHgcqK48DlZUHi+0bLLZvsNi+wWL7xvPZvi8DRkNNxo2GysqjobLyYLF9g8X2DRbbN1hs32CxfYPF9o3ns31fl8PKysLKysLKyiy2b7DYvsFi+waL7RuKmowbipqMGyxv32B5+waL7Rsstm+w2L7BYvsGi+0bLLZvsLx9g+XtGyxv32B5+waL7Rsstm+w2L7BYvuGoybjhqMm4wbL2zdY3r7BYvsGi+0bLLZvsNi+wWL7BovtGyxv32B5+wbL2zdY3r7BYvsGi+0bLLZvsNi+EajJuBGsyTiWt2+wvH2DxfYNFts3WGzfYLF9g8X2DRbbN1jevsHy9g2Wt2+wvH2DxfYNFts3WGzfYLF9I1mTccmajGN5+wbL2zdYbN9gsX2DxfYNFts3WGzfYLF9g+XtGyxv32B5+wbL29cOFtw360Hty7Me1MY860HtzLMeI6WMWQ9qPm7Wg4rMsx5UZp71oLbnWQ9sf2ZhfrMe2P7MAv1mPbD9maXxm/WgsvOsBxWeZz2o9Dzrge3PLN6vHSzgb9YD258FNTA360FNzM16YPmZZfSb9cD2Zxb3N+uB7c8s8q8dLPRv1gPbn1liv1kPLD+z1H6zHlh+ZgGAsx7Y/sxCAGc9sP3ZUCN0sx7UDN2sB5afWY6/WQ9sf2aRgLMe2P7MYgFnPbD9mUUDtoOl+pv1wPIzS/Y364HlZxYSOOuB7c8sKHDWA9ufHTVUN+tBTdW1gyX9m/XA8jMLDZz1wPZnFhw464Htzyw8cNYD259Z8r9ZDyw/s/R/sx5YfmZBgrMe2P7MwgRnPbD9ucPm6zpsvo6lAZz1wPIzCxac9cD2ZxYuOOuB7c8sYHDWA9ufWTrAWQ8sP7OEgLMeWH5mYYOzHtj+zAIHZz2w/fn56ODXeWPA5utYYsBZDyw/s/DBWQ9rf24wfrDB+MEG4wcbjB+cH3jD6mHl58ZSBM56WPm5wfjBBuMHG4wfbDB+sDXWfF1rrPm6xlIFznpY+bnB+MEG4wcbjB9sMH6wwfjBBuMHG0sZOOuB5WeWNHDWA8vPMH6wwfjBBuMHG4wfbMqar2vKmq9rLHngrAeWn2H8YIPxgw3GDzYYP9hg/GCD8YONJRGc9cDyM0sjOOuB5WcYP9hg/GCD8YMNxg82Y83XNWPN1zWWTnDWA8vPMH6wwfjBBuMHG4wfbDB+sMH4wcbSCs56YPmZJRac9cDyM4wfbDB+sMH4wQbjB1uw5utasObrGkswOOuB5WcYP9hg/GCD8YMNxg82GD/YYPxgY4kGZz2w/MxSDc56YPkZxg82GD/YYPxgg/GD7fn84Nd5I2HzdSzl4KwHlp9h/GCD8YMNxg82GD/YYPxgg/GDjaUenPXA8jNLPjjrgeVnGD/YYPygwPhBgfGDcrDm6+RgzdfJwcrPAvMPCowfFBg/KDB+UGD8oMD4QYHxgwLzDwrMPygw/6DA/IMC4wcFxg8KjB8UGD8owpqvE2HN1wnMPygw/6DA+EGB8YMC4wcFxg8KjB8UGD8oMP+gwPyDAvMPCsw/KDB+UGD8oMD4QYHxg6Ks+TpR1nydwPyDAuMHBcYPCowfFBg/KDB+UGD8oBhrfkNg/KDA+EGB+QcF5h8UGD8oMH5QYPygwPhBcdZ8nThsf4b5BwXmHxQYPygwflBg/KDA+EGB8YMC4wcF5h8UmH9QYP5BgfkH5en8YM/29pt76sd6nr0/z0Tx9pul/6aejz/sdrz9Zjexj8XLlYvXKxdvVy7er1x8XLn4fuXi88rFjwsX/3Soc2vxVz5h88onbF75hH06iLq1+CufsHnlEzavfMLmlU/YvPIJO658wo4rn7DjyifsuPIJ+3SUeGvxVz5hx5VP2HHlE3Zc+YQdFz5h9bjwCavHhU9YPS58wupx4RNWjwufsAojx/VgTYbowZoM0YM1GaIwclxh5LjCyHGFkeMKI8cVZp5VmHlWG2x/brD9GUaOK4wcV5h5VmHmWYWZZxVmnlUYOa4wclxh5LjCyHGFkeMKI8cVRo4rjBxXmHlWYeZZfT45flIPLD/DyHGFkeMKM88qzDyrMPOswshxhZHjCiPHFUaOK4wcVxg5rjDzrBpsfzbY/gwzzyrMPKsOy88Oy88wclxh5LjCzLMKM88qzDyrMPOswshxhZHjCiPHFUaOK4wcVxg5rjByXGHkuMLMswozz2qH5ecOy88w86zCzLMKM88qzDyrMPOswsyzCjPPKsw8qzDzrMLMswozzyrMPKsJ258Ttj/DzLMKM89qwvJzwvIzzDyrMPOswsyzCjPPKsw8qzDzrMLMswozzyrMPKsw86zBzLMGM8/awdqf7WDtz3YYKm8YjB80GD9oMH7QYOZZg/GDBuMHDcYPGowfNBg/aDDzrMHMswYzzxrMPGswftBg/KDB+EGD8YMGM88azDxrz+cHT+qB5WcYP2gwftBg/KDB+EGD8YMG4wcNZp41mHnWYOZZg5lnDcYPGowfNBg/aDB+0GDmWTPWfJ0ZLD8bLD/D+EGD8YMG4wcNxg8ajB80GD9oMPOswcyzBjPPGsw8azB+0GD8oMH4QYPxgwYzzxrMPGsBy88By88wftBg/KDB+EGD8YMG4wcNxg8azDxrMPOsdVh+7rD8DOMHDcYPGowfNBg/aB02X9dh83Udlp87LD/D+EGD8YMG4wcNxg8ajB80GD9oCcvPCcvPCcvPCcvPMH7QYPygwfhBg/GD9nx+8Ou8MWDzdQOWnwcsP8P4QYPxgw7jBx3GDzqMH3QYP+gHKz/7wcrPfrDysx+s/OwwftBh/KDD+EGH8YPeWPN13ljzdQ7zDzrMP+gwftBh/KDD+EGH8YMO4wcdxg86zD/oMP+gw/yDDvMPOowfdBg/6DB+0GH8oCtrvs6VNV/nMP+gw/yDDuMHHcYPOowfdBg/6DB+0GH8oMP8gw7zDzrMP+gw/6DD+EGH8YMO4wcdxg+6sebr3FjzdQ7zDzrMP+gwftBh/KDD+EGH8YMO4wcdxg86zD/oMP+gw/yDDvMPOowfdBg/6DB+0GH8oAdrvs6DNV/nMP+gw/yDDuMHHcYPOowfdBg/6DB+0GH8oMP8gw7zDzrMP+gw/6DD+EGH8YMO4wcdxg/68/nBr/NGwubrYP5Bh/kHHcYPOowfdBg/6DB+0GH8oMP4QYf5Bx3mH3SYf9Bh/kGH8YMO4wcDxg8GjB+MgzVfFwdrvm7+W1g9rPwcMH4wYPxgwPjBgPGDAeMHA8YPBsw/GDD/YMD8gwHzDwaMHwwYPxgwfjBg/GAIa74uhDVfFzD/YMD8gwHjBwPGDwaMHwwYPxgwfjBg/GDA/IMB8w8GzD8YMP9gwPjBgPGDAeMHA8YPhrLm60JZ83UB8w8GzD8YMH4wYPxgwPjBgPGDAeMHA8YPBsw/GDD/YMD8gwHzDwaMHwwYPxgwfjBg/GA4a74unDVfFzD/YMD8gwHjBwPGDwaMHwwYPxgwfjBg/GDA/IMB8w8GzD8YMP9gwPjBgPGDAeMHA8YPxvP5wa/zRofN18H8gwHzDwaMHwwYPxgwfjBg/GDA+MGA8YMB8w8GzD8YMP9gwPyDAeMHA8YPBowfDBg/GAM2Xzdg83Uw/2DA/IMB4wcDxg8GjB8MGD/YYfxgh/GDHeYf7DD/YD9Y+bnD/IMdxg92GD/YYfxgh/GDvbHm63pjzdd1mH+ww/yDHcYPdhg/2GH8YIfxgx3GD3YYP9hh/sEO8w92mH+ww/yDHcYPdhg/2GH8YIfxg11Y83VdWPN1HeYf7DD/YIfxgx3GD3YYP9hh/GCH8YMdxg92mH+ww/yDHeYf7DD/YIfxgx3GD3YYP9hh/GA31nxdN9Z8XYf5BzvMP9hh/GCH8YMdxg92GD/YYfxgh/GDHeYf7DD/YIf5BzvMP9hh/GCH8YMdxg92GD/Yn88Pfp03gjVf12H+wQ7zD3YYP9hh/GCH8YMdxg92GD/YYfxgh/kHO8w/2GH+wQ7zD3YYP9hh/GCH8YMdxg/2hM3XJWy+DuYf7DD/YIfxgx3GD3YYP9hh/GCH8YMdxg92mH+ww/yDHeYf7DD/YIfxgx3GD3YYP9hh/GAerPm6PFjzdQnzDybMP5gHa39OGD+YMH4wYfxgwvjBhPGDCfMPJsw/mDD/YML8gwnjBxPGDyaMH0wYP5iNNV+XjTVflzD/YML4wYTxgwnjBxPGDyaMH0wYP5jCmt9IGD+YMH4wYf7BhPkHE8YPJowfTBg/mDB+MJU1X5cK259h/sGE+QcTxg8mjB9MGD+YMH4wYfxgwvjBhPkHE+YfTJh/MGH+wXw6P9izvf3mnvqxnmfvz+L97TdL/009H3/Y7Xj7zW5iH4uXKxevVy7erly8X7n4uHLx/crF55WLHxcu/ulQ59bir3zCxpVP2LjyCft0EHVr8Vc+YePKJ2xc+YSNK5+wceUTtl/5hO1XPmH7lU/YfuUT9uko8dbir3zC9iufsP3KJ2y/8gnbr3zC5pVP2LzyCZtXPmHzyifs02HwrcWzyPFM2GRIwiZDEjYZAiPHE0aOJ4wcTxg5njByPGHm2YSZZ3PA9ucB259h5HjCyPEBM88OmHl2wMyzA2aeHYfB6mFN7g0YOT5g5PiAkeMDRo4PGDk+YOT4gJlnB8w8O55Pjp/Uw8rPA0aODxg5PmDm2QEzzw6YeXbAyPEBI8cHjBwfMHJ8wMjxASPHB8w8OwS2Pwtsf4aZZwfMPDsUlp8Vlp9h5PiAkeMDZp4dMPPsgJlnB8w8O2Dk+ICR4wNGjg8YOT5g5PiAkeMDRo4PGDk+YObZATPPDoflZ4flZ5h5dsDMswNmnh0w8+yAmWcHzDw7YObZATPPDph5dsDMswNmnh0w8+wI2P4csP0ZZp4dMPPsCFh+Dlh+hplnB8w8O2Dm2QEzzw6YeXbAzLMDZp4dMPPsgJlnB8w8O2Dm2QEzz46E7c8J259h5tkB4wcHjB8cMH5wwMyzA8YPDhg/OGD84IDxgwPGDw6YeXbAzLMDZp4dMPPsgPGDg8UPysHiB2c9qP151oOar5v1oObrZj2o/DzrQeXnWQ9qf571oPbnWQ9qf571wPZnFj8464Htzyzz7KwHlZ9nPaj8POtB5edZD2x/ZvGDsx7Y/sziB+VgmWdnPaj5ulkPLD8LLD+z+MFZD2x/ZvGDsx7Y/sziB2c9sP2ZZZ6d9cDyM8s8O+uB5WcWPzjrge3PLH5w1gPbn1nm2VkPar5ODoPlZ4PlZxY/OOuB7c8sfnDWA9ufWfzgrAe2P7PMs7MeWH52WH52WH5m8YOzHtj+zOIHZz2w/dlR83WzHtR83awHlp8dlp9Z/OCsB7Y/s/jBWQ9sf2bxg7Me2P4csPwcsPwcsPwcsPzM4gdnPbD9mcUPznpg+/Pz+cGv80aHzdd1WH7usPzM4gdnPbD9mcUPznpg+zOLH5z1wPbn5/ODJ/XA8nPC8nPC8jOLH5z1wPZnFj8464HtzwM2Xzdg83Us/+CsB5afWfzgrAe2P7P4wVkPa39uMH6wwfjBxvIPznpY+bkdrPzcWP7BWQ9rf24wfrDB+MEG4wdbY83Xtcaar2ss/+Csh5WfG4wfbDB+sMH4wQbjBxuMH2wwfrCx/IOzHlh+ZvkHZz2w/AzjBxuMH2wwfrDB+MEmrPm6Jqz5usbyD856YPkZxg82GD/YYPxgg/GDDcYPNhg/2Fj+wVkPLD+z/IOzHlh+hvGDDcYPNhg/2GD8YDPWfF0z1nxdY/kHZz2w/AzjBxuMH2wwfrDB+MEG4wcbjB9sLP/grAeWn1n+wVkPLD/D+MEG4wcbjB9sMH6wPZ8f/DpvBGu+rrH8g7MeWH6G8YMNxg82GD/YYPxgg/GDDcYPNpZ/cNYDy88s/+CsB5afYfxgg/GDDcYPNhg/2BI2X5ew+TqWf3DWA8vPMH6wwfjBBuMHG4wfbDB+sMH4wcbyD856YPmZ5R+c9cDyM4wfbDB+sMH4wQbjB+VgzdfJwZqvE5h/UGD+QTlY+7PA+EGB8YMC4wcFxg8KjB8UmH9QYP5BgfkHBeYfFBg/KDB+UGD8oMD4QWms+TpprPk6gfkHBeYfFBg/KDB+UGD8oMD4QYHxgwLjBwXmHxSYf1Bg/kGB+QcFxg8KjB8UGD8oMH5QlDVfJ8qarxOYf1Bg/kGB8YMC4wcFxg8KjB8UGD8oMH5QYP5BgfkHBeYfFJh/UGD8oMD4QYHxgwLjB+X5/ODXecNZ83UC8w8KzD8oMH5QYPygwPhBgfGDAuMHBcYPCsw/KDD/oMD8gwLzDwqMHxQYPygwflBg/KB02Hxdh83XwfyDAvMPCowfFBg/KDB+UGD8oMD4QYHxgwLzDwrMPygw/6DA/IMC4wcFxg8KjB8UGD8oAzZfN2DzdTD/oMD8gwLjBwXGDwqMHxQYPygwflBg/KDC/IMK8w8qzD+oMP+gHqz9WWH8oML4QYXxg3qw5uv0YM3XKcw/qDD/oML4QYXxgwrjBxXGDyqMH1QYP6gw/6DC/IMK8w8qzD+oMH5QYfygwvhBhfGDKqz5OhXWfJ3C/IMK8w8qjB9UGD+oMH5QYfygwvhBhfGDCvMPKsw/qDD/oML8gwrjBxXGDyqMH1QYP6jP5we/zhvGmq9TmH9QYf5BhfGDCuMHFcYPKowfVBg/qDB+UGH+QYX5BxXmH1SYf1Bh/KDC+EGF8YMK4wc1WPN1Gqz5OoX5BxXmH1QYP6gwflBh/KDC+EGF8YMK4wcV5h9UmH9QYf5BhfkHFcYPKowfVBg/qDB+UBM2X5ew+TqYf1Bh/kGF8YMK4wcVxg8qjB9UGD+oMH5QYf5BhfkHFeYfVJh/UGH8oML4QYXxgwrjB3XA5usGa77OYP5Bg/GDBuMHDcYP2sHanw3GDxqMH7SDNb9hMH7QYPygwfyDBvMPGowfNBg/aDB+0GD8oDXWfJ012P4M8w8azD9oMH7QYPygwfhBg/GDBuMHDcYPGsw/aDD/oMH8gwbzD9rT+cGe7e0399SP9Tx7fxbvb79Z+m/q+fjDPh9Xf/1hnzvTx+LlysXrlYu3KxfvVy4+rlx8v3LxeeXix4WLfzrUubX4K5+wduUT1q58wj4dRN1a/JVPWLvyCWtXPmHtyiesXfmE9SufsH7lE9avfML6lU/Yp6PEW4u/8gnrVz5h/conrF/5hPUrn7Bx5RM2rnzCxpVP2LjyCft0GHxr8Sxy3AI2GRKwyZCATYbAyHGDkeMGI8cNRo4bjBw3mHnWYOZZ67D9ucP2Zxg5bjBy3GDmWYOZZw1mnjWYedZg5LjByHGDkeMGI8cNRo4bjBw3GDluMHLcYOZZg5ln7fnk+Ek9sPwMI8cNRo4bzDxrMPOsw8yzDiPHHUaOO4wc94OVnx1GjjuMHHeYedYP1v7sB2x/hplnHWae9cbKz95Y+dlh5LjDyHGHmWcdZp51mHnWYeZZh5HjDiPHHUaOO4wcdxg57jBy3GHkuMPIcYeZZx1mnnWF5WeF5WeYedZh5lmHmWcdZp51mHnWYeZZh5lnHWaedZh51mHmWYeZZx1mnnWD7c8G259h5lmHmWfdYPnZYPkZZp51mHnWYeZZh5lnHWaedZh51mHmWYeZZx1mnnWYedZh5lmHmWc9YPtzwPZnmHnWYfygw/hBh/GDDjPPOowfdBg/6DB+0GH8oMP4QYeZZx1mnnWYedZh5lmH8YMO4wcdxg86jB90mHnWYeZZfz4/eFIPLD/D+EGH8YMO4wcdxg86jB90GD/oMPOsw8yzDjPPOsw86zB+0GH8oMP4QYfxgwEzz8bBmq+Lg5Wf42Dl5/lvYfcza38OGD8YMH4wYPxgwPjBgJlnA2aeDZh5NmDm2YDxgwHjBwPGDwaMHwyYeTZg5tkQWH4WWH6G8YMB4wcDxg8GjB8MGD8YMH4wYObZgJlnQ2H5WWH5GcYPBowfDBg/GDB+MJQ1XxfKmq8LheVnheVnGD8YMH4wYPxgwPjBgPGDAeMHw2D52WD52WD52WD5GcYPBowfDBg/GDB+MJ7PD36dN5w1XxcOy88Oy88wfjBg/GDA+MGA8YMB4wcDxg/G8/nBk3pg+Tlg+Tlg+RnGDwaMHwwYPxgwfjA6bL6uw+brYP7BgPkHA8YPBowfDBg/GDB+MGD8YMD4wYD5BwPmHwyYfzBg/sGA8YMB4wcDxg8GjB+MAZuvG7D5Oph/MGD+wYDxgwHjBwPGDwaMHwwYPxgwfrDD/IMd5h/sMP9gh/kH+8HanzuMH+wwfrDD+MF+sObr+sGar+sw/2CH+Qc7jB/sMH6ww/jBDuMHO4wf7DB+sMP8gx3mH+ww/2CH+Qc7jB/sMH6ww/jBDuMHu7Dm67qw5us6zD/YYf7BDuMHO4wf7DB+sMP4wQ7jBzuMH+ww/2CH+Qc7zD/YYf7BDuMHO4wf7DB+sMP4wf58fvDrvGGs+boO8w92mH+ww/jBDuMHO4wf7DB+sMP4wQ7jBzvMP9hh/sEO8w92mH+ww/jBDuMHO4wf7DB+sAdrvq4Ha76uw/yDHeYf7DB+sMP4wQ7jBzuMH+wwfrDD+MEO8w92mH+ww/yDHeYf7DB+sMP4wQ7jBzuMH+wJm69L2HwdzD/YYf7BDuMHO4wf7DB+sMP4wQ7jBzuMH+ww/2CH+Qc7zD/YYf7BDuMHO4wf7DB+sMP4wT5g83WDNV+XMP9gwvyDCeMHE8YP5sHanxPGDyaMH0wYP5gw/2DC/IMJ8w8mzD+YMH4wYfxgwvjBhPGD2VjzddlY83UJ8w8mzD+YMH4wYfxgwvjBhPGDCeMHE8YPJsw/mDD/YML8gwnzDyaMH0wYP5gwfjBh/GA+nx/8Om8oa74uYf7BhPkHE8YPJowfTBg/mDB+MGH8YML4wYT5BxPmH0yYfzBh/sGE8YMJ4wcTxg8mjB9MZ83XpbPm6xLmH0yYfzBh/GDC+MGE8YMJ4wcTxg8mjB9MmH8wYf7BhPkHE+YfTBg/mDB+MGH8YML4weyw+boOm6+D+QcT5h9MGD+YMH4wYfxgwvjBhPGDCeMHE+YfTJh/MGH+wYT5BxPGDyaMH0wYP5gwfjATNl+XsPk6mH8wYf7BhPGDCeMHE8YPJowfTBg/mDB+MGH+wYT5BwfMPzhg/sEB4wcHjB8cB2t/HjB+cBys+bpxsObrBsw/OGD+wQHjBweMHxwwfnDA+MEB4wcHjB8cMP/ggPkHB8w/OGD+wQHjBweMHxwwfnDA+MHxfH7w67whrPm6AfMPDph/cMD4wQHjBweMHxwwfnDA+MEB4wcHzD84YP7BAfMPDph/cMD4wQHjBweMHxwwfnAYa75uGGu+bsD8gwPmHxwwfnDA+MEB4wcHjB8cMH5wwPjBAfMPDph/cMD8gwPmHxwwfnDA+MEB4wcHjB8cwZqvG8Garxsw/+CA+QcHjB8cMH5wwPjBAeMHB4wfHDB+cMD8gwPmHxww/+CA+QcHjB8cMH5wwPjBAeMHR4fN13XYfB3MPzhg/OCA8YMDxg8OGD84YPzggPGDI2HzGzB+cMD4wQHzDw6Yf3DA+MEB4wcHjB8cMH5wDNh83YDtzzD/4GD5B/Vg8YOzHtT+POtB7c+zHtT+POtB7c+zHtT+POtB5edZD+r9jVkP6v3nWQ/q/Wc9ns4P9mxvv7mnfqzn2fuzeH/7zdJ/U8/HH3Y73n6zm9jH4uXKxeuVi7crF+9XLj6uXHy/cvF55eLHhYt/OtS5tfgrn7By5RNWrnzCPh1E3Vr8lU9YufIJK1c+YeXKJ6xc+YTVK5+weuUTVq98wuqVT9ino8Rbi7/yCatXPmH1yiesXvmE1SufsHblE9aufMLalU9Yu/IJ+3QYfGvxKHJ81oOaDJn1oCZDZj2oyZBZD+yTRxY5PuuBTYawyPFZD2wyhGWenfXA9meH7c8O259Z5PisB7Y/s8yzsx7Y/swyz856YPszixyf9cAm91jk+KwHNrnHIsdnPbD9mUWOz3pg+zPLPDvrQX2zx6wHlp87LD+zyPFZD2x/ZplnZz2w/Zllnp31wPZnFjk+64HlZxY5PuuB5WcWOT7rge3PCdufE7Y/s8yzsx7UN+PNemD5ecDyM4scn/XA9meWeXbWA9ufWebZWQ9rf24wcrzByPEGI8cbjBxvB2t/bjByvMHI8QYjxxvLPDvrYX2zR2us/NwaKz83lnl21gPbn1nm2VkPbH9mmWdnPbD9mWWenfXA8jPLPDvrgeVnlnl21gPbnwW2Pwtsf2aZZ2c9rPm6JrD8LLD8zDLPznpg+zPLPDvrge3PLPPsrAe2P7PMs7MeWH5mmWdnPbD8zDLPznpg+7PB9meD7c8s8+yshzVf12D8YIPxg41lnp31wPZnGD/YYPxgg/GDDcYPNpZ5dtYDy88s8+ysB5afYfxgg/GDDcYPNhg/2Fjm2VkPa76uPZ8fPKkHlp9h/GCD8YMNxg82GD/YYPxgg/GDjWWenfXA8jPLPDvrgeVnGD/YYPxgg/GDDcYPNpZ5dtYDm69LWH5OWH6G8YMNxg82GD/YYPxgg/GDDcYPNpZ5dtYDy88s8+ysB5afYfxgg/GDDcYPNhg/2Fjm2VkPa75ODlZ+loOVnwXGDwqMH5SDtT8LjB8UGD8oMH5QYOZZgZlnpbHyszRWfhYYPygwflBg/KDA+EFprPk6aaz5Omms/CwNlp9h/KDA+EGB8YMC4wcFxg8KjB8UgeVngeVngeVngeVnGD8oMH5QYPygwPhBeT4/+HXeUNZ8nSgsPyssP8P4QYHxgwLjBwXGDwqMHxQYPyjP5wdP6oHlZ4PlZ4PlZxg/KDB+UGD8oMD4QXHWfJ04a75OYP5BgfkHBcYPCowfFBg/KDB+UGD8oMD4QYH5BwXmHxSYf1Bg/kGB8YMC4wcFxg8KjB+UDpuv67D5Oph/UGD+QYHxgwLjBwXGDwqMHxQYPygwflBg/kGB+QcF5h8UmH9QYPygwPhBgfGDAuMHJWHzdQmbr4P5BwXmHxQYPygwflBg/KDA+EGB8YMC4wcF5h8UmH9QYf5BhfkHFcYPKowf1IO1PyuMH9SDNV+nB2u+TmH+QYX5BxXGDyqMH1QYP6gwflBh/KDC+EGF+QcV5h9UmH9QYf5BhfGDCuMHFcYPKowf1Ofzg1/nDWHN1ynMP6gw/6DC+EGF8YMK4wcVxg8qjB9UGD+oMP+gwvyDCvMPKsw/qDB+UGH8oML4QYXxg2qs+To11nydwvyDCvMPKowfVBg/qDB+UGH8oML4QYXxgwrzDyrMP6gw/6DC/IMK4wcVxg8qjB9UGD+owZqv02DN1ynMP6gw/6DC+EGF8YMK4wcVxg8qjB9UGD+oMP+gwvyDCvMPKsw/qDB+UGH8oML4QYXxg9ph83UdNl8H8w8qzD+oMH5QYfygwvhBhfGDCuMHFcYPKsw/qDD/oML8gwrzDyqMH1QYP6gwflBh/KAO2HzdgM3XwfyDCvMPGowfNBg/aDB+0GD8oB2s/dlg/KDB/IMG8w8azD9oMP+gwfhBg/GDBuMHDcYP2vP5wa/zRmPN1xnMP2gw/6DB+EGD8YMG4wcNxg8ajB80GD9oMP+gwfyDBvMPGsw/aDB+0GD8oMH4QYPxg6as+TpT1nydwfyDBvMPGowfNBg/aDB+0GD8oMH4QYPxgwbzDxrMP2gw/6DB/IMG4wcNxg8ajB80GD9ozpqvM2fN1xnMP2gw/6DB+EGD8YMG4wcNxg8ajB80GD9oMP+gwfyDBvMPGsw/aDB+0GD8oMH4QYPxgxas+ToL2HwdzD9oMP+gwfhBg/GDBuMHDcYPGowfNBg/aDD/oMH8gwbzDxrMP2gwftBg/KDB+EGD8YOWsPm6hM3XwfyDBvMPGowfNBg/aDB+0GD8oMH4QYPxgwbzDxrMP2gw/6DB/IMO4wcdxg86jB90GD/oh6Hyhh+s+TqH+Qcd5h90GD/oMH7QYfygw/hBh/GDDuMHHeYfdJh/0GH+QYf5Bx3GDzqMH3QYP+gwftCFNV/nwpqvc5h/0GH+QYfxgw7jBx3GDzqMH3QYP+gwftBh/kGH+Qcd5h90mH/QYfygw/hBh/GDDuMH3VjzdW6s+TqH+Qcd5h90GD/oMH7QYfygw/hBh/GDDuMHHeYfdJh/0GH+QYf5Bx3GDzqMH3QYP+gwftCdNV/nzpqvc5h/0GH8oMP4QYfxgw7jBx3GDzqMH/SAzW/A+EGH8YMO8w86zD/oMH7QYfygw/hBh/GD3mHzdR22P8P8gw7zDzqMH3QYP+gwftBh/KDD+EGH8YMO8w86zD/oMP+gw/yD/nR+sGd7+8099WM9z96fxfvbb5b+m3o+/vD8NPXtN88PDu1j8XLl4vXKxduVi/crFx9XLr5fufi8cvHjusXH06HOrcVf+ISN48InbBwXPmHnY/6Vi7/wCRvHhU/YOC58wsZx4RM2jiufsO3KJ2y78gnbrnzCtiufsE9HibcWf+UTtl35hG1XPmHblU/YduUTVq58wsqVT1i58gkrVz5hnw6Dby2eRY6HsCZDQliTISGsyZCAkeMBI8cDRo4HjBwPGDkeMPNswMyzobD9WWH7M4wcDxg5HjDzbMDMswEzzwbMPBswcjxg5HjAyPGAkeMBI8cDRo4HjBwPGDkeMPNswMyz8Xxy/KQeWH6GkeMBI8cDZp4NmHk2YObZgJHjASPHA0aOB4wcDxg5HjByPGDm2QjY/hyw/Rlmng2YeTY6LD93WH6GkeMBI8cDZp4NmHk2YObZgJlnA0aOB4wcDxg5HjByPGDkeMDI8YCR4wEjxwNmng2YeTYGLD8PWH6GmWcDZp4NmHk2YObZgJlnA2aeDZh5NmDm2Q4zz3aYebbDzLMdZp7tB2t/7gdrf+4w82yHmWf7wcrP/WDl5w4zz3aYebbDzLMdZp7tMPNsh5lnO8w822Hm2Q4zz3aYebbDzLMdZp7tAtufBbY/w8yzHcYPdhg/2GH8YIeZZzuMH+wwfrDD+MEO4wc7jB/sMPNsh5lnO8w822Hm2Q7jBzuMH+wwfrDD+MEOM892mHm2P58fPKkHlp9h/GCH8YMdxg92GD/YYfxgh/GDHWae7TDzbIeZZzvMPNth/GCH8YMdxg92GD/YYebZHqz5uh6w/Byw/AzjBzuMH+wwfrDD+MEO4wc7jB/sMPNsh5lnO8w822Hm2Q7jBzuMH+wwfrDD+MEOM892mHm2Jyw/Jyw/w/jBDuMHO4wf7DB+sMP4wQ7jBzvMPNth5tk+YPl5wPIzjB/sMH6ww/jBDuMH+4DN1w3YfN2A5efBys8J4wcTxg8mjB9MGD+YB2t/Thg/mAcrP+fBys95sPJzHqz8nDB+MGH8YML4wYTxg/l8fvDrvNFY83XZWPk5Gys/J4wfTBg/mDB+MGH8YML4wYTxg/l8fvCkHlh+Flh+Flh+hvGDCeMHE8YPJowfTGXN16Wy5usS5h9MmH8wYfxgwvjBhPGDCeMHE8YPJowfTJh/MGH+wYT5BxPmH0wYP5gwfjBh/GDC+MF01nxdOmu+LmH+wYT5BxPGDyaMH0wYP5gwfjBh/GDC+MGE+QcT5h9MmH8wYf7BhPGDCeMHE8YPJowfzGDN12XA5utg/sGE+QcTxg8mjB9MGD+YMH4wYfxgwvjBhPkHE+YfTJh/MGH+wYTxgwnjBxPGDyaMH8yEzdclbL4O5h9MmH8wYfxgwvjBhPGDCeMHE8YPJowfTJh/MGH+wYT5BxPmHxwwfnDA+MEB4wcHjB8ch6HyxjhY83UD5h8cMP/ggPGDA8YPDhg/OGD84IDxgwPGDw6Yf3DA/IMD5h8cMP/ggPGDA8YPDhg/OGD84BDWfN0Q1nzdgPkHB8w/OGD84IDxgwPGDw4YPzhg/OCA8YMD5h8cMP/ggPkHB8w/OGD84IDxgwPGDw4YPziMNV83jDVfN2D+wQHzDw4YPzhg/OCA8YMDxg8OGD84YPzggPkHB8w/OGD+wQHzDw4YPzhg/OCA8YMDxg8OZ83XDWfN1w2Yf3DA/IMDxg8OGD84YPzggPGDA8YPDhg/OGD+wQHzDw6Yf3DA/IMDxg8OGD84YPzggPGDo8Pm6zpsvg7mHxww/+CA8YMDxg8OGD84YPzggPGDA8YPDph/cMD8gwPmHxww/+CA8YMDxg8OGD84YPzgeD4/+HXeGLD5Oph/cMD8gwPGDw4WP2gHix+c9aD251kPan+e9aD251kPKj/PelD5edaDys+zHlR+nvWg9udZD2x/ZvGDsx7Y/txQ83WzHtR83awHlZ9nPaj8POuB7c8sfnDWA9ufWfygHSx+cNYD259Z/sFZDyw/s/yDsx5Yfmbxg7Me2P7M4gdnPbD9WVHzdbMe1HzdrAeWn1n+wVkPbH9m8YOzHtj+zOIHZz2w/ZnFD9rB8g/OemD5meUfnPXA8jOLH5z1wPZnFj8464Htz4aar5v1oObr7GD5B2c9sPzM4gdnPbD9mcUPznpg+zOLH5z1wPZnln9w1gPLzyz/4KwHlp9Z/OCsB7Y/s/jBWQ9sfw7UfN2sBzVfN+uB5WeWf9AOFj8464Htzyx+cNYD259Z/OCsB7Y/s/yDsx5Yfmb5B2c9sPzM4gdnPbD9mcUPznpg+/Pz+cGv80bC5utY/sFZDyw/s/jBWQ9sf2bxg7Me2P7M4gdnPbD9meUfnPXA8jPLPzjrgeVnFj8462Htzw3GDzYYP9gO1nxdO1jzde1g5efG8g/Oelj7c4Pxgw3GDzYYP9hg/GCD8YON5R+c9bDyc2P5B2c9rPzcYPxgg/GDDcYPNhg/2IQ1X9eENV/XWP7BWQ8sP8P4wQbjBxuMH2wwfrDB+MEG4wcbyz8464HlZ5Z/cNYDy88wfrDB+MEG4wcbjB9sypqva8qar2ss/+CsB7Y/w/jBBuMHG4wfbDB+sMH4wWas+Y0G4wcbjB9sLP/grAe2P8P4wQbjBxuMH2wwfrA5a76uOWx/ZvkHZz2w/RnGDzYYP9hg/GCD8YMNxg82GD/YWP7BWQ/s/Q2Wf3DWA3v/+en8YM/29pt76sd6nr0/i/e33yz9N/V8/GG34+03u4l9LF6uXLxeuXi7cvF+5eLjysX3KxefVy5+XLj4p0OdW4u/8gmbVz5h88on7NNB1K3FX/mEzSufsHnlEzavfMLmlU/YceUTdlz5hB1XPmHHlU/Yp6PEW4u/8gk7rnzCjiufsOPKJ+y48Akrx4VPWDkufMLKceETVo4Ln7ByXPiEFRg5LgdrMkQO1mSIHKzJEIGR4wIjxwVGjguMHBcYOS4w86zAzLPSYPtzg+3PMHJcYOS4wMyzAjPPCsw8KzDzrMDIcYGR4wIjxwVGjguMHBcYOS4wclxg5LjAzLMCM8/K88nxk3pg+RlGjguMHBeYeVZg5lmBmWcFRo4LjBwXGDkuMHJcYOS4wMhxgZlnxWD7s8H2Z5h5VmDmWXFYfnZYfoaR4wIjxwVmnhWYeVZg5lmBmWcFRo4LjBwXGDkuMHJcYOS4wMhxgZHjAiPHBWaeFZh5VjosP3dYfoaZZwVmnhWYeVZg5lmBmWcFZp4VmHlWYOZZgZlnBWaeFZh5VmDmWUnY/pyw/RlmnhWYeVYSlp8Tlp9h5lmBmWcFZp4VmHlWYOZZgZlnBWaeFZh5VmDmWYGZZxVmnlWYeVYP1v6sB2t/1sNQeUNh/KDC+EGF8YMKM88qjB9UGD+oMH5QYfygwvhBhZlnFWaeVZh5VmHmWYXxgwrjBxXGDyqMH1SYeVZh5ll9Pj94Ug8sP8P4QYXxgwrjBxXGDyqMH1QYP6gw86zCzLMKM88qzDyrMH5QYfygwvhBhfGDCjPPqrHm69Rg+dlg+RnGDyqMH1QYP6gwflBh/KDC+EGFmWcVZp5VmHlWYeZZhfGDCuMHFcYPKowfVJh5VmHmWQ1Yfg5YfobxgwrjBxXGDyqMH1QYP6gwflBh5lmFmWe1w/Jzh+VnGD+oMH5QYfygwvhB7bD5ug6br+uw/Nxh+RnGDyqMH1QYP6gwflBh/KDC+EFNWH5OWH5OWH5OWH6G8YMK4wcVxg8qjB/U5/ODX+eNAZuvG7D8PGD5GcYPKowfNBg/aDB+0GD8oMH4QTtY+dkOVn62g5Wf7WDlZ4PxgwbjBw3GDxqMH7TGmq+zxpqvM5h/0GD+QYPxgwbjBw3GDxqMHzQYP2gwftBg/kGD+QcN5h80mH/QYPygwfhBg/GDBuMHTVnzdaas+TqD+QcN5h80GD9oMH7QYPygwfhBg/GDBuMHDeYfNJh/0GD+QYP5Bw3GDxqMHzQYP2gwftCMNV9nxpqvM5h/0GD+QYPxgwbjBw3GDxqMHzQYP2gwftBg/kGD+QcN5h80mH/QYPygwfhBg/GDBuMHLVjzdRas+TqD+QcN5h80GD9oMH7QYPygwfhBg/GDBuMHDeYfNJh/0GD+QYP5Bw3GDxqMHzQYP2gwftCezw9+nTcSNl8H8w8azD9oMH7QYPygwfhBg/GDBuMHDcYPGsw/aDD/oMH8gwbzDxqMHzQYP+gwftBh/KAfrPk6P1jzdX6w8rPD/IMO4wcdxg86jB90GD/oMH7QYfygw/yDDvMPOsw/6DD/oMP4QYfxgw7jBx3GD7qw5utcWPN1DvMPOsw/6DB+0GH8oMP4QYfxgw7jBx3GDzrMP+gw/6DD/IMO8w86jB90GD/oMH7QYfygK2u+zpU1X+cw/6DD/IMO4wcdxg86jB90GD/oMH7QYfygw/yDDvMPOsw/6DD/oMP4QYfxgw7jBx3GD7qz5uvcWfN1DvMPOsw/6DB+0GH8oMP4QYfxgw7jBx3GDzrMP+gw/6DD/IMO8w86jB90GD/oMH7QYfygP58f/DpvdNh8Hcw/6DD/oMP4QYfxgw7jBx3GDzqMH3QYP+gw/6DD/IMO8w86zD/oMH7QYfygw/hBh/GDPmDzdQM2XwfzDzrMP+gwftBh/KDD+EGH8YMB4wcDxg8GzD8YMP/g3J1g9bDyc8D4wYDxgwHjBwPGD0ZjzddFY83XBcw/GDD/YMD4wYDxgwHjBwPGDwaMHwwYPxgw/2DA/IMB8w8GzD8YMH4wYPxgwPjBgPGDIaz5uhDWfF3A/IMB8w8GjB8MGD8YMH4wYPxgwPjBgPGDAfMPBsw/GDD/YMD8gwHjBwPGDwaMHwwYPxjGmq8LY83XBcw/GDD/YMD4wYDxgwHjBwPGDwaMHwwYPxgw/2DA/IMB8w8GzD8YMH4wYPxgwPjBgPGD8Xx+8Ou8Eaz5uoD5BwPmHwwYPxgwfjBg/GDA+MGA8YMB4wcD5h8MmH8wYP7BgPkHA8YPBowfDBg/GDB+MBI2X5ew+TqYfzBg/sGA8YMB4wcDxg8GjB8MGD8YMH4wYP7BgPkHA+YfDJh/MGD8YMD4wYDxgwHjB/vBmq/rB2u+rsP8gx3mH+wHa3/uMH6ww/jBDuMHO4wf7DB+sMP8gx3mH+ww/2CH+Qc7jB/sMH6ww/jBDuMHe2PN1/XGmq/rMP9gh/GDHcYPdhg/2GH8YIfxgx3GD3ZhzW90GD/YYfxgh/kHO8w/2GH8YIfxgx3GD3YYP9iVNV/XFbY/w/yDHeYf7DB+sMP4wQ7jBzuMH+wwfrDD+MEO8w92mH+ww/yDHeYf7E/nB3u2t9/cUz/W8+z9Wby//Wbpv6nn4w+7HW+/2U3sY/Fy5eL1ysXblYv3KxcfVy6+X7n4vHLx48LFPx3q3Fr8lU/YuPIJG1c+YZ8Oom4t/sonbFz5hI0rn7Bx5RM2rnzC9iufsP3KJ2y/8gnbr3zCPh0l3lr8lU/YfuUTtl/5hO1XPmH7lU/YvPIJm1c+YfPKJ2xe+YR9Ogy+tXgWOd4TNhmSsMmQhE2GwMjxDiPHO4wc7zByvMPI8Q4zz3aYebYP2P48YPszjBzvMHI8YebZhJlnE2aeTZh5Ng+D1cOa3EsYOZ4wcjxh5HjCyPGEkeMJI8cTZp5NmHk2n0+On9TDys8JI8cTRo4nzDybMPNswsyzCSPHE0aOJ4wcTxg5njByPGHkeMLMsymw/Vlg+zPMPJsw82wqLD8rLD/DyPGEkeMJM88mzDybMPNswsyzCSPHE0aOJ4wcTxg5njByPGHkeMLI8YSR4wkzzybMPJsOy88Oy88w82zCzLMJM88mzDybMPNswsyzCTPPJsw8mzDzbMLMswkzzybMPJsB258Dtj/DzLMJM89mwPJzwPIzzDybMPNswsyzCTPPJsw8mzDzbMLMswkzzybMPJsw82zCzLMJM89mwvbnhO3PMPNswvjBhPGDCeMHE2aeTRg/mDB+MGH8YML4wYTxgwkzzybMPJsw82zCzLMJ4wcTxg8OGD84YPzggJlnB8w8Ow5Wfh4HKz8PGD84YPzggPGDA8YPDhg/OGD84ICZZwfMPDtg5tkBM88OGD84YPzggPGDA8YPDph5dghrvm4ILD8LLD/D+MEB4wcHjB8cMH5wwPjBAeMHB8w8O2Dm2QEzzw6YeXbA+MEB4wcHjB8cMH5wwMyzA2aeHQbLzwbLzzB+cMD4wQHjBweMHxwwfnDA+MEBM88OmHl2OCw/Oyw/w/jBAeMHB4wfHDB+cDhrvm44a75uOCw/Oyw/w/jBAeMHB4wfHDB+cMD4wQHjB0fA8nPA8nPA8nPA8jOMHxwwfnDA+MEB4wfH8/nBr/NGh83XdVh+7rD8DOMHB4wfHDB+cMD4wQHjBweMHxzP5wdP6oHl54Tl54TlZxg/OGD84IDxgwPGD44Bm68bsPk6mH9wwPyDA8YPDhg/OGD84GDxg36w+MFZD2p/nvWg8vOsB5WfZz2o/DzrQeXnWQ9qf571oPbnWQ9qf571wPbnhpqvm/Wg5utmPaj8POtB5edZD2x/ZvGDsx7Y/sziB2c9sP2ZxQ/OPwvLzyz/4PyzsPzM8g/OPwvbn1n84PyzsP2ZxQ/OP4uar5t/FjVf5wfLPzjrgeVnFj8464Htzyx+cNYD259Z/OCsB7Y/s/yDsx5Yfmb5B2c9sPzM4gdnPbD9mcUPznpg+7Oh5utmPaj5ulkPLD+z/IN+sPjBWQ9sf2bxg7Me2P7M4gdnPbD9meUfnPXA8jPLPzjrgeVnFj8464Htzyx+cNYD25+fzw9+nTcCNV8364HlZ5Z/cNYD259Z/KAfLH5w1gPbn1n84KwHtj+z/IOzHlh+ZvkHZz2w/MziB2c9sP2ZxQ/OemD7c8Lm6xI2X8fyD856YPmZxQ/OemD7M4sfnPXA9mcWPzjrge3PLP/grAeWn1n+wVkPLD+z+MFZD2x/ZvGDsx7W/twO1nxdO1jzdY3lH5z1sPJzO1j7c4Pxgw3GDzYYP9hg/GCD8YON5R+c9bDyc2P5B2c9rPzcYPxgg/GDDcYPNhg/2Bprvq411nxdY/kHZz2w/AzjBxuMH2wwfrDB+MEG4wcbjB9sLP/grAeWn1n+wVkPLD/D+MEG4wcbjB9sMH6wKWu+rilrvq6x/IOzHlh+hvGDDcYPNhg/2GD8YIPxgw3GDzaWf3DWA8vPLP/grAeWn2H8YIPxgw3GDzYYP9iezw9+nTecNV/XWP7BWQ8sP8P4wQbjBxuMH2wwfrDB+MEG4wcbyz8464HlZ5Z/cNYDy88wfrDB+MEG4wcbjB9sHTZf12HzdSz/4KwHlp9h/GCD8YMNxg82GD/YYPxgg/GDjeUfnPXA8jPLPzjrgeVnGD/YYPxgg/GDDcYPtgGbrxuw+TqWf3DWA8vPMH6wwfjBBuMHG4wfbDB+sMH4QYH5BwXmHxSYf1Bg/kE5WPuzwPhBgfGDAuMH5WDN18nBmq8TmH9QYP5BgfGDAuMHBcYPCowfFBg/KDB+UGD+QYH5BwXmHxSYf1Bg/KDA+EGB8YMC4wdFWPN1Iqz5OoH5BwXmHxQYPygwflBg/KDA+EGB8YMC4wcF5h8UmH9QYP5BgfkHBcYPCowfFBg/KDB+UJ7PD36dN4w1Xycw/6DA/IMC4wcFxg8KjB8UGD8oMH5QYPygwPyDAvMPCsw/KDD/oMD4QYHxgwLjBwXGD0qw5uskWPN1AvMPCsw/KDB+UGD8oMD4QYHxgwLjBwXGDwrMPygw/6DA/IMC8w8KjB8UGD8oMH5QYPygJGy+LmHzdTD/oMD8gwLjBwXGDwqMHxQYPygwflBg/KDA/IMC8w8KzD8oMP+gwPhBgfGDAuMHBcYPyoDN1w3WfJ3C/IMK4wcVxg8qjB/Ug7U/K4wfVBg/qAdrfkNh/KDC+EGF+QcV5h9UGD+oMH5QYfygwvhBbaz5Om2w/RnmH1SYf1Bh/KDC+EGF8YMK4wcVxg8qjB9UmH9QYf5BhfkHFeYf1Kfzgz3b22/uqR/refb+LN7ffrP039Tz8Yfdjrff7Cb2sXi5cvF65eLtysX7lYuPKxffr1x8Xrn4ceHinw51bi3+yiesXfmEtSufsE8HUbcWf+UT1q58wtqVT1i78glrVz5h/conrF/5hPUrn7B+5RP26Sjx1uKvfML6lU9Yv/IJ61c+Yf3KJ2xc+YSNK5+wceUTNq58wj4dBt9aPIsc14BNhgRsMiRgkyEwclxh5LjCyHGFkeMKI8cVZp5VmHlWO2x/7rD9GUaOK4wcV5h5VmHmWYWZZxVmnlUYOa4wclxh5LjCyHGFkeMKI8cVRo4rjBxXmHlWYeZZfT45flIPLD/DyHGFkeMKM88qzDxrMPOswchxg5HjBiPH7WDlZ4OR4wYjxw1mnrWDtT/bAdufYeZZg5lnrbHyszVWfjYYOW4wctxg5lmDmWcNZp41mHnWYOS4wchxg5HjBiPHDUaOG4wcNxg5bjBy3GDmWYOZZ01h+Vlh+RlmnjWYedZg5lmDmWcNZp41mHnWYOZZg5lnDWaeNZh51mDmWYOZZ81g+7PB9meYedZg5lkzWH42WH6GmWcNZp41mHnWYOZZg5lnDWaeNZh51mDmWYOZZw1mnjWYedZg5lkL2P4csP0ZZp41GD9oMH7QYPygwcyzBuMHDcYPGowfNBg/aDB+0GDmWYOZZw1mnjWYedZg/KDB+EGD8YMG4wcNZp41mHnWns8PntQDy88wftBg/KDB+EGD8YMG4wcNxg8azDxrMPOswcyzBjPPGowfNBg/aDB+0GD8oMPMs36w5uv8YOVnP1j52Q/W/uwwftBh/KDD+EGH8YMO4wcdZp51mHnWYeZZh5lnHcYPOowfdBg/6DB+0GHmWYeZZ11g+Vlg+RnGDzqMH3QYP+gwftBh/KDD+EGHmWcdZp51heVnheVnGD/oMH7QYfygw/hBV9Z8nStrvs4Vlp8Vlp9h/KDD+EGH8YMO4wcdxg86jB90g+Vng+Vng+Vng+VnGD/oMH7QYfygw/hBfz4/+HXecNZ8nTssPzssP8P4QYfxgw7jBx3GDzqMH3QYP+jP5wdP6oHl54Dl54DlZxg/6DB+0GH8oMP4Qe+w+boOm6+D+Qcd5h90GD/oMH7QYfygw/hBh/GDDuMHHeYfdJh/0GH+QYf5Bx3GDzqMH3QYP+gwftAHbL5uwObrYP5Bh/kHHcYPOowfdBg/6DB+0GH8oMP4wYD5BwPmHwyYfzBg/sG5e8PqYe3PAeMHA8YPxsGar4uDNV8XMP9gwPyDAeMHA8YPBowfDBg/GDB+MGD8YMD8gwHzDwbMPxgw/2DA+MGA8YMB4wcDxg+GsObrQljzdQHzDwbMPxgwfjBg/GDA+MGA8YMB4wcDxg8GzD8YMP9gwPyDAfMPBowfDBg/GDB+MGD8YDyfH/w6bxhrvi5g/sGA+QcDxg8GjB8MGD8YMH4wYPxgwPjBgPkHA+YfDJh/MGD+wYDxgwHjBwPGDwaMH4xgzddFsObrAuYfDJh/MGD8YMD4wYDxgwHjBwPGDwaMHwyYfzBg/sGA+QcD5h8MGD8YMH4wYPxgwPjBSNh8XcLm62D+wYD5BwPGDwaMHwwYPxgwfjBg/GDA+MGA+QcD5h8MmH8wYP7BgPGDAeMHA8YPBowfjAGbrxus+boO8w92mH+ww/jBDuMH+8HanzuMH+wwfrDD+MEO8w92mH+ww/yDHeYf7DB+sMP4wQ7jBzuMH+yNNV/XG2u+rsP8gx3mH+wwfrDD+MEO4wc7jB/sMH6ww/jBDvMPdph/sMP8gx3mH+wwfrDD+MEO4wc7jB/sz+cHv84bypqv6zD/YIf5BzuMH+wwfrDD+MEO4wc7jB/sMH6ww/yDHeYf7DD/YIf5BzuMH+wwfrDD+MEO4we7s+brurPm6zrMP9hh/sEO4wc7jB/sMH6ww/jBDuMHO4wf7DD/YIf5BzvMP9hh/sEO4wc7jB/sMH6ww/jB3mHzdR02XwfzD3aYf7DD+MEO4wc7jB/sMH6ww/jBDuMHO8w/2GH+wQ7zD3aYf7DD+MEO4wc7jB/sMH6wJ2y+LmHzdTD/YIf5BzuMH+wwfrDD+MEO4wc7jB/sMH6ww/yDHeYfTJh/MGH+wYTxgwnjB/Ng7c8J4wfzYM3X5cGar0uYfzBh/sGE8YMJ4wcTxg8mjB9MGD+YMH4wYf7BhPkHE+YfTJh/MGH8YML4wYTxgwnjB/P5/ODXeUNY83UJ8w8mzD+YMH4wYfxgwvjBhPGDCeMHE8YPJsw/mDD/YML8gwnzDyaMH0wYP5gwfjBh/GAaa74ujTVflzD/YML8gwnjBxPGDyaMH0wYP5gwfjBh/GDC/IMJ8w8mzD+YMP9gwvjBhPGDCeMHE8YPZrDm6zJY83UJ8w8mzD+YMH4wYfxgwvjBhPGDCeMHE8YPJsw/mDD/YML8gwnzDyaMH0wYP5gwfjBh/GB22Hxdh83XwfyDCeMHE8YPJowfTBg/mDB+MGH8YCZsfgPGDyaMH0yYfzBh/sGE8YMJ4wcTxg8mjB/MAZuvG7D9GeYfTJh/cMD4wQHjBweMHxwwfnAcrP15wPjBAfMPDph/cMD8gwPmHxxP5wd7trff3FM/1vPs/Vm8v/1m6b+p5+MPux1vv9lN7GPxcuXi9crF25WL9ysXH1cuvl+5+Lxy8ePCxT8d6txa/JVPWLnyCStXPmGfDqJuLf7KJ6xc+YSVK5+wcuUTVq58wuqVT1i98gmrVz5h9con7NNR4q3FX/mE1SufsHrlE1avfMLqlU9Yu/IJa1c+Ye3KJ6xd+YR9Ogy+tXgWOT6MNRkyjDUZMow1GTJg5PiAkeMDRo4PGDk+YOT4gJlnB8w8Oxy2Pztsf4aR4wNGjg+YeXbAzLMDZp4dMPPsgJHjA0aODxg5PmDk+ICR4wNGjg8YOT5g5PiAmWcHzDw7nk+On9QDy88wcnzAyPEBM88OmHl2wMyzA0aODxg5PmDk+ICR4wNGjg8YOT5g5tmRsP05YfszzDw7YObZMWD5ecDyM4wcHzByfMDMswNmnh0w8+xgmWfjYJHjsx5Ufp71oPLzrAeVn2c9qP151oPan2c9qP151oPan2c9qPmNWQ/qmz3iaKj8POtB5edZD2x/ZplnZz2w/Zllnp31wPZnlnl21oPKz7MeWH5mmWdnPbD8zDLPznpg+7PA9meB7c8s8+ysBzVfN+uB5WeB5WeWeXbWA9ufWebZWQ9sf2aZZ2c9sP2ZZZ6d9cDyM8s8O+uB5WeWeXbWA9ufDbY/G2x/Zpln579EzdfNfwnLzyx+cP5L2P7M4gfjYPGDsx7Y/sziB2c9sP2ZZZ6d9cDyM8s8O+uB5WcWPzjrge3PLH5w1gPbn1nm2VkPar5u1gPLzwHLzyx+cNYD259Z/OCsB7Y/s/jBWQ9sf2aZZ2c9sPzMMs/OemD5mcUPznpg+zOLH5z1wPZnlnl21gObr0tYfk5Yfmbxg7Me2P7M4gdnPbD9mcUPznpg+zPLPDvrgeVnlnl21gPLzyx+cNYD259Z/OCsB7Y/s8yzsx7WfF07WPm5Haz83GD8YIPxg+1g7c8Nxg82GD/YYPxgY5lnZz2s/NwaKz+3xsrPDcYPNhg/2GD8YIPxg62x5utaY83XtcbKz63B8jOMH2wwfrDB+MEG4wcbjB9sMH6wCSw/Cyw/Cyw/Cyw/w/jBBuMHG4wfbDB+sD2fH/w6byhrvq4pLD8rLD/D+MEG4wcbjB9sMH6wwfjBBuMH2/P5wZN6YPnZYPnZYPkZxg82GD/YYPxgg/GDzVnzdc1Z83WN5R+c9cDyM4wfbDB+sMH4wQbjBxuMH2wwfrCx/IOzHlh+ZvkHZz2w/AzjBxuMH2wwfrDB+MHWYfN1HTZfx/IPznpg+RnGDzYYP9hg/GCD8YMNxg82GD/YWP7BWQ8sP7P8g7MeWH6G8YMNxg82GD/YYPxgS9h8XcLm61j+wVkPLD/D+MEG4wcbjB9sMH6wwfjBBuMHG8s/OOth5WeB+QcF5h8UGD8oMH5QDtb+LDB+UA7WfJ0crPk6gfkHBeYfFBg/KDB+UGD8oMD4QYHxgwLjBwXmHxSYf1Bg/kGB+QcFxg8KjB8UGD8oMH5Qns8Pfp03hDVfJzD/oMD8gwLjBwXGDwqMHxQYPygwflBg/KDA/IMC8w8KzD8oMP+gwPhBgfGDAuMHBcYPirHm68RY83UC8w8KzD8oMH5QYPygwPhBgfGDAuMHBcYPCsw/KDD/oMD8gwLzDwqMHxQYPygwflBg/KAEa75OgjVfJzD/oMD8gwLjBwXGDwqMHxQYPygwflBg/KDA/IMC8w8KzD8oMP+gwPhBgfGDAuMHBcYPSofN13XYfB3MPygw/6DA+EGB8YMC4wcFxg8KjB8UGD8oMP+gwPyDAvMPCsw/KDB+UGD8oMD4QYHxgzJg83UDNl8H8w8KzD+oMH5QYfygwvhBhfGDerD2Z4XxgwrzDyrMP6gw/6DC/IMK4wcVxg8qjB9UGD+oz+cHv84bjTVfpzD/oML8gwrjBxXGDyqMH1QYP6gwflBh/KDC/IMK8w8qzD+oMP+gwvhBhfGDCuMHFcYPqrLm61RZ83UK8w8qzD+oMH5QYfygwvhBhfGDCuMHFcYPKsw/qDD/oML8gwrzDyqMH1QYP6gwflBh/KA6a75OnTVfpzD/oML8gwrjBxXGDyqMH1QYP6gwflBh/KDC/IMK8w8qzD+oMP+gwvhBhfGDCuMHFcYParDm6zRg83Uw/6DC/IMK4wcVxg8qjB9UGD+oMH5QYfygwvyDCvMPKsw/qDD/oML4QYXxgwrjBxXGD2rC5usSNl8H8w8qzD+oMH5QYfygwvhBhfGDCuMHFcYPKsw/qDD/oML8gwrzDxqMHzQYP2gwftBg/KAdhsobdrDm6wzmHzSYf9Bg/KDB+EGD8YMG4wcNxg8ajB80mH/QYP5Bg/kHDeYfNBg/aDB+0GD8oMH4QRPWfJ0Ja77OYP5Bg/kHDcYPGowfNBg/aDB+0GD8oMH4QYP5Bw3mHzSYf9Bg/kGD8YMG4wcNxg8ajB80Y83XmbHm6wzmHzSYf9Bg/KDB+EGD8YMG4wcNxg8ajB80mH/QYP5Bg/kHDeYfNBg/aDB+0GD8oMH4QXPWfJ05a77OYP5Bg/GDBuMHDcYPGowfNBg/aDB+0AI2vwHjBw3GDxrMP2gw/6DB+EGD8YMG4wcNxg9ah83Xddj+DPMPGsw/aDB+0GD8oMH4QYPxgwbjBw3GDxrMP2gw/6DB/IMG8w/a0/nBnu3tN/fUj/U8e38W72+/Wfpv6vn4w27H2292E/tYvFy5eL1y8Xbl4v3KxceVi+9XLj6vXPy4bvH+dKhza/EXPmH9uPAJ68eFT1g/LnzC+nHhE9aPC5+wflz4hPXjwiesH1c+YduVT9h25RO2XfmEbVc+YZ+OEm8t/sonbLvyCduufMK2K5+w7conrFz5hJUrn7By5RNWrnzCPh0G31o8ixx3YU2GuLAmQ1xYkyEOI8cdRo47jBx3GDnuMHLcYeZZh5lnXWH7s8L2Zxg57jBy3GHmWYeZZx1mnnWYedZh5LjDyHGHkeMOI8cdRo47jBx3GDnuMHLcYeZZh5ln/fnk+Ek9sPwMI8cdRo47zDzrMPOsw8yzDiPHHUaOO4wcdxg57jBy3GHkuMPMsx6w/Tlg+zPMPOsw86x3WH7usPwMI8cdRo47zDzrMPOsw8yzDjPPOowcdxg57jBy3GHkuMPIcYeR4w4jxx1GjjvMPOsw86wPWH4esPwMM886zDzrMPOsw8yzDjPPOsw86zDzrMPMswEzzwbMPBsw82zAzLPzdIPVw9qfA2aeDZh5Ng5Wfo6DlZ8DZp4NmHk2YObZgJlnA2aeDZh5NmDm2YCZZwNmng2YeTZg5tmAmWdDYPuzwPZnmHk2YPxgwPjBgPGDATPPBowfDBg/GDB+MGD8YMD4wYCZZwNmng2YeTZg5tmA8YMB4wcDxg8GjB8MmHk2YObZeD4/eFIPLD/D+MGA8YMB4wcDxg8GjB8MGD8YMPNswMyzATPPBsw8GzB+MGD8YMD4wYDxgwEzz0aw5usiYPk5YPkZxg8GjB8MGD8YMH4wYPxgwPjBgJlnA2aeDZh5NmDm2YDxgwHjBwPGDwaMHwyYeTZg5tlIWH5OWH6G8YMB4wcDxg8GjB8MGD8YMH4wYObZgJlnY8Dy84DlZxg/GDB+MGD8YMD4wRiw+boBm68bsPw8WPm5w/jBDuMHO4wf7DB+sB+s/bnD+MF+sPJzP1j5uR+s/NwPVn7uMH6ww/jBDuMHO4wf7M/nB7/OG401X9cbKz/3xsrPHcYPdhg/2GH8YIfxgx3GD3YYP9ifzw+e1APLzwLLzwLLzzB+sMP4wQ7jBzuMH+zKmq/rypqv6zD/YIf5BzuMH+wwfrDD+MEO4wc7jB/sMH6ww/yDHeYf7DD/YIf5BzuMH+wwfrDD+MEO4we7s+brurPm6zrMP9hh/sEO4wc7jB/sMH6ww/jBDuMHO4wf7DD/YIf5BzvMP9hh/sEO4wc7jB/sMH6ww/jBHqz5uh6w+TqYf7DD/IMdxg92GD/YYfxgh/GDHcYPdhg/2GH+wQ7zD3aYf7DD/IMdxg92GD/YYfxgh/GDPWHzdQmbr4P5BzvMP9hh/GCH8YMdxg92GD/YYfxgh/GDHeYf7DD/YIf5BzvMP5gwfjBh/GDC+MGE8YN5GCpv5MGar0uYfzBh/sGE8YMJ4wcTxg8mjB9MGD+YMH4wYf7BhPkHE+YfTJh/MGH8YML4wYTxgwnjB1NY83UprPm6hPkHE+YfTBg/mDB+MGH8YML4wYTxgwnjBxPmH0yYfzBh/sGE+QcTxg8mjB9MGD+YMH4wjTVfl8aar0uYfzBh/sGE8YMJ4wcTxg8mjB9MGD+YMH4wYf7BhPkHE+YfTJh/MGH8YML4wYTxgwnjB9NZ83XprPm6hPkHE+YfTBg/mDB+MGH8YML4wYTxgwnjBxPmH0yYfzBh/sGE+QcTxg8mjB9MGD+YMH4wO2y+rsPm62D+wYT5BxPGDyaMH0wYP5gwfjBh/GDC+MGE+QcT5h9MmH8wYf7BhPGDCeMHE8YPJowfzOfzg1/njQGbr4P5BxPmH0wYP5gwfnDA+MEB4wcHjB8cMH5wHKz8PGD+wQHzDw6Yf3DA+MEB4wcHjB8cMH5wNNZ83Wis+boB8w8OmH9wwPjBAeMHB4wfHDB+cMD4wQHjBwfMPzhg/sEB8w8OmH9wwPjBAeMHB4wfHDB+cChrvm4oa75uwPyDA+YfHDB+cMD4wQHjBweMHxwwfnDA+MEB8w8OmH9wwPyDA+YfHDB+cMD4wQHjBweMHxzGmq8bxpqvGzD/4ID5BweMHxwwfnDA+MEB4wcHjB8cMH5wwPyDA+YfHDD/4ID5BweMHxwwfnDA+MEB4wdHsObrRrDm6wbMPzhg/sEB4wcHjB8cMH5wwPjBAeMHB4wfHDD/4ID5BwfMPzhg/sEB4wcHjB8cMH5wwPjB8Xx+8Ou8kbD5Oph/cMD8gwPGDw4YPzhg/OCA8YMDxg8OGD84YP7BAfMPDph/cMD8gwPGDw4WP9gPFj8460Htz7Me1HzdrAc1XzfrQeXnWQ8qP896UPvzrAe1P896UPvzrAe2P7P4wVkPbH9m+QdnPaj8POtB5edZDyo/z3pg+zOLH5z1wPZnFj/YD0HN1816UPN1sx5Yfmb5B2c9sP2ZxQ/OemD7M4sfnPXA9mcWP9gPln9w1gPLzyz/4KwHlp9Z/OCsB7Y/s/jBWQ9sf1bUfN2sBzVf1w+Wf3DWA9ufWfzgrAe2P7P4wVkPbH9m8YOzHtT8xqwHtj+z+MF+sPyDsx7Y/sziB2c9sP2ZxQ/OemD7s6Pm62Y9sP2Z5R+c9cD2ZxY/OOuB7c8sfnDWA9ufWfzgrAe2P7P8g7Me2PsbLP/grAf2/vPT+cGe7e0399SP9Tx7fxbvb79Z+m/q+fjDbsfbb3YT+1i8XLl4vXLxduXi/crFx5WL71cuPq9c/Lhw8U+HOrcWf+UTNq98wuaVT9ing6hbi7/yCZtXPmHzyidsXvmEzSufsOPKJ+y48gk7rnzCjiufsE9HibcWf+UTdlz5hB1XPmHHlU/YceETth0XPmHbceETth0XPmHbceETth0XPmEbjBxvB2sypB2syZB2sCZDGowcbzByvMHI8QYjxxuMHG8s8+ysB7Y/N9j+3GD7M4wcbzByvLHMs7Me2P7MMs/OemD7M4wcbzByvMHI8QYjxxuMHG8wcrzByPEGI8cbyzw762F9s0d7Pjl+Ug8sP8PI8QYjxxvLPDvrge3PLPPsrAe2P8PI8QYjxxuMHG8wcrzByPHGMs/OemD7s8H2Z5Z5dtbD+ma85rD87LD8DCPHG4wcbyzz7KwHtj+zzLOzHtj+DCPHG4wcbzByvMHI8QYjxxuMHG8wcrzByPHGMs/Oeljf7NE6LD93WH5mmWdnPbD9mWWenfXA9meWeXbWA9ufWebZWQ8sP7PMs7MeWH5mmWdnPbD9OWH7c8L2Z5Z5dtYDm69LWH5OWH5mmWdnPbD9mWWenfXA9meWeXbWA9ufWebZWQ8sP7PMs7MeVn4WmHlWYOZZOVj7sxys/VkOQ+UNgfGDAuMHBcYPCsw8KzB+UGD8oMD4QYHxgwLjBwVmnhWYeVZg5lmBmWcFxg8KjB8UGD8oMH5QYOZZgZln5fn84Ek9sPwM4wcFxg8KjB8UGD8oMH5QYPygwMyzAjPPCsw8KzDzrMD4QYHxgwLjBwXGDwrMPCvGmq8Tg+Vng+VnGD8oMH5QYPygwPhBgfGDAuMHBWaeFZh5VmDmWYGZZwXGDwqMHxQYPygwflBg5lmBmWclYPk5YPkZxg8KjB8UGD8oMH5QYPygwPhBgZlnBWaelQ7Lzx2Wn2H8oMD4QYHxgwLjB6XD5us6bL6uw/Jzh+VnGD8oMH5QYPygwPhBgfGDAuMHJWH5OWH5OWH5OWH5GcYPCowfFBg/KDB+UJ7PD36dNwZsvm7A8vOA5WcYPygwflBh/KDC+EGF8YMK4wf1YOVnPVj5WQ9WftaDlZ8Vxg8qjB9UGD+oMH5QG2u+Thtrvk5h/kGF+QcVxg8qjB9UGD+oMH5QYfygwvhBhfkHFeYfVJh/UGH+QYXxgwrjBxXGDyqMH1RlzdepsubrFOYfVJh/UGH8oML4QYXxgwrjBxXGDyqMH1SYf1Bh/kGF+QcV5h9UGD+oMH5QYfygwvhBNdZ8nRprvk5h/kGF+QcVxg8qjB9UGD+oMH5QYfygwvhBhfkHFeYfVJh/UGH+QYXxgwrjBxXGDyqMH9RgzddpsObrFOYfVJh/UGH8oML4QYXxgwrjBxXGDyqMH1SYf1Bh/kGF+QcV5h9UGD+oMH5QYfygwvhBfT4/+HXeSNh8Hcw/qDD/oML4QYXxgwrjBxXGDyqMH1QYP6gw/6DC/IMK8w8qzD+oMH5QYfygwfhBg/GDdrDm6+xgzdfZwcrPBvMPGowfNBg/aDB+0GD8oMH4QYPxgwbzDxrMP2gw/6DB/IMG4wcNxg8ajB80GD9owpqvM2HN1xnMP2gw/6DB+EGD8YMG4wcNxg8ajB80GD9oMP+gwfyDBvMPGsw/aDB+0GD8oMH4QYPxg6as+TpT1nydwfyDBvMPGowfNBg/aDB+0GD8oMH4QYPxgwbzDxrMP2gw/6DB/IMG4wcNxg8ajB80GD9ozpqvM2fN1xnMP2gw/6DB+EGD8YMG4wcNxg8ajB80GD9oMP+gwfyDBvMPGsw/aDB+0GD8oMH4QYPxg/Z8fvDrvNFh83Uw/6DB/IMG4wcNxg8ajB80GD9oMH7QYPygwfyDBvMPGsw/aDD/oMH4QYPxgwbjBw3GD9qAzdcN2HwdzD9oMP+gwfhBg/GDBuMHDcYPOowfdBg/6DD/oMP8g36w8rPD/IMO4wcdxg86jB90GD/ojTVf5401X+cw/6DD/IMO4wcdxg86jB90GD/oMH7QYfygw/yDDvMPOsw/6DD/oMP4QYfxgw7jBx3GD7qw5utcWPN1DvMPOsw/6DB+0GH8oMP4QYfxgw7jBx3GDzrMP+gw/6DD/IMO8w86jB90GD/oMH7QYfygG2u+zo01X+cw/6DD/IMO4wcdxg86jB90GD/oMH7QYfygw/yDDvMPOsw/6DD/oMP4QYfxgw7jBx3GD/rz+cGv80aw5usc5h90mH/QYfygw/hBh/GDDuMHHcYPOowfdJh/0GH+QYf5Bx3mH3QYP+gwftBh/KDD+EFP2HxdwubrYP5Bh/kHHcYPOowfdBg/6DB+0GH8oMP4QYf5Bx3mH3SYf9Bh/kGH8YMO4wcdxg86jB+MgzVfFwdrvi5g/sGA+Qfnv4Xdz6z9OWD8YMD4wYDxgwHjBwPmHwyYfzBg/sGA+QcDxg8GjB8MGD8YMH4wGmu+Lhprvi5g/sGA8YMB4wcDxg8GjB8MGD8YMH4whDW/ETB+MGD8YMD8gwHzDwaMHwwYPxgwfjBg/GAoa74uFLY/w/yDAfMPBowfDBg/GDB+MGD8YMD4wYDxgwHzDwbMPxgw/2DA/IPxdH6wZ3v7zT31Yz2f7M/fXoVnnNST/a2eceS3v6Crn23zHfhff7jNNw++/WZb/XBKf/vhdPn6h8Xl7WQUj/H9D//tlcptXqne5pXabV6p3+aVxm1eab/NK83bvNJxl1f6GWn7gq/0dTJStrc0KBn59Q+ntbea08w/tuV1AtXWtrxO+traFqu2rNryOrlua1teJwRubcvrJMatbXmdeLm1La+TRf9QW7q9xblZfX5oS3+d4Lq1LTdNuf7+BmnG0U7KMAt9q8Osf3xW6DcNxZu7eNMMfbZErdqyastNM/TmNXfTyL25izdN6GdL9KYJ/awtN03oJw8uWQl9dbfkTRP6WVsqcm84uPKmkXtzF62W6GqJ3jShn7WlIveONXfTyL25i5XQl0u03kNftWXcNKGfPLiMSujLu+WmCf2sLRW5Nxxc46aRe3MXK6Evl+hNE/pZWypy71hzN43cm7tYCX2xRPtR76Ev21Kz3IsHl35UQl/eLTWHsmyL1cH1wwdXP2psZUcXK6Evl2jNoSzbUpF7x5q7aeTe28VWCX21RFu9h75sS9GWqweXVgl9ebdYtWXVlorcOw6uGlvZ0cVK6MslWnMoy7ZU5N6w5uSmkXtzFyuhr5ao1Hvoy7bU96GsHlykEvrybqk5lGVbKnLvOLhqbGVHFyuhL5dozaGs2qIVuTesOa0vZ9nRxUroyyVa76Ev22L14LJ4cNFK6Mu7peZQlm2pyL3j4KqxlR1drIS+WqJWcyjLtlTk3rDmrL6cZUcXK6Evl6hVW1Ztqe8UXz24WCX05d1ScyjLtlTk3nFw1djKhi56JfTVEn0hd+HWtlTk3rHm6stZdnTRaomulmi9h75sS1l/Vg8ur+OJVInx6w+r/nZ3+dsrfZnQffpKXyYYn73S1/FEnr7Sl8mjp6/0ZSLm6St9mRh4+krtNq/0ZdLX6St9mUB1+kpvk5FeR3Z4+kpvk5FeR0l4+kpvk5FexwR4+kpvk5FeSMD3tfO+v5BT7+yVvs6bTmev9HU+6T17pa/z4e3ZK32dD1hPXukLSeHOXunrfK559kpf56PKs1f6Oh8nnr1Sqw9xFh/i3FWBdtaW+shv2ZabDuWdteWmQ3lnbSmN8KotJSlbt6UUCMu2FBy+msm5q6TsrC1W44E/Ph54V+vY5i4W2LJcogW2LNtSYMuONVdgy493MUtStlqieVdJ2VlbSoGweHDJkpSt7xartqzaUpF7x8FV38e6o4uV0JdLtL5gddmWitwb1txdrWObu1gJfbVE7yopO2tLKRBWDy4lKVvfLQWHL9tSkXvHwVXfx7qji5XQl0u0vmB11Zayju1Yc3e1jm3uYiX05RKt99CXbbF6cFk8uJSkbH231BzKsi0VuXccXDW2sqOLldBXS/SukrKztlTk3rDm7mod29zFSujLJWrVllVbirZcPbiUpGx9t9QcyrItFbl3HFw1trKhiyUpWy7Ru0rKztpSkXvHmisFwo4uWi3R1RKt99CXbanvQ1k9uJSkbH231BzKsi0VuTccXHe1jm3uYiX01RK9q6TsrC0VuXesOasubuhiJfTlEq330JdtqW8sXD24vI7RbO/dUnMoq7a8jivtZx5cr+Nh+6ldrIS+XKI1h7Jsi9Wa27Dm6stZdnSxEvpyidZ76Mu21HeKrx5cXke+t/VueR1T3962VOTecHC9jjLwp3axEvpyiVq1ZdWWitw71lx9OcuOLlZCXy7Reg992Zay/qweXF7HE3liI87X8USevtK7eCLzNp7IfCFP5NkrvYtLO1/I5nj2Su/i0s4Xci6evdK7uLTzhcyIZ6/0Li7tfCF/4dkrvU1GeiHL4NkrvU1GeiFb39krvU1GeiGn3tkrvUtGGuWmW73rOMpNt25LfXT74x+AjLuq7DZ30WqJrpZo8UzLttRHtzvWXH3J744u1ie9yyVas5irttxVZff1B+Cj3HTru6V4pmVbKnJvOLjuqrLb3MVK6MslWjzTsi0VuXesufqS3x1drIS+WqJ3Nd+dteWmCf3kwaXcdOu7pXimZVusDq4fP7juqrLb3MVK6MslWjzTsi0VuXesufqS3w1dLPPdcone1Xx31pabJvSTB5dy063vFqu2rNpSkXvHwVVjKzu6WAl9uURrDmXZlorcG9bcXVV2m7tYCX21RO9qvjtry00T+smDS7np1ndLzaEs21KRe8fBVWMrO7pYCX25RGsOZdWWUtntWHN3Vdlt7mIl9OUSrffQl22xenBZPLiUm259t9QcyrItFbl3HFw1trKji5XQV0v0rua7s7ZU5N6w5u6qstvcxUroyyVq1ZZVW26a0E8eXMpNt75bag5l2ZaK3DsOrhpb2dDFMt8tl+hdzXdnbanIvWPN1Zez7Oii1RJdLdF6D33Zlpsm9JMHl3LTre+WmkNZtqUi94aD63VUdj+1i5XQV0v0hZx6W9tSkXvHmrPq4oYuVkJfLtF6D33Zlpsm9JMHlxfyF269W2oOZdWWFzIj/sSD64Wsiz+zi5XQl0u05lCWbbFacxvWXH05y44uVkJfLtF6D33Zlpsm9JMHlxdSbe67W/IoL+e6LRW5f/jgml2ssZUdXayEvlyiVm1ZtaUi9441V1/OsqOLldCXS7TeQ1+25aYJ/csHlzzu6uU8uVvKy7luS0XuDQdXaTy3dNFqia6WaM2hLNtSkXvHmqsvZ9nRxUroyyVa76Gv2nJXL+fJg8tdvZxnd0vNoSzbUpF7w8FVGs8tXayEvlyiNYeybEtF7h1rrr6cZUcXK6Gvlmh5OddtuWlCP3lwuauX8+xuqTmUZVusDq4fP7hK47mli5XQl0u05lCWbanIvWPN1ZezbOjiXTWeJ0u0vJzrttw0oZ88uNzVy3l2t1i1ZdWWitw7Dq4aW9nRxUroyyVacyjLtlTk3rDmSuO5pYuV0FdLtLyc67bcNKGfPLjc1ct5drfUHMqyLRW5dxxcNbayo4uV0JdLtOZQVm25q5dz75orjeeWLlZCXy7Reg992RarB5fFg8tdvZxnd0vNoSzbUpF7x8FVYys7ulgJfbVEy8u5bktF7g1rrjSeW7pYCX25RK3asmrLTRP6yYPL63g5VWL8+sOqv91d/vZKXyd0u7zd6uKx2BhfJxifvdLXCa8nr/SFpJVnr/R1IubZK32dGHj2Sl8nqp29UrvNK32dQHX2Sl/nXcyzV3qbjPRC/sKzV3qbjPRClsGzV3qbjPRCtr6zV3qbjPRCTr2zV1ofC6/eiyuR3bot9bHwho8F7uq929zF+lh4sURbafLWbamPhX98zbXS5G3pYn0svFyiVm1ZtaU+Fl58LNzu6r07u1vq6wmWbanIvePgqm8z2NDF0uQtl2hp8tZtqci9Y82Vs2NHF62W6GqJ1nvoy7bcNKGfPLjc1Xt3drfU1xMs21KRe8PBdVfv3eYuVkJfLdHS5K3bUpF7x5qz6uKGLlZCXy7Reg992ZabJvSTB5e7eu/O7paaQ1m15a4iu70H1129d5u7WAl9uURrDmXZFqs1t2HNlbNjRxcroS+XaL2HvmzLTRP6yYPLXb13J3dLiezWbanIveHguqv3bnMXK6Evl6hVW1Ztqci9Y82Vs2NHFyuhL5dovYe+bMtNE/rJg8tdvXcnd0uJ7NZtqci94eC6q/ducxetluhqidYcyrItFbl3rLn6cpYdXayEvlyi9R76qi131eSdPLjc1Xt3drfUHMqyLRW5Nxxcd/Xebe5iJfTlEq05lGVbKnLvWHP15Sw7ulgJfbVES5O3bstNE/rJg8tdvXdnd0vNoSzbYnVw/fjBdVfv3eYuVkJfLtGaQ1m2pSL3jjVXX86yoYsvJA7cuURfyDK4tS03TegnDy4v5C/cerdYtWXVlorcOw6uGlvZ0cVK6MslWnMoy7ZU5N6w5l7IQ/kzu1gJfbVEX0iIubUtN03oJw8uL6Ta3Hq31BzKsi0VuXccXDW2sqOLldCXS7TmUBZtkbt6ObeuOSmN55YuVkJfLtF6D33ZFqsHl48PLnJXL+fZ3VJzKMu2VOTecXDV2MqOLlZCXy3R8nKu21KRe8OaK43nli5WQl8uUau2rNpy04R+8uByVy/n2d1ScyjLtlTk3nFw1djKhi7eVeN5skTLy7luS0XuHWuuvpxlRxetluhqidZ76Mu23DShnzy43NXLeXa31BzKsi0VuTccXKXx3NLFSuirJVpeznVbKnLvWHNWXdzQxUroyyVa76Ev23LThH7y4HJXL+fZ3VJzKKu23NXLuffgKo3nli5WQl8u0ZpDWbbFas1tWHP15Sw7ulgJfblE6z30ZVtumtBPHlzu6uU8uVvKy7luS0XuDQdXaTy3dLES+nKJWrVl1ZaK3DvWXH05y44uVkJfLtF6D33Zlpsm9JMHl7t6OU/ulvJyrttSkXvDwVUazy1dtFqiqyVacyjLtlTk3rHm6stZdnSxEvpyidZ76Ku23NXLefLg8jpeTp13/q8/rPrb3eVvr/R1QrfL260+3wP7uDG+kD3z7JXabV7p6+TRs1f6OhHz7JW+Tgw8e6WvE9XOXunrpK+TV/pCGsWzV/o672KevdLbZKQX8heevVK7zSu9TUZ6IRPg2Su9TUZ6IQHf2Su9TUa6q/fu5L24Etmt21IfC2/4WOCu3rvNXbRaoqslWh8LL9tSHwvvWHP1sfCOLtbHwsslWh8LL9qid9Xkff2xsN7Ve3d2t9TXEyzbUpH7xw8uPay6uKGLldCXS7S+nmDZlorcO9ZcOTt2dLES+mqJliZv3ZabJvSTB5e7eu/O7pb6eoJlW6wOrh8/uO7qvdvcxUroyyVaX0+wbEtF7h1rrpwdG7pYmrzlEi1N3rotN03oJw8ud/Xend0tVm1ZtaUi946Dq8ZWdnSxEvpyidYcyrItFbk3rLnS5G3pYiX01RItTd66LTdN6CcPLnf13p3dLTWHsmxLRe4dB1eNrezoYiX05RKtOZRVW0qTt2PNlSZvSxcroS+XaL2HvmyL1YPL4sHlrt67s7ul5lCWbanIvePgqrGVHV2shL5aoqXJW7elIveGNVeavC1drIS+XKJWbVm15aYJ/eTB5a7eu7O7peZQlm2pyL3j4KqxlQ1dLE3ecomWJm/dlorcO9ZcfTnLji5aLdHVEq330JdtuWlCP3lwuav37uxuqTmUZVsqcm84uO7qvdvcxUroqyX6Qk69rW2pyL1jzVl1cUMXK6Evl2i9h75sy00T+smDywv5C7feLTWHsmrLC5kRf+LB9ULWxZ/ZxUroyyVacyjLtlituQ1rrr6cZUcXK6Evl2i9h75sy00T+smDywupNnfeLeXlXLelIveGg6s0nlu6WAl9uUSt2rJqS0XuHWuuvpxlRxcroS+XaL2HvmzLTRP61w8udlcv59d3i5WXc92Witw/fnBZaTy3dNFqia6WaM2hLNtSkXvHmqsvZ9nRxUroyyVa76Gv2nJXL+fJg8tdvZxnd0vNoSzbUpF7w8FVGs8tXayEvlyiNYeybEtF7h1rrr6cZUcXK6Gvlmh5OddtuWlCP3lwuauX8+xuqTmUZVusDq4fP7hK47mli5XQl0u05lCWbanIvWPN1ZezbOjiXTWeJ0u0vJzrttw0oZ88uNzVy3l2t1i1ZdWWitw7Dq4aW9nRxUroyyVacyjLtlTk3rDmSuO5pYuV0FdLtLyc67bcNKGfPLjc1ct5drfUHMqyLRW5dxxcNbayo4uV0JdLtOZQVm25q5dz75orjeeWLlZCXy7Reg992RarB5fFg8tdvZxnd0vNoSzbUpF7x8FVYys7ulgJfbVEy8u5bktF7g1rrjSeW7pYCX25RK3asmrLTRP6yYPL63g5VWL8+sOqv91d/vZKXyd0u7zd6uKx2BhfJxifvdLXCa8nr/SFpJVnr/R1IubZK32dGHj2Sl8nqp29UrvNK32dQHX2Sl/nXcyzV3qbjPRC/sKzV3qbjPRClsGzV3qbjPRCtr6zV3qbjPRCTr2zV1ofC6/eiyuR3bot9bHwho8F7uq929zF+lh4tURLk7duS30svGHNlSZvSxfrY+HlErVqy6ot9bHw6mPhu3rvzu6W+nqCZVsqcu84uOrbDH68i16avNUS9dLkrdtSkXvHmitnx44uWi3R1RKt99CXbblpQv/6wcXv6r07u1vq6wmWbanIveHguqv3bnMXK6Gvlmhp8tZtqci9Y81ZdXFDFyuhL5dovYe+bMtNE/rJg8tdvXdnd0vNoazacleR3d6D667eu81drIS+XKI1h7Jsi9Wa27Dmytmxo4uV0JdLtN5DX7blpgn95MHlrt67k7ulRHbrtlTk3nBw3dV7t7mLldCXS9SqLau2VOTesebK2bGji5XQl0u03kNftuWmCf3kweWu3ruTu6VEduu2VOTecHDd1Xu3uYtWS3S1RGsOZdmWitw71lx9OcuOLlZCXy7Reg991Za7avJOHlzu6r07u1tqDmXZlorcGw6uu3rvNnexEvpyidYcyrItFbl3rLn6cpYdXayEvlqipclbt+WmCf3kweWu3ruzu6XmUJZtsTq4fvzguqv3bnMXK6Evl2jNoSzbUpF7x5qrL2fZ0MUXEgfuXKIvZBnc2pabJvSTB5cX8hduvVus2rJqS0XuHQdXja3s6GIl9OUSrTmUZVsqcm9Ycy/kofyZXayEvlqiLyTE3NqWmyb0kweXF1Jtbr1bag5l2ZaK3DsOrhpb2dHFSujLJVpzKKu23NXLuXfNlcZzSxcroS+XaL2HvmyL1YPL4sHlrl7Os7ul5lCWbanIvePgqrGVHV2shL5YolFeznVbKnL/+JqL0nhu6WIl9OUStWrLqi03TehfP7jEXb2cZ3dLzaEs21KRe8fBVWMrG7p4V43nyRItL+e6LRW5d6y5+nKWHV20WqKrJVrvoS/bctOEfvLgclcv59ndUnMoy7ZU5N5wcJXGc0sXK6Gvlmh5Oddtqci9Y81ZdXFDFyuhL5dovYe+bMtNE/rJg8tdvZxnd0vNoazaclcv596DqzSeW7pYCX25RGsOZdkWqzW3Yc3Vl7Ps6GIl9OUSrffQl225aUI/eXC5q5fz5G4pL+e6LRW5NxxcpfHc0sVK6MslatWWVVsqcu9Yc/XlLDu6WAl9uUTrPfRlW26a0E8eXO7q5Ty5W8rLuW5LRe4NB1dpPLd00WqJrpZozaEs21KRe8eaqy9n2dHFSujLJVrvoa/aclcv58mDy+t4OVVi/PrDqr/dXf72Sl8ndLu83eri8XFjfCF75tkrtdu80tfJo2ev9HUi5tkrfZ0YePZKXyeqnb3S10lfJ6/0hTSKZ6/0dd7FPHult8lIL+QvPHuldptXepuM9EImwLNXepuM9EICvrNXepuMdFfv3cl7cSWyW7elPhbe8LHAXb13m7totURXS7Q+Fl62pT4W3rHm6mPhHV2sj4WXS7Q+Fl615a6avJOPhe/qvTu7W+rrCZZtqci94eC6q/ducxcroS+XaH09wbItFbl3rLlyduzoYiX0xRLtpclbt+WmCf3rB5d+V+/d2d1SX0+wbIvVwfXDB1e/q/ducxcroS+XaH09wbItFbl3rLlydmzoYmnylku0NHnrttw0oZ88uNzVe3d2t1i1ZdWWitw7Dq4aW9nRxUroyyVacyjLtlTk3rDmSpO3pYuV0FdLtDR567bcNKGfPLjc1Xt3drfUHMqyLRW5dxxcNbayo4uV0JdLtOZQVm0pTd6ONVeavC1drIS+XKL1HvqyLVYPLosHl7t6787ulppDWbalIveOg6vGVnZ0sRL6aomWJm/dlorcG9ZcafK2dLES+nKJWrVl1ZabJvSTB5e7eu/O7paaQ1m2pSL3joOrxlY2dLE0ecslWpq8dVsqcu9Yc/XlLDu6aLVEV0u03kNftuWmCf3kweWu3ruzu6XmUJZtqci94eC6q/ducxcroa+W6As59ba2pSL3jjVn1cUNXayEvlyi9R76si03TegnDy4v5C/cerfUHMqqLS9kRvyJB9cLWRd/ZhcroS+XaM2hLNtiteY2rLn6cpYdXayEvlyi9R76si03TegnDy4vpNrcebeUl3PdlorcGw6u0nhu6WIl9OUStWrLqi0VuXesufpylh1drIS+XKL1HvqyLTdN6CcPLnf1cp7cLeXlXLelIveGg6s0nlu6aLVEV0u05lCWbanIvWPN1Zez7OhiJfTlEq330Bdtybt6Ob9+cMm7ejnP7paaQ1m2pSL3jx9ceVh1cUMXK6Evl2jNoSzbUpF7x5qrL2fZ0cVK6KslWl7OdVtumtBPHlzu6uU8u1tqDmXZFquD68cPrtJ4buliJfTlEq05lGVbKnLvWHP15SwbunhXjefJEi0v57otN03oJw8ud/Vynt0tVm1ZtaUi946Dq8ZWdnSxEvpyidYcyrItFbk3rLnSeG7pYiX01RItL+e6LTdN6CcPLnf1cp7dLTWHsmxLRe4dB1eNrezoYiX05RKtOZRVW+7q5dy75krjuaWLldCXS7TeQ1+2xerBZfHgclcv59ndUnMoy7ZU5N5xcNXYyo4uVkJfLdHycq7bUpF7w5orjeeWLlZCXy5Rq7as2nLThH7y4PI6Xk6VGL/+sOpvd5e/vdKXCd0a7zuj9mNxq79MMD59pS8TXs9e6etIK09f6ctEzNNX+jIx8PSVvkxUO32ldptX+jKB6vSVvk5GOnulr5OR8lsaHBI/9uzwOrLDvW15nfT1h9qy922M13Ej/tQuvk5q3LlEX0d2uLctr5NHf+aas+rihi6+To7eukRfJ3RvbctNE/rJ29ivIzvce7fcNKGftOV1ZIc/8+B6HTfiT+1iJfTlEr1pQj9ri9Wa27Dmbhq5N3exEvpyidZ76Mu23DShnzy4vI7scOvd8jqyw71tqci94eB6HTfiT+1iJfTlErVqy6otFbl3rLmbRu7NXayEvlyi9R76si03TehfP7iM15Ed7rxbxuvIDve2pSL3jx9c43XciD+1i1ZLdLVEaw5l2ZaK3DvW3E0j9+YuVkJfLtF6D33VlteRHW59cHkd2eHeu6XmUJZtqci94eB6HTfiT+1iJfTlEq05lGVbKnLvWHM3jdybu1gJfbVEX0d2uLctN03oJw8uryM73Hu31BzKsi1WB9ePH1yv40b8qV2shL5cojWHsmxLRe4da66+nGVDF1/Hjbh1ib6O7HBvW26a0E8eXF5Hdrj3brFqy6otFbl3HFw1trKji5XQl0u05lCWbanIvWHNvY4b8ad2sRL6aom+juxwb1tumtBPHlxeR3a4926pOZRlWypy7zi4amxlRxcroS+XaM2hrNryOrLDn7nmXseN+FO7WAl9uUTrPfRlW6weXBYPLq8jO7RD32s+0r7+4dHirYwhp2Uclm+vsB1+2Mcuvkyg/6ldfJlA/1O7+DKB/qd28WXy/8/s4uu4KH9qF1/mceGndvFlHhd+ahdf5unCRd6eRl1SP75Su80rfZlngNNX+jI5/fSVvkyWPn2lL5N3T1/py2TSs1f6OqbL01f6Mtnu9JW+TP46faW3yUiv43V0lbeaXcdx8pu7pLz96q52mqql+3uq1uPju7CvY3b8yX18nXz3c/v4OunxeX1s7WMfXyeb/qf28exdh9exU/7cPr6OzvIn9/F1UvvP7ePrPBP83D6+zhPHH+ujtfbeR+snsxDtl1rffryFx8c+WvXx/08fu433Pva+6ONdn2d29/GuzzO7+3jX55ndfbzr88zuPt71eWZzH19H/vmT+3jX55ndfbzr80zk+6/uvfWPjbnrA8ppY+ymjUn71piMj3TH62hA3Y63p043Pf3NTfL9V7f4+Kz/OmbP3Y15nZD/xxoj/u1XS+bXP27fftqkf/vdEutC4r0Qse9/+G8tf53ngcu0/HUeHa7R8nG8jsD0Oi1/nQeSy7T8dZ5dLtPy13kqukzLrVr+7Jbf9UnuJ7b8rs+IP7Hl9fT59JbX0+fTW15Pn89u+evIea/T8nr6fHrL6+nz6S2vp8+nt9yq5c9ueT19Pr3l9fT59JbX0+fTW15Pn09veT19PrvlryOevk7L6+nz6S2vp8+nt7yePp/ecquWP7vl9fT59JbX0+fTW15Pn09veT19Pr3l9fT57Ja/jlT9Oi2vp8+nt7yePp/e8nr6fHrLrVr+7JbX0+fTW15Pn09veT19Pr3l9fT59JbX0+ezW2719Pn0ltfT59NbXk+fT295PX0+veVWLX92y9dPn9nfGmOjnbW8afvWR23y7QuU2jEWPy+S769g/vN3/0l/+fm/lRXMsvqOsvTbFwWruZ2UNeL96+tb+/YVTE39P/5u/q///q9/+ad/+sv/+m//9C//8Pf//pd/+ed/++XS45f/bz3H3o5v36Y233v4dkP44m/3403X3Jt8/6OzG+uZ7X2/Pn781+vbGuw2fv/r+4Zf//b10D30978+/3N//fjxX59v35LXR//dr1/PE+779e2Hf33K2xJK+/2ds54T+4O//m3N5XdfQP3rr9cf//X97T9tfmyObfz143fLav6P9sXW0I73Lzxv3x+eX62YZt+2p4iTwg5/2yjz+O3J9Utp8suPrm1Fo7+9/PGdS1OO/ktlazHP15fEH7+k//FL8o9fMv7wJWtfxNeXtD9+ifzxS/SPX/LH/+vnH/+vn3/8v37+8f/6+cf/6+cf/68//vh//fHH/+uvvzN1vH/T6sj+4RL945fYH7/E//gl8ccv6X/8kvyDl8z/pb/8pK9n47y/P9jMf/z9d5T6errr7KJ85KLxwEXrGZGzi9ojF8kjF+kjF9kjF/kjFz1yR+gjd4Q+ckfoI3eEPXJH2CN3hD1yR9gjd4Q9ckfYI3eEPXJHrJ9ePcdb6vPR7MNF+chF44GL/HjkovbIRXJ6kYwPF627N+z9jZ4RH1oey9cU8q64CbGPF7VHLpJHLtIHLlp7f8PGW7YPb/LhovbIRfLIRfrIRfbIRcuVG/6uYw3/rTXqrxfFIxf1Ry7KRy4a5xfl7y9aP4GcXbRuufdvF+WHlZv+yEXxyEX9kYvygYvWCT6+vTc9//HDbrTOvWcXLcvrh7697TnfkPv9RbH+lteY/0nf/5L7h4vkkYv0kYvW/3H7+1uy8x/zw0Xru3z09zetjg8agFh/x9PZRe2Blq+/Z+fsIn3kInvkIn/konjkov7IRY/c5et3VE8uWr9PenbRI3eEPHJHyCN3hDxyR8gjd4Q8ckesnz4jj/cdNtvvD7VYP32eXdQeuUgeuUgfucgeucgfuSgeuaifX/Rhs1w/fZ5dNB64yI5HLvrkjnh/Tyfyg/Ei7JPuvStnYhzHh4v6IxflIxeNBy7yT7qX+u2i9uGi9shF8shF+shF9shF/shF8chFnyQWfb/3hn347xRniSXG+LDDfvL0eXKRPHKRPnKRPXKRP3JRPHJRf+SiTxLL+8dxq2QZj2TY/kiG7e2Ri+SRi/SRi+yRi/yRi+KRi/ofv6h/8gm8tfdRqPnPHw6b/skn66eX2foyyff5GZNxfLjMH7ssHrusP3ZZPnbZeOgyPR67rD12mTx2mX5y2fvbFL9c1j5cZo9d5o9dFo9d1h+7LP/4ZfN/2C8/HJ+Ms3ztgw956Cp96Cp76Cp/6Kp46Kr+0FX50FXjkavWJ2ebb8S9z8z46L9/e2p9dJ5eJQ9dpQ9dZZ9clfbtqvHhKn/oqnjkqvW7y22+ifc+NDvfMfv9LrcecZk/afLtKv+gtJSHrtKHrrKHrvKHroqHruoPXZWfXDXevbzzTbDfb8Hr0Zezq8bx0FXtoavkoav0oavsoas+uTek6ber5Pc724iHruoPXfXZvfFtB5hX/WYHWExQi7xP189/Ph3c928PUvOfP3yONwavpnYcxKIasSghFqXEooxYlBOLCmJR/ScUZWPod0Xph6L2bOht+LeitH34K+MZf6UdT/kr7Sl/RZ7yV/Qpf8We8lf8KX/ls50lvgW7lh8v649dlo9dNh66TI7HLmuPXSaPXaaPXWaPXeaPXfbYXSKP3SWfvEU6P9X/jo7tx4fLxkOXffIW6ell7bHL5LHLPvnPrf5tM9APE7btk/c6zy6zT1qi397HnR9zfwgE9smt7PrtEcw/jFA0s8cu88cui8cu649dlo9dNh66zI/HLmuPXfbJrezZvl02PiQ0/+wu+e7miiO+Ptc2MufNjVaQ0woKWkGdVlDSChqwgj759Cbi27dYzH/+/WRs++QjlZj/79tlHzeZTz5TObvskw9VTi9rj132ycYT/m0DDY8Pl/ljl8Vjl/XHLsvHLhsPXfbZRzJnl7XHLpPHLvvk4Iv+/V3yIVV99rHM2WX+2GXx2GWf3CW9fUv6Xf3DZfnYZeOhyz77cObssvbYZfLYZfrYZZ/cJd2/uyw+bK+ffUJzdlk8dll/7LLP7hL7/rIP+fSzz1G+vkw++6Tj7LL22GXy2GX62GX22GWf3SXf3ouNPOTDZfHYZf2xy/Kxyz67S/L7y35/dstn782eXdYeu0weu0wfu8weu8wfu+yTu+S7rzeL1PhwWX/ssnzssvHQZZ+9A5nt+8v6h8vaY5fJY5fpY5fZY5f5Y5fFY5d9ll7HtziTdvIFd027vSc77X58+Cu556+Efvsr/cMu/Nn7m3v/ymdvh27+K+0pf0We8lf0KX/FnvJX/Cl/Jfb8lZRvf+XDDK1o3/9aFn8ln/JXxjP+ih1P+St71n6+f1nj/OcP45Zi8pS/ok/5K/aUv+JP+SvxlL/Sn/JX8il/Zc/aT/m2KlM/PAf5sf+1LP5Ke8pfkaf8FX3KX9m09r99LaZmfNiT3Z/yV+Ipf6U/5a/kU/7KeMZfieMpf6U95a9sWvvx3arsH960CN3/WhZ/xZ7yV/wpfyWe8lf6I5/EyWOfMspjnzLKY58yymOfMkqXxy7Txy6zxy7zxy6Lxy577C7pj90l/bG7JB+7S/KxuyQfu0s++5Tx60kx+exTxm+WivnPzT9c1h+7LB+7bDx02WefMp5d1h67TB67TB+7zB67zB+77LG7ZDx2l4zH7pLx0F2ix/HYZQ/dJfrY1zfoY1/foI99fYM+9vUN+tjXN+hjX9+gj319gz729Q362Nc36GNf36CPfX2DPvb1DfrY1zfoY1/foI99fYM+9vUN+uDXN/gvP+yffETp9t3M9rdL/+rdmZd+8gnlV1f9x/yf/8/f/+tf/v6//9M//qLp+eXf/p9//oc3a8/8n//+//7vt3/z5vX53//6L//wj//j//zrP/5i+PlO7vPLnTo/DFX5JvX46//J/6zHu0zjlzsl5M9d/u7Pf/vX7Tj+3A5//7L5X/5vMfzPvfnf/fX/9F+92Z9d7O2C+QnynyN/+Zd//Sg9Mub/zPfvvvjlR3Q+Imi8XW/jzz7ertb5Xose4+1qbceftcl76//69474s7d4u+KX74x1idmr2a//Dw==",
1822
1892
  "brillig_names": [
1823
1893
  "decompose_hint",
1824
1894
  "lte_hint",
@@ -1831,96 +1901,26 @@
1831
1901
  "directive_to_radix"
1832
1902
  ],
1833
1903
  "verification_key": "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",
1834
- "artifact_hash": "212cda3aaf31be03e5d6bcdebffe191826f41b55-21085bff0c2bc37ff578d0fed86beb16-mega-honk-true"
1904
+ "artifact_hash": "7cb5566fe25622a27de9406180c3ef36c08c61ac-21085bff0c2bc37ff578d0fed86beb16-mega-honk-true"
1835
1905
  },
1836
1906
  {
1837
- "name": "compute_note_hash_and_optionally_a_nullifier",
1907
+ "name": "sync_notes",
1838
1908
  "is_unconstrained": true,
1839
1909
  "custom_attributes": [],
1840
1910
  "abi": {
1841
1911
  "error_types": {
1842
- "16957488177269924912": {
1843
- "error_kind": "fmtstring",
1844
- "item_types": [],
1845
- "length": 16
1846
- },
1847
1912
  "17843811134343075018": {
1848
1913
  "error_kind": "string",
1849
1914
  "string": "Stack too deep"
1850
1915
  }
1851
1916
  },
1852
- "parameters": [
1853
- {
1854
- "name": "contract_address",
1855
- "type": {
1856
- "fields": [
1857
- {
1858
- "name": "inner",
1859
- "type": {
1860
- "kind": "field"
1861
- }
1862
- }
1863
- ],
1864
- "kind": "struct",
1865
- "path": "aztec::protocol_types::address::aztec_address::AztecAddress"
1866
- },
1867
- "visibility": "private"
1868
- },
1869
- {
1870
- "name": "nonce",
1871
- "type": {
1872
- "kind": "field"
1873
- },
1874
- "visibility": "private"
1875
- },
1876
- {
1877
- "name": "storage_slot",
1878
- "type": {
1879
- "kind": "field"
1880
- },
1881
- "visibility": "private"
1882
- },
1883
- {
1884
- "name": "note_type_id",
1885
- "type": {
1886
- "kind": "field"
1887
- },
1888
- "visibility": "private"
1889
- },
1890
- {
1891
- "name": "compute_nullifier",
1892
- "type": {
1893
- "kind": "boolean"
1894
- },
1895
- "visibility": "private"
1896
- },
1897
- {
1898
- "name": "serialized_note",
1899
- "type": {
1900
- "kind": "array",
1901
- "length": 0,
1902
- "type": {
1903
- "kind": "field"
1904
- }
1905
- },
1906
- "visibility": "private"
1907
- }
1908
- ],
1909
- "return_type": {
1910
- "abi_type": {
1911
- "kind": "array",
1912
- "length": 4,
1913
- "type": {
1914
- "kind": "field"
1915
- }
1916
- },
1917
- "visibility": "public"
1918
- }
1917
+ "parameters": [],
1918
+ "return_type": null
1919
1919
  },
1920
- "bytecode": "H4sIAAAAAAAA/9VZS27bMBClLcmy5Mh27RsE6K4FxFj+ZGegn5xDTewT9ABadNOeuiHMkZ5Hk8KAh0U8QEBZQ715fDMiKWZgTjZ+/Rv469i3I9M36rP3bXmdWUWsMiTPwY3wHN4Iz+hGeMaKPAcCT9fS+5aY0zuXmtP72HPiwy7REfjNv4BY0D++zXw7BL9iYmwmDFYLf1dWz5k5N2X+q8xjpmHw14Q/DoNfEu8vTYePY6G4kW+fmk7LJ3jGWeGvsYgJl3xD8H1lvgh835gPa/g782HdEyfSbQRjUayrXei80NhSGNvgjdaYTju8R1rnJmiNWsp5xvhw/sSnoD5Nx2fEfDH4MuZLwEf6u/Ye+vHcp9DvM9znNRmZfg2Tn3KOWoeoqTgA/qtVku48J3FzHht9qHsMet4zfUKsFahPCP2dPss3+NO1s7QxrUVMT9SINBtjf+bLwBc353Fy/zuGOIhFPBLW/5P/PfPtCJ6h5+dC/BGLf8ZbuIcacaxIuEf93Tv50V9PzKl+flF/05+n9DbVm0qas/Xwty1+Fob/kfDzMPgbwp+EwW/3MndB8B9Kwi/C8H8k/GmY+mn3krMw/A+EPw+CXx1o3f1gOmvnB3+9gPt6c7e1l+yJMH7OuIbaEy0YH64Prr/OtxS4zgUfz+FSiLMU4khYmSLWnSLW7J2OcayINVHEmipiaeYxVcTS1CtXxCoUsTTrXlMvyqO0T3O29215pUn7NEV8K+3TNL/dSWuqr1jQEMeXsP4/mc6TIDztA6059K5TDIxdBIp96XpN8QuBD/HOBd81h7KHH+u1fay31pbHTbVq81kwrvwefhPhfIz9pbVf2vcpal1K3/1T0NVZDL6C+RLwEUfpu38aiP8l+mP8ueDj6/+luVyY/no4YePGM669ypi78z/pbD7w/LW+9N2k+Lnpz9f/63wR9eF76VzgOhd8fH+SC3FyIc4tYvEzetTQ1TXpFDedXyuX2133Dy6aixJzfu5vWPyE9f/tf+PYqL1mzj9ua3tc1cd6Xb+8VM/1guE7G4JOfwHiE0IYFR8AAA==",
1921
- "debug_symbols": "tdfRioQgFAbgd/G6C4/amL3KsgxWNghiYbWwRO++OrTMMHM5/DfBsdNnRD9ydja4brtdfRynhbVfOwtTb1c/xVztR8W65EPwt+vzMuPlYuS9f5ltLOWy2rSyVoqKuTiwVvH89OiDy2taH9Vbp/7vLHfPzro5vitmFEyuYfIFJmuY3MBkg5KJcxxNOFrgaImjFY6ucfQFR2sc3eBoXBoJl0bCpZFwaSRcGgmXRsKlkT5Mo5FnZ/60b7YG2g3QNjhbcKBNQFsAbQm0FdCugTYwlwKYSwHMpUDl8sjVj03edsGdg9W4xf5pzlp/Z/cycs1p6t2wJVeGr8fcVf5lqSql7kd7Lii/IEmdN8kb/QE=",
1920
+ "bytecode": "H4sIAAAAAAAA/9VUyw6CMBBseURBOaiJ3kz8gyIYOJJ49x8akKMe8OKNT5eabbqpVRKlJkzSbEs3szNlW0oUKESPvAH9tGnIFdhBDCA6aN/tRgFr9hviQKs7JH/O0iQw+BtQ/5OfWtIvIPktnT+bAM+xVfzYi6w77UaIesKWZ/nPbHpe9fhc/MFnh32k1caghm+uIYci3RuYR4Y8iRlRd9prh/eV5YzJei7w++RVO67va/lrWIeafvmOFV/qrDMe1wmv+YFXVVrypcYv4KBzGnMvbGHe1wvY45yo3mjul/J0vZ0b0gNB8gCVxsvQjgYAAA==",
1921
+ "debug_symbols": "ndLNCoQgEAfwd5lzh9S0j1eJJawsBNEwW1iid1+LdmmXLnoZmMHfzMH/Cr1ol7GRejAzVPUKynTcSaN9t24JtFYqJcfmOoZ0Lwgd7+eJ672dHbcOKoITELqHKku9HqQSfpaz7ZEAwqGAhIIsFNBAgG8vlBQXJykppV+EcHEgGoNYDMpjUBGByO3vlwzlH8QI+0Wbb5/cSt4qcaZrWHR3CZt7TeIvd5M1negXK/YEXsLna+1vYezX+tVv",
1922
1922
  "brillig_names": [
1923
- "compute_note_hash_and_optionally_a_nullifier"
1923
+ "sync_notes"
1924
1924
  ]
1925
1925
  }
1926
1926
  ],
@@ -2389,51 +2389,51 @@
2389
2389
  "path": "std/panic.nr",
2390
2390
  "source": "pub fn panic<T, U, let N: u32>(message: fmtstr<N, T>) -> U {\n assert(false, message);\n crate::mem::zeroed()\n}\n"
2391
2391
  },
2392
- "81": {
2392
+ "109": {
2393
+ "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
2394
+ "source": "use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n header::get_header_at,\n key_validation_request::get_key_validation_request,\n logs::{emit_encrypted_event_log, emit_encrypted_note_log},\n returns::pack_returns,\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log_hash::{EncryptedLogHash, LogHash, NoteLogHash},\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NOTE_HASHES_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PUBLIC_DISPATCH_SELECTOR,\n },\n header::Header,\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: Header,\n\n pub note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n pub encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: self.next_counter(),\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage(),\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert(request.pk_m.hash() == pk_m_hash);\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(\n &mut self,\n note_hash_counter: u32,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // The oracle simulates the private call and returns the value of the side effects counter after execution of\n // the call (which means that end_side_effect_counter - start_side_effect_counter is the number of side effects\n // that took place), along with the hash of the return values. We validate these by requesting a private kernel\n // iteration in which the return values are constrained to hash to `returns_hash` and the side effects counter\n // to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
2395
+ },
2396
+ "128": {
2393
2397
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/notes.nr",
2394
2398
  "source": "use crate::note::{note_header::NoteHeader, note_interface::NoteInterface};\n\nuse dep::protocol_types::{\n address::AztecAddress,\n indexed_tagging_secret::{INDEXED_TAGGING_SECRET_LENGTH, IndexedTaggingSecret},\n utils::arr_copy_slice,\n};\n\n/// Notifies the simulator that a note has been created, so that it can be returned in future read requests in the same\n/// transaction. This note should only be added to the non-volatile database if found in an actual block.\npub fn notify_created_note<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n notify_created_note_oracle_wrapper(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n )\n };\n}\n\n/// Notifies the simulator that a note has been nullified, so that it is no longer returned in future read requests in\n/// the same transaction. This note should only be removed to the non-volatile database if its nullifier is found in an\n/// actual block.\npub fn notify_nullified_note(nullifier: Field, note_hash: Field, counter: u32) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { notify_nullified_note_oracle_wrapper(nullifier, note_hash, counter) };\n}\n\nunconstrained fn notify_created_note_oracle_wrapper<let N: u32>(\n storage_slot: Field,\n note_type_id: Field,\n serialized_note: [Field; N],\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_created_note_oracle(\n storage_slot,\n note_type_id,\n serialized_note,\n note_hash,\n counter,\n );\n}\n\n#[oracle(notifyCreatedNote)]\nunconstrained fn notify_created_note_oracle<let N: u32>(\n _storage_slot: Field,\n _note_type_id: Field,\n _serialized_note: [Field; N],\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\nunconstrained fn notify_nullified_note_oracle_wrapper(\n nullifier: Field,\n note_hash: Field,\n counter: u32,\n) {\n let _ = notify_nullified_note_oracle(nullifier, note_hash, counter);\n}\n\n#[oracle(notifyNullifiedNote)]\nunconstrained fn notify_nullified_note_oracle(\n _nullifier: Field,\n _note_hash: Field,\n _counter: u32,\n) -> Field {}\n\n#[oracle(getNotes)]\nunconstrained fn get_notes_oracle<let N: u32, let S: u32>(\n _storage_slot: Field,\n _num_selects: u8,\n _select_by_indexes: [u8; N],\n _select_by_offsets: [u8; N],\n _select_by_lengths: [u8; N],\n _select_values: [Field; N],\n _select_comparators: [u8; N],\n _sort_by_indexes: [u8; N],\n _sort_by_offsets: [u8; N],\n _sort_by_lengths: [u8; N],\n _sort_order: [u8; N],\n _limit: u32,\n _offset: u32,\n _status: u8,\n _return_size: u32,\n _placeholder_fields: [Field; S],\n) -> [Field; S] {}\n\nunconstrained fn get_notes_oracle_wrapper<let N: u32, let S: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; N],\n select_by_offsets: [u8; N],\n select_by_lengths: [u8; N],\n select_values: [Field; N],\n select_comparators: [u8; N],\n sort_by_indexes: [u8; N],\n sort_by_offsets: [u8; N],\n sort_by_lengths: [u8; N],\n sort_order: [u8; N],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_fields: [Field; S],\n) -> [Field; S] {\n let return_size = placeholder_fields.len() as u32;\n get_notes_oracle(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n return_size,\n placeholder_fields,\n )\n}\n\npub unconstrained fn get_notes<Note, let N: u32, let M: u32, let S: u32, let NS: u32>(\n storage_slot: Field,\n num_selects: u8,\n select_by_indexes: [u8; M],\n select_by_offsets: [u8; M],\n select_by_lengths: [u8; M],\n select_values: [Field; M],\n select_comparators: [u8; M],\n sort_by_indexes: [u8; M],\n sort_by_offsets: [u8; M],\n sort_by_lengths: [u8; M],\n sort_order: [u8; M],\n limit: u32,\n offset: u32,\n status: u8,\n mut placeholder_opt_notes: [Option<Note>; S], // TODO: Remove it and use `limit` to initialize the note array.\n placeholder_fields: [Field; NS], // TODO: Remove it and use `limit` to initialize the note array.\n _placeholder_note_length: [Field; N], // Turbofish hack? Compiler breaks calculating read_offset unless we add this parameter\n) -> [Option<Note>; S]\nwhere\n Note: NoteInterface<N>,\n{\n sync_notes_oracle_wrapper();\n let fields = get_notes_oracle_wrapper(\n storage_slot,\n num_selects,\n select_by_indexes,\n select_by_offsets,\n select_by_lengths,\n select_values,\n select_comparators,\n sort_by_indexes,\n sort_by_offsets,\n sort_by_lengths,\n sort_order,\n limit,\n offset,\n status,\n placeholder_fields,\n );\n let num_notes = fields[0] as u32;\n let contract_address = AztecAddress::from_field(fields[1]);\n for i in 0..placeholder_opt_notes.len() {\n if i < num_notes {\n // lengths named as per typescript.\n let return_header_length: u32 = 2; // num_notes & contract_address.\n let extra_preimage_length: u32 = 2; // nonce & note_hash_counter.\n let read_offset: u32 = return_header_length + i * (N + extra_preimage_length);\n let nonce = fields[read_offset];\n let note_hash_counter = fields[read_offset + 1] as u32;\n let header = NoteHeader { contract_address, nonce, storage_slot, note_hash_counter };\n let serialized_note = arr_copy_slice(fields, [0; N], read_offset + 2);\n let mut note = Note::deserialize_content(serialized_note);\n note.set_header(header);\n placeholder_opt_notes[i] = Option::some(note);\n };\n }\n placeholder_opt_notes\n}\n\n/// Returns true if the nullifier exists. Note that a `true` value can be constrained by proving existence of the\n/// nullifier, but a `false` value should not be relied upon since other transactions may emit this nullifier before the\n/// current transaction is included in a block. While this might seem of little use at first, certain design patterns\n/// benefit from this abstraction (see e.g. `PrivateMutable`).\npub unconstrained fn check_nullifier_exists(inner_nullifier: Field) -> bool {\n check_nullifier_exists_oracle(inner_nullifier) == 1\n}\n\n#[oracle(checkNullifierExists)]\nunconstrained fn check_nullifier_exists_oracle(_inner_nullifier: Field) -> Field {}\n\n/// Same as `get_app_tagging_secret_as_sender`, except it returns the derived tag as an array of bytes, ready to be included in a\n/// log.\npub unconstrained fn get_app_tag_bytes_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> [u8; 32] {\n let tag = get_app_tagging_secret_as_sender(sender, recipient).compute_tag(recipient);\n tag.to_be_bytes()\n}\n\n/// Returns the tagging secret for a given sender and recipient pair, siloed for the current contract address.\n/// Includes the last known index used to send a note tagged with this secret.\n/// For this to work, PXE must know the ivpsk_m of the sender.\n/// For the recipient's side, only the address is needed.\npub unconstrained fn get_app_tagging_secret_as_sender(\n sender: AztecAddress,\n recipient: AztecAddress,\n) -> IndexedTaggingSecret {\n let result = get_app_tagging_secret_as_sender_oracle(sender, recipient);\n IndexedTaggingSecret::deserialize(result)\n}\n\n#[oracle(getAppTaggingSecretAsSender)]\nunconstrained fn get_app_tagging_secret_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) -> [Field; INDEXED_TAGGING_SECRET_LENGTH] {}\n\n/// Notifies the simulator that a tag has been used in a note, and to therefore increment the associated index so that\n/// future notes get a different tag and can be discovered by the recipient.\n/// This change should only be persisted in a non-volatile database if the tagged log is found in an actual block -\n/// otherwise e.g. a reverting transaction can cause the sender to accidentally skip indices and later produce notes\n/// that are not found by the recipient.\npub fn increment_app_tagging_secret_index_as_sender(sender: AztecAddress, recipient: AztecAddress) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n increment_app_tagging_secret_index_as_sender_wrapper(sender, recipient);\n }\n}\n\nunconstrained fn increment_app_tagging_secret_index_as_sender_wrapper(\n sender: AztecAddress,\n recipient: AztecAddress,\n) {\n increment_app_tagging_secret_index_as_sender_oracle(sender, recipient);\n}\n\n#[oracle(incrementAppTaggingSecretIndexAsSender)]\nunconstrained fn increment_app_tagging_secret_index_as_sender_oracle(\n _sender: AztecAddress,\n _recipient: AztecAddress,\n) {}\n\n/// Finds new notes that may have been sent to all registered accounts in PXE in the current contract and makes them available\n/// for later querying via the `get_notes` oracle.\npub fn sync_notes() {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n sync_notes_oracle_wrapper();\n }\n}\n\nunconstrained fn sync_notes_oracle_wrapper() {\n sync_notes_oracle();\n}\n\n#[oracle(syncNotes)]\nunconstrained fn sync_notes_oracle() {}\n"
2395
2399
  },
2396
- "82": {
2400
+ "135": {
2397
2401
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/oracle/logs.nr",
2398
2402
  "source": "use dep::protocol_types::address::AztecAddress;\n\n/// Informs the simulator that an encrypted note log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_note_log<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_note_log_oracle_wrapper(note_hash_counter, encrypted_note, counter)\n }\n}\n\n/// Informs the simulator that an encrypted event log has been emitted, helping it keep track of side-effects and easing\n/// debugging.\npub fn emit_encrypted_event_log<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe {\n emit_encrypted_event_log_oracle_wrapper(\n contract_address,\n randomness,\n encrypted_event,\n counter,\n )\n }\n}\n\nunconstrained fn emit_encrypted_note_log_oracle_wrapper<let M: u32>(\n note_hash_counter: u32,\n encrypted_note: [u8; M],\n counter: u32,\n) {\n emit_encrypted_note_log_oracle(note_hash_counter, encrypted_note, counter)\n}\n\nunconstrained fn emit_encrypted_event_log_oracle_wrapper<let M: u32>(\n contract_address: AztecAddress,\n randomness: Field,\n encrypted_event: [u8; M],\n counter: u32,\n) {\n emit_encrypted_event_log_oracle(contract_address, randomness, encrypted_event, counter)\n}\n\n/// Temporary substitute that is used for handling contract class registration. This\n/// variant returns the log hash, which would be too large to compute inside a circuit.\npub unconstrained fn emit_contract_class_unencrypted_log_private<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {\n emit_contract_class_unencrypted_log_private_oracle(contract_address, message, counter)\n}\n\n// = 480 + 32 * N bytes\n#[oracle(emitEncryptedNoteLog)]\nunconstrained fn emit_encrypted_note_log_oracle<let M: u32>(\n _note_hash_counter: u32,\n _encrypted_note: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitEncryptedEventLog)]\nunconstrained fn emit_encrypted_event_log_oracle<let M: u32>(\n _contract_address: AztecAddress,\n _randomness: Field,\n _encrypted_event: [u8; M],\n _counter: u32,\n) {}\n\n#[oracle(emitContractClassLog)]\nunconstrained fn emit_contract_class_unencrypted_log_private_oracle<let N: u32>(\n contract_address: AztecAddress,\n message: [Field; N],\n counter: u32,\n) -> Field {}\n"
2399
2403
  },
2400
- "167": {
2404
+ "158": {
2401
2405
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/hash.nr",
2402
2406
  "source": "use crate::utils::to_bytes::{arr_to_be_bytes_arr, str_to_be_bytes_arr};\nuse dep::protocol_types::{\n address::{AztecAddress, EthAddress},\n constants::{\n GENERATOR_INDEX__FUNCTION_ARGS, GENERATOR_INDEX__MESSAGE_NULLIFIER,\n GENERATOR_INDEX__SECRET_HASH,\n },\n hash::{poseidon2_hash_with_separator, poseidon2_hash_with_separator_slice, sha256_to_field},\n point::Point,\n traits::Hash,\n};\n\npub use dep::protocol_types::hash::{compute_siloed_nullifier, pedersen_hash};\n\npub fn pedersen_commitment<let N: u32>(inputs: [Field; N], hash_index: u32) -> Point {\n std::hash::pedersen_commitment_with_separator(inputs, hash_index)\n}\n\npub fn compute_secret_hash(secret: Field) -> Field {\n poseidon2_hash_with_separator([secret], GENERATOR_INDEX__SECRET_HASH)\n}\n\npub fn compute_unencrypted_log_hash<let N: u32>(\n contract_address: AztecAddress,\n log: [u8; N],\n) -> Field {\n let mut hash_bytes = [0; N + 36];\n // Address is converted to 32 bytes in ts\n let address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n for i in 0..32 {\n hash_bytes[i] = address_bytes[i];\n }\n let len_bytes: [u8; 4] = (N as Field).to_be_bytes();\n for i in 0..4 {\n hash_bytes[32 + i] = len_bytes[i];\n }\n for i in 0..N {\n hash_bytes[36 + i] = log[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\npub fn compute_l1_to_l2_message_hash(\n sender: EthAddress,\n chain_id: Field,\n recipient: AztecAddress,\n version: Field,\n content: Field,\n secret_hash: Field,\n leaf_index: Field,\n) -> Field {\n let mut hash_bytes = [0 as u8; 224];\n let sender_bytes: [u8; 32] = sender.to_field().to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n let recipient_bytes: [u8; 32] = recipient.to_field().to_be_bytes();\n let version_bytes: [u8; 32] = version.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let secret_hash_bytes: [u8; 32] = secret_hash.to_be_bytes();\n let leaf_index_bytes: [u8; 32] = leaf_index.to_be_bytes();\n\n for i in 0..32 {\n hash_bytes[i] = sender_bytes[i];\n hash_bytes[i + 32] = chain_id_bytes[i];\n hash_bytes[i + 64] = recipient_bytes[i];\n hash_bytes[i + 96] = version_bytes[i];\n hash_bytes[i + 128] = content_bytes[i];\n hash_bytes[i + 160] = secret_hash_bytes[i];\n hash_bytes[i + 192] = leaf_index_bytes[i];\n }\n\n sha256_to_field(hash_bytes)\n}\n\n// The nullifier of a l1 to l2 message is the hash of the message salted with the secret\npub fn compute_l1_to_l2_message_nullifier(message_hash: Field, secret: Field) -> Field {\n poseidon2_hash_with_separator([message_hash, secret], GENERATOR_INDEX__MESSAGE_NULLIFIER)\n}\n\npub struct ArgsHasher {\n pub fields: [Field],\n}\n\nimpl Hash for ArgsHasher {\n fn hash(self) -> Field {\n hash_args(self.fields)\n }\n}\n\nimpl ArgsHasher {\n pub fn new() -> Self {\n Self { fields: [] }\n }\n\n pub fn add(&mut self, field: Field) {\n self.fields = self.fields.push_back(field);\n }\n\n pub fn add_multiple<let N: u32>(&mut self, fields: [Field; N]) {\n for i in 0..N {\n self.fields = self.fields.push_back(fields[i]);\n }\n }\n}\n\npub fn hash_args_array<let N: u32>(args: [Field; N]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\npub fn hash_args(args: [Field]) -> Field {\n if args.len() == 0 {\n 0\n } else {\n poseidon2_hash_with_separator_slice(args, GENERATOR_INDEX__FUNCTION_ARGS)\n }\n}\n\n#[test]\nunconstrained fn compute_var_args_hash() {\n let mut input = ArgsHasher::new();\n for i in 0..100 {\n input.add(i as Field);\n }\n let hash = input.hash();\n dep::std::println(hash);\n assert(hash == 0x19b0d74feb06ebde19edd85a28986c97063e84b3b351a8b666c7cac963ce655f);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_array() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = [\n 0x20660de09f35f876e3e69d227b2a35166ad05f09d82d06366ec9b6f65a51fec2,\n 0x1b52bfe3b8689761916f76dc3d38aa8810860db325cd39ca611eed980091f01c,\n 0x2e559c4045c378a56ad13b9edb1e8de4e7ad3b3aa35cc7ba9ec77f7a68fa43a4,\n 0x25d0f689c4a4178a29d59306f2675824d19be6d25e44fa03b03f49c263053dd2,\n 0x2d513a722d6f352dc0961f156afdc5e31495b9f0e35cb069261a8e55e2df67fd,\n ];\n let serialized_log = arr_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0095b2d17ab72f4b27a341f7ac63e49ec73935ae8c9181a0ac02023eb12f3284);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_addr() {\n let contract_address = AztecAddress::from_field(\n 0x233a3e0df23b2b15b324194cb4a151f26c0b7333250781d34cc269d85dc334c6,\n );\n let log = AztecAddress::from_field(\n 0x26aa302d4715fd8a687453cb26d616b0768027bd54bcae56b09d908ecd9f8303,\n );\n let serialized_log: [u8; 32] = log.to_field().to_be_bytes();\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0083ab647dfb26e7ddee90a0f4209d049d4660cab42000c544b986aaa84c55a3);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"dummy\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x00629e88ebd6374f44aa6cfe07e251ecf07213ebc7267e8f6b578ae57ffd6c20);\n}\n\n#[test]\nunconstrained fn compute_unenc_log_hash_longer_str() {\n let contract_address = AztecAddress::from_field(\n 0x1b401e1146c5c507962287065c81f0ef7590adae3802c533d7549d6bf0a41bd8,\n );\n let log = \"Hello this is a string\";\n let serialized_log = str_to_be_bytes_arr(log);\n let hash = compute_unencrypted_log_hash(contract_address, serialized_log);\n assert(hash == 0x0098637962f7d34fa202b7ffad8a07a238c5d1fd897b82a108f7f467fa73b841);\n}\n"
2403
2407
  },
2404
- "178": {
2405
- "path": "/usr/src/noir-projects/aztec-nr/aztec/src/context/private_context.nr",
2406
- "source": "use crate::{\n context::{inputs::PrivateContextInputs, packed_returns::PackedReturns},\n hash::{ArgsHasher, hash_args_array},\n keys::constants::{NULLIFIER_INDEX, NUM_KEY_TYPES, OUTGOING_INDEX, sk_generators},\n messaging::process_l1_to_l2_message,\n oracle::{\n arguments,\n call_private_function::call_private_function_internal,\n enqueue_public_function_call::{\n enqueue_public_function_call_internal, notify_set_min_revertible_side_effect_counter,\n set_public_teardown_function_call_internal,\n },\n header::get_header_at,\n key_validation_request::get_key_validation_request,\n logs::{emit_encrypted_event_log, emit_encrypted_note_log},\n returns::pack_returns,\n },\n};\nuse dep::protocol_types::{\n abis::{\n call_context::CallContext,\n function_selector::FunctionSelector,\n log_hash::{EncryptedLogHash, LogHash, NoteLogHash},\n max_block_number::MaxBlockNumber,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_call_request::PrivateCallRequest,\n private_circuit_public_inputs::PrivateCircuitPublicInputs,\n public_call_request::PublicCallRequest,\n read_request::ReadRequest,\n side_effect::Counted,\n validation_requests::{KeyValidationRequest, KeyValidationRequestAndGenerator},\n },\n address::{AztecAddress, EthAddress},\n constants::{\n MAX_CONTRACT_CLASS_LOGS_PER_CALL, MAX_ENCRYPTED_LOGS_PER_CALL, MAX_ENQUEUED_CALLS_PER_CALL,\n MAX_KEY_VALIDATION_REQUESTS_PER_CALL, MAX_L2_TO_L1_MSGS_PER_CALL,\n MAX_NOTE_ENCRYPTED_LOGS_PER_CALL, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL,\n MAX_NOTE_HASHES_PER_CALL, MAX_NULLIFIER_READ_REQUESTS_PER_CALL, MAX_NULLIFIERS_PER_CALL,\n MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, PUBLIC_DISPATCH_SELECTOR,\n },\n header::Header,\n messaging::l2_to_l1_message::L2ToL1Message,\n traits::Empty,\n};\n\n// When finished, one can call .finish() to convert back to the abi\npub struct PrivateContext {\n // docs:start:private-context\n pub inputs: PrivateContextInputs,\n pub side_effect_counter: u32,\n\n pub min_revertible_side_effect_counter: u32,\n pub is_fee_payer: bool,\n\n pub args_hash: Field,\n pub return_hash: Field,\n\n pub max_block_number: MaxBlockNumber,\n\n pub note_hash_read_requests: BoundedVec<ReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL>,\n pub nullifier_read_requests: BoundedVec<ReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL>,\n key_validation_requests_and_generators: BoundedVec<KeyValidationRequestAndGenerator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL>,\n\n pub note_hashes: BoundedVec<NoteHash, MAX_NOTE_HASHES_PER_CALL>,\n pub nullifiers: BoundedVec<Nullifier, MAX_NULLIFIERS_PER_CALL>,\n\n pub private_call_requests: BoundedVec<PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL>,\n pub public_call_requests: BoundedVec<Counted<PublicCallRequest>, MAX_ENQUEUED_CALLS_PER_CALL>,\n pub public_teardown_call_request: PublicCallRequest,\n pub l2_to_l1_msgs: BoundedVec<L2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL>,\n // docs:end:private-context\n\n // Header of a block whose state is used during private execution (not the block the transaction is included in).\n pub historical_header: Header,\n\n pub note_encrypted_logs_hashes: BoundedVec<NoteLogHash, MAX_NOTE_ENCRYPTED_LOGS_PER_CALL>,\n pub encrypted_logs_hashes: BoundedVec<EncryptedLogHash, MAX_ENCRYPTED_LOGS_PER_CALL>,\n pub contract_class_logs_hashes: BoundedVec<LogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL>,\n\n // Contains the last key validation request for each key type. This is used to cache the last request and avoid\n // fetching the same request multiple times.\n // The index of the array corresponds to the key type (0 nullifier, 1 incoming, 2 outgoing, 3 tagging).\n pub last_key_validation_requests: [Option<KeyValidationRequest>; NUM_KEY_TYPES],\n}\n\nimpl PrivateContext {\n pub fn new(inputs: PrivateContextInputs, args_hash: Field) -> PrivateContext {\n PrivateContext {\n inputs,\n side_effect_counter: inputs.start_side_effect_counter + 1,\n min_revertible_side_effect_counter: 0,\n is_fee_payer: false,\n args_hash,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n historical_header: inputs.historical_header,\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n\n pub fn msg_sender(self) -> AztecAddress {\n self.inputs.call_context.msg_sender\n }\n\n pub fn this_address(self) -> AztecAddress {\n self.inputs.call_context.contract_address\n }\n\n pub fn chain_id(self) -> Field {\n self.inputs.tx_context.chain_id\n }\n\n pub fn version(self) -> Field {\n self.inputs.tx_context.version\n }\n\n pub fn selector(self) -> FunctionSelector {\n self.inputs.call_context.function_selector\n }\n\n pub fn get_args_hash(self) -> Field {\n self.args_hash\n }\n\n pub fn push_note_hash(&mut self, note_hash: Field) {\n self.note_hashes.push(NoteHash { value: note_hash, counter: self.next_counter() });\n }\n\n pub fn push_nullifier(&mut self, nullifier: Field) {\n self.nullifiers.push(\n Nullifier { value: nullifier, note_hash: 0, counter: self.next_counter() },\n );\n }\n\n pub fn push_nullifier_for_note_hash(&mut self, nullifier: Field, nullified_note_hash: Field) {\n self.nullifiers.push(\n Nullifier {\n value: nullifier,\n note_hash: nullified_note_hash,\n counter: self.next_counter(),\n },\n );\n }\n\n // Returns the header of a block whose state is used during private execution (not the block the transaction is\n // included in).\n pub fn get_header(self) -> Header {\n self.historical_header\n }\n\n // Returns the header of an arbitrary block whose block number is less than or equal to the block number\n // of historical header.\n pub fn get_header_at(self, block_number: u32) -> Header {\n get_header_at(block_number, self)\n }\n\n pub fn set_return_hash(&mut self, returns_hasher: ArgsHasher) {\n pack_returns(returns_hasher.fields);\n self.return_hash = returns_hasher.hash();\n }\n\n pub fn finish(self) -> PrivateCircuitPublicInputs {\n PrivateCircuitPublicInputs {\n call_context: self.inputs.call_context,\n args_hash: self.args_hash,\n returns_hash: self.return_hash,\n min_revertible_side_effect_counter: self.min_revertible_side_effect_counter,\n is_fee_payer: self.is_fee_payer,\n max_block_number: self.max_block_number,\n note_hash_read_requests: self.note_hash_read_requests.storage(),\n nullifier_read_requests: self.nullifier_read_requests.storage(),\n key_validation_requests_and_generators: self\n .key_validation_requests_and_generators\n .storage(),\n note_hashes: self.note_hashes.storage(),\n nullifiers: self.nullifiers.storage(),\n private_call_requests: self.private_call_requests.storage(),\n public_call_requests: self.public_call_requests.storage(),\n public_teardown_call_request: self.public_teardown_call_request,\n l2_to_l1_msgs: self.l2_to_l1_msgs.storage(),\n start_side_effect_counter: self.inputs.start_side_effect_counter,\n end_side_effect_counter: self.side_effect_counter,\n note_encrypted_logs_hashes: self.note_encrypted_logs_hashes.storage(),\n encrypted_logs_hashes: self.encrypted_logs_hashes.storage(),\n contract_class_logs_hashes: self.contract_class_logs_hashes.storage(),\n historical_header: self.historical_header,\n tx_context: self.inputs.tx_context,\n }\n }\n\n pub fn set_as_fee_payer(&mut self) {\n dep::protocol_types::debug_log::debug_log_format(\n \"Setting {0} as fee payer\",\n [self.this_address().to_field()],\n );\n self.is_fee_payer = true;\n }\n\n pub fn end_setup(&mut self) {\n // dep::protocol_types::debug_log::debug_log_format(\n // \"Ending setup at counter {0}\",\n // [self.side_effect_counter as Field]\n // );\n self.min_revertible_side_effect_counter = self.side_effect_counter;\n notify_set_min_revertible_side_effect_counter(self.min_revertible_side_effect_counter);\n }\n\n // docs:start:max-block-number\n pub fn set_tx_max_block_number(&mut self, max_block_number: u32) {\n // docs:end:max-block-number\n self.max_block_number =\n MaxBlockNumber::min_with_u32(self.max_block_number, max_block_number);\n }\n\n pub fn push_note_hash_read_request(&mut self, note_hash: Field) {\n let side_effect = ReadRequest { value: note_hash, counter: self.next_counter() };\n self.note_hash_read_requests.push(side_effect);\n }\n\n pub fn push_nullifier_read_request(&mut self, nullifier: Field) {\n let request = ReadRequest { value: nullifier, counter: self.next_counter() };\n self.nullifier_read_requests.push(request);\n }\n\n pub fn request_nsk_app(&mut self, npk_m_hash: Field) -> Field {\n self.request_sk_app(npk_m_hash, NULLIFIER_INDEX)\n }\n\n pub fn request_ovsk_app(&mut self, ovpk_m_hash: Field) -> Field {\n self.request_sk_app(ovpk_m_hash, OUTGOING_INDEX)\n }\n\n fn request_sk_app(&mut self, pk_m_hash: Field, key_index: Field) -> Field {\n let cached_request =\n self.last_key_validation_requests[key_index].unwrap_or(KeyValidationRequest::empty());\n\n if cached_request.pk_m.hash() == pk_m_hash {\n // We get a match so the cached request is the latest one\n cached_request.sk_app\n } else {\n // We didn't get a match meaning the cached result is stale\n // Typically we'd validate keys by showing that they are the preimage of `pk_m_hash`, but that'd require\n // the oracle returning the master secret keys, which could cause malicious contracts to leak it or learn\n // about secrets from other contracts. We therefore silo secret keys, and rely on the private kernel to\n // validate that we siloed secret key corresponds to correct siloing of the master secret key that hashes\n // to `pk_m_hash`.\n let request = unsafe { get_key_validation_request(pk_m_hash, key_index) };\n assert(request.pk_m.hash() == pk_m_hash);\n\n self.key_validation_requests_and_generators.push(\n KeyValidationRequestAndGenerator {\n request,\n sk_app_generator: sk_generators[key_index],\n },\n );\n self.last_key_validation_requests[key_index] = Option::some(request);\n request.sk_app\n }\n }\n\n // docs:start:context_message_portal\n pub fn message_portal(&mut self, recipient: EthAddress, content: Field) {\n // docs:end:context_message_portal\n let message = L2ToL1Message { recipient, content, counter: self.next_counter() };\n self.l2_to_l1_msgs.push(message);\n }\n\n // docs:start:context_consume_l1_to_l2_message\n // docs:start:consume_l1_to_l2_message\n pub fn consume_l1_to_l2_message(\n &mut self,\n content: Field,\n secret: Field,\n sender: EthAddress,\n leaf_index: Field,\n ) {\n // docs:end:context_consume_l1_to_l2_message\n let nullifier = process_l1_to_l2_message(\n self.historical_header.state.l1_to_l2_message_tree.root,\n self.this_address(),\n sender,\n self.chain_id(),\n self.version(),\n content,\n secret,\n leaf_index,\n );\n\n // Push nullifier (and the \"commitment\" corresponding to this can be \"empty\")\n self.push_nullifier(nullifier)\n }\n // docs:end:consume_l1_to_l2_message\n\n // NB: A randomness value of 0 signals that the kernels should not mask the contract address\n // used in siloing later on e.g. 'handshaking' contract w/ known address.\n pub fn emit_raw_event_log_with_masked_address<let M: u32>(\n &mut self,\n randomness: Field,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let contract_address = self.this_address();\n let len = log.len() as Field + 4;\n let side_effect = EncryptedLogHash { value: log_hash, counter, length: len, randomness };\n self.encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_event_log(contract_address, randomness, log, counter);\n }\n\n pub fn emit_raw_note_log<let M: u32>(\n &mut self,\n note_hash_counter: u32,\n log: [u8; M],\n log_hash: Field,\n ) {\n let counter = self.next_counter();\n let len = log.len() as Field + 4;\n let side_effect = NoteLogHash { value: log_hash, counter, length: len, note_hash_counter };\n self.note_encrypted_logs_hashes.push(side_effect);\n\n emit_encrypted_note_log(note_hash_counter, log, counter);\n }\n\n pub fn call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_private_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) -> PackedReturns {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_private_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_private_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) -> PackedReturns {\n self.call_private_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_private_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) -> PackedReturns {\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n let start_side_effect_counter = self.side_effect_counter;\n\n // The oracle simulates the private call and returns the value of the side effects counter after execution of\n // the call (which means that end_side_effect_counter - start_side_effect_counter is the number of side effects\n // that took place), along with the hash of the return values. We validate these by requesting a private kernel\n // iteration in which the return values are constrained to hash to `returns_hash` and the side effects counter\n // to increment from start to end.\n let (end_side_effect_counter, returns_hash) = unsafe {\n call_private_function_internal(\n contract_address,\n function_selector,\n args_hash,\n start_side_effect_counter,\n is_static_call,\n )\n };\n\n self.private_call_requests.push(\n PrivateCallRequest {\n call_context: CallContext {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n },\n args_hash,\n returns_hash,\n start_side_effect_counter,\n end_side_effect_counter,\n },\n );\n\n // TODO (fees) figure out why this crashes the prover and enable it\n // we need this in order to pay fees inside child call contexts\n // assert(\n // (item.public_inputs.min_revertible_side_effect_counter == 0 as u32)\n // | (item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter)\n // );\n // if item.public_inputs.min_revertible_side_effect_counter\n // > self.min_revertible_side_effect_counter {\n // self.min_revertible_side_effect_counter = item.public_inputs.min_revertible_side_effect_counter;\n // }\n self.side_effect_counter = end_side_effect_counter + 1;\n PackedReturns::new(returns_hash)\n }\n\n pub fn call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn static_call_public_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.call_public_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n true,\n )\n }\n\n pub fn call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, false)\n }\n\n pub fn static_call_public_function_no_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n ) {\n self.call_public_function_with_packed_args(contract_address, function_selector, 0, true)\n }\n\n pub fn call_public_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = enqueue_public_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n // Public calls are rerouted through the dispatch function.\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n let call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n\n self.public_call_requests.push(Counted::new(call_request, counter));\n }\n\n pub fn set_public_teardown_function<let ARGS_COUNT: u32>(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args: [Field; ARGS_COUNT],\n ) {\n let args_hash = hash_args_array(args);\n arguments::pack_arguments_array(args);\n self.set_public_teardown_function_with_packed_args(\n contract_address,\n function_selector,\n args_hash,\n false,\n )\n }\n\n pub fn set_public_teardown_function_with_packed_args(\n &mut self,\n contract_address: AztecAddress,\n function_selector: FunctionSelector,\n args_hash: Field,\n is_static_call: bool,\n ) {\n let counter = self.next_counter();\n\n let mut is_static_call = is_static_call | self.inputs.call_context.is_static_call;\n // TODO(https://github.com/AztecProtocol/aztec-packages/issues/8985): Fix this.\n // WARNING: This is insecure and should be temporary!\n // The oracle repacks the arguments and returns a new args_hash.\n // new_args = [selector, ...old_args], so as to make it suitable to call the public dispatch function.\n // We don't validate or compute it in the circuit because a) it's harder to do with slices, and\n // b) this is only temporary.\n let args_hash = set_public_teardown_function_call_internal(\n contract_address,\n function_selector,\n args_hash,\n counter,\n is_static_call,\n );\n\n let function_selector = comptime { FunctionSelector::from_field(PUBLIC_DISPATCH_SELECTOR) };\n\n self.public_teardown_call_request = PublicCallRequest {\n msg_sender: self.this_address(),\n contract_address,\n function_selector,\n is_static_call,\n args_hash,\n };\n }\n\n fn next_counter(&mut self) -> u32 {\n let counter = self.side_effect_counter;\n self.side_effect_counter += 1;\n counter\n }\n}\n\nimpl Empty for PrivateContext {\n fn empty() -> Self {\n PrivateContext {\n inputs: PrivateContextInputs::empty(),\n side_effect_counter: 0 as u32,\n min_revertible_side_effect_counter: 0 as u32,\n is_fee_payer: false,\n args_hash: 0,\n return_hash: 0,\n max_block_number: MaxBlockNumber::empty(),\n note_hash_read_requests: BoundedVec::new(),\n nullifier_read_requests: BoundedVec::new(),\n key_validation_requests_and_generators: BoundedVec::new(),\n note_hashes: BoundedVec::new(),\n nullifiers: BoundedVec::new(),\n private_call_requests: BoundedVec::new(),\n public_call_requests: BoundedVec::new(),\n public_teardown_call_request: PublicCallRequest::empty(),\n l2_to_l1_msgs: BoundedVec::new(),\n historical_header: Header::empty(),\n note_encrypted_logs_hashes: BoundedVec::new(),\n encrypted_logs_hashes: BoundedVec::new(),\n contract_class_logs_hashes: BoundedVec::new(),\n last_key_validation_requests: [Option::none(); NUM_KEY_TYPES],\n }\n }\n}\n"
2407
- },
2408
- "188": {
2408
+ "172": {
2409
2409
  "path": "/usr/src/noir-projects/aztec-nr/aztec/src/utils/to_bytes.nr",
2410
2410
  "source": "pub fn arr_to_be_bytes_arr<let L: u32>(fields: [Field; L]) -> [u8; L * 32] {\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n // Note that bytes.append() results in bound error\n let to_add: [u8; 32] = fields[i].to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n\n// each character of a string is converted into a byte\n// then an ACVM field via the oracle => we recreate here\npub fn str_to_be_bytes_arr<let L: u32>(string: str<L>) -> [u8; L * 32] {\n let chars_bytes: [u8; L] = string.as_bytes();\n let mut bytes = [0 as u8; L * 32];\n for i in 0..L {\n let to_add: [u8; 32] = (chars_bytes[i] as Field).to_be_bytes();\n for j in 0..32 {\n bytes[i * 32 + j] = to_add[j];\n }\n }\n bytes\n}\n"
2411
2411
  },
2412
- "232": {
2412
+ "199": {
2413
+ "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
2414
+ "source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
2415
+ },
2416
+ "207": {
2413
2417
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
2414
2418
  "source": "/// Utility function to console.log data in the acir simulator.\n/// Example:\n/// debug_log(\"blah blah this is a debug string\");\npub fn debug_log<let N: u32>(msg: str<N>) {\n debug_log_format(msg, []);\n}\n\n/// Utility function to console.log data in the acir simulator. This variant receives a format string in which the\n/// `${k}` tokens will be replaced with the k-eth value in the `args` array.\n/// Examples:\n/// debug_log_format(\"get_2(slot:{0}) =>\\n\\t0:{1}\\n\\t1:{2}\", [storage_slot, note0_hash, note1_hash]);\n/// debug_log_format(\"whole array: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format<let M: u32, let N: u32>(msg: str<M>, args: [Field; N]) {\n // This oracle call returns nothing: we only call it for its side effects. It is therefore always safe to call.\n unsafe { debug_log_oracle_wrapper(msg, args) };\n}\n\npub unconstrained fn debug_log_oracle_wrapper<let M: u32, let N: u32>(\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_oracle(msg, args.as_slice());\n}\n\n// WARNING: sometimes when using debug logs the ACVM errors with: `thrown: \"solver opcode resolution error: cannot solve opcode: expression has too many unknowns x155\"`\n#[oracle(debugLog)]\nunconstrained fn debug_log_oracle<let M: u32>(_msg: str<M>, args: [Field]) {}\n"
2415
2419
  },
2416
- "240": {
2417
- "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
2418
- "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n utils,\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n ec::{pow, sqrt},\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
2420
+ "209": {
2421
+ "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
2422
+ "source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
2419
2423
  },
2420
- "241": {
2424
+ "210": {
2421
2425
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/partial_address.nr",
2422
2426
  "source": "use crate::{\n address::{aztec_address::AztecAddress, salted_initialization_hash::SaltedInitializationHash},\n constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n contract_class_id::ContractClassId,\n hash::poseidon2_hash_with_separator,\n traits::{Deserialize, Serialize, ToField},\n};\n\nglobal PARTIAL_ADDRESS_LENGTH: u32 = 1;\n\n// Partial address\npub struct PartialAddress {\n pub inner: Field,\n}\n\nimpl ToField for PartialAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl Serialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn serialize(self: Self) -> [Field; PARTIAL_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<PARTIAL_ADDRESS_LENGTH> for PartialAddress {\n fn deserialize(fields: [Field; PARTIAL_ADDRESS_LENGTH]) -> Self {\n PartialAddress { inner: fields[0] }\n }\n}\n\nimpl PartialAddress {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(\n contract_class_id: ContractClassId,\n salt: Field,\n initialization_hash: Field,\n deployer: AztecAddress,\n ) -> Self {\n PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n SaltedInitializationHash::compute(salt, initialization_hash, deployer),\n )\n }\n\n pub fn compute_from_salted_initialization_hash(\n contract_class_id: ContractClassId,\n salted_initialization_hash: SaltedInitializationHash,\n ) -> Self {\n PartialAddress::from_field(poseidon2_hash_with_separator(\n [contract_class_id.to_field(), salted_initialization_hash.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn to_field(self) -> Field {\n self.inner\n }\n\n pub fn is_zero(self) -> bool {\n self.to_field() == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
2423
2427
  },
2424
- "242": {
2425
- "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/salted_initialization_hash.nr",
2426
- "source": "use crate::{\n address::aztec_address::AztecAddress, constants::GENERATOR_INDEX__PARTIAL_ADDRESS,\n hash::poseidon2_hash_with_separator, traits::ToField,\n};\n\n// Salted initialization hash. Used in the computation of a partial address.\npub struct SaltedInitializationHash {\n pub inner: Field,\n}\n\nimpl ToField for SaltedInitializationHash {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl SaltedInitializationHash {\n pub fn from_field(field: Field) -> Self {\n Self { inner: field }\n }\n\n pub fn compute(salt: Field, initialization_hash: Field, deployer: AztecAddress) -> Self {\n SaltedInitializationHash::from_field(poseidon2_hash_with_separator(\n [salt, initialization_hash, deployer.to_field()],\n GENERATOR_INDEX__PARTIAL_ADDRESS,\n ))\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n}\n"
2427
- },
2428
- "301": {
2429
- "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/public_keys.nr",
2430
- "source": "use crate::{\n address::public_keys_hash::PublicKeysHash,\n constants::{\n DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_X, DEFAULT_NPK_M_Y, DEFAULT_OVPK_M_X,\n DEFAULT_OVPK_M_Y, DEFAULT_TPK_M_X, DEFAULT_TPK_M_Y, GENERATOR_INDEX__PUBLIC_KEYS_HASH,\n },\n hash::poseidon2_hash_with_separator,\n point::POINT_LENGTH,\n traits::{Deserialize, Hash, Serialize},\n};\n\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\nuse std::default::Default;\n\npub global PUBLIC_KEYS_LENGTH: u32 = 12;\n\npub struct PublicKeys {\n pub npk_m: NpkM,\n pub ivpk_m: IvpkM,\n pub ovpk_m: OvpkM,\n pub tpk_m: TpkM,\n}\n\npub trait ToPoint {\n fn to_point(self) -> Point;\n}\n\npub struct NpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for NpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for NpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\n// Note: If we store npk_m_hash directly we can remove this trait implementation. See #8091\nimpl Hash for NpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\npub struct IvpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for IvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for IvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct OvpkM {\n pub inner: Point,\n}\n\nimpl Hash for OvpkM {\n fn hash(self) -> Field {\n self.inner.hash()\n }\n}\n\nimpl ToPoint for OvpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for OvpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\npub struct TpkM {\n pub inner: Point,\n}\n\nimpl ToPoint for TpkM {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\nimpl Serialize<POINT_LENGTH> for TpkM {\n fn serialize(self) -> [Field; POINT_LENGTH] {\n self.inner.serialize()\n }\n}\n\nimpl Default for PublicKeys {\n fn default() -> Self {\n PublicKeys {\n npk_m: NpkM {\n inner: Point { x: DEFAULT_NPK_M_X, y: DEFAULT_NPK_M_Y, is_infinite: false },\n },\n ivpk_m: IvpkM {\n inner: Point { x: DEFAULT_IVPK_M_X, y: DEFAULT_IVPK_M_Y, is_infinite: false },\n },\n ovpk_m: OvpkM {\n inner: Point { x: DEFAULT_OVPK_M_X, y: DEFAULT_OVPK_M_Y, is_infinite: false },\n },\n tpk_m: TpkM {\n inner: Point { x: DEFAULT_TPK_M_X, y: DEFAULT_TPK_M_Y, is_infinite: false },\n },\n }\n }\n}\n\nimpl Eq for PublicKeys {\n fn eq(self, other: PublicKeys) -> bool {\n (self.npk_m.inner == other.npk_m.inner)\n & (self.ivpk_m.inner == other.ivpk_m.inner)\n & (self.ovpk_m.inner == other.ovpk_m.inner)\n & (self.tpk_m.inner == other.tpk_m.inner)\n }\n}\n\nimpl PublicKeys {\n pub fn hash(self) -> PublicKeysHash {\n PublicKeysHash::from_field(poseidon2_hash_with_separator(\n self.serialize(),\n GENERATOR_INDEX__PUBLIC_KEYS_HASH as Field,\n ))\n }\n}\n\nimpl Serialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn serialize(self) -> [Field; PUBLIC_KEYS_LENGTH] {\n [\n self.npk_m.inner.x,\n self.npk_m.inner.y,\n self.npk_m.inner.is_infinite as Field,\n self.ivpk_m.inner.x,\n self.ivpk_m.inner.y,\n self.ivpk_m.inner.is_infinite as Field,\n self.ovpk_m.inner.x,\n self.ovpk_m.inner.y,\n self.ovpk_m.inner.is_infinite as Field,\n self.tpk_m.inner.x,\n self.tpk_m.inner.y,\n self.tpk_m.inner.is_infinite as Field,\n ]\n }\n}\n\nimpl Deserialize<PUBLIC_KEYS_LENGTH> for PublicKeys {\n fn deserialize(serialized: [Field; PUBLIC_KEYS_LENGTH]) -> PublicKeys {\n PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: serialized[0],\n y: serialized[1],\n is_infinite: serialized[2] as bool,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: serialized[3],\n y: serialized[4],\n is_infinite: serialized[5] as bool,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: serialized[6],\n y: serialized[7],\n is_infinite: serialized[8] as bool,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: serialized[9],\n y: serialized[10],\n is_infinite: serialized[11] as bool,\n },\n },\n }\n }\n}\n\npub struct AddressPoint {\n pub inner: Point,\n}\n\nimpl ToPoint for AddressPoint {\n fn to_point(self) -> Point {\n self.inner\n }\n}\n\n#[test]\nunconstrained fn compute_public_keys_hash() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let actual = keys.hash();\n let expected_public_keys_hash =\n 0x0fecd9a32db731fec1fded1b9ff957a1625c069245a3613a2538bd527068b0ad;\n\n assert(actual.to_field() == expected_public_keys_hash);\n}\n\n#[test]\nunconstrained fn compute_default_hash() {\n let keys = PublicKeys::default();\n\n let actual = keys.hash();\n let test_data_default_hash = 0x1d3bf1fb93ae0e9cda83b203dd91c3bfb492a9aecf30ec90e1057eced0f0e62d;\n\n assert(actual.to_field() == test_data_default_hash);\n}\n\n#[test]\nunconstrained fn test_public_keys_serialization() {\n let keys = PublicKeys {\n npk_m: NpkM { inner: Point { x: 1, y: 2, is_infinite: false } },\n ivpk_m: IvpkM { inner: Point { x: 3, y: 4, is_infinite: false } },\n ovpk_m: OvpkM { inner: Point { x: 5, y: 6, is_infinite: false } },\n tpk_m: TpkM { inner: Point { x: 7, y: 8, is_infinite: false } },\n };\n\n let serialized = keys.serialize();\n let deserialized = PublicKeys::deserialize(serialized);\n\n assert_eq(keys.npk_m.inner.x, deserialized.npk_m.inner.x);\n assert_eq(keys.npk_m.inner.y, deserialized.npk_m.inner.y);\n assert_eq(keys.ivpk_m.inner.x, deserialized.ivpk_m.inner.x);\n assert_eq(keys.ivpk_m.inner.y, deserialized.ivpk_m.inner.y);\n assert_eq(keys.ovpk_m.inner.x, deserialized.ovpk_m.inner.x);\n assert_eq(keys.ovpk_m.inner.y, deserialized.ovpk_m.inner.y);\n assert_eq(keys.tpk_m.inner.x, deserialized.tpk_m.inner.x);\n assert_eq(keys.tpk_m.inner.y, deserialized.tpk_m.inner.y);\n}\n"
2428
+ "211": {
2429
+ "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/address/aztec_address.nr",
2430
+ "source": "use crate::{\n abis::function_selector::FunctionSelector,\n address::{\n partial_address::PartialAddress, salted_initialization_hash::SaltedInitializationHash,\n },\n constants::{\n AZTEC_ADDRESS_LENGTH, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n MAX_FIELD_VALUE,\n },\n contract_class_id::ContractClassId,\n hash::{poseidon2_hash_with_separator, private_functions_root_from_siblings},\n merkle_tree::membership::MembershipWitness,\n public_keys::{IvpkM, NpkM, OvpkM, PublicKeys, TpkM},\n traits::{Deserialize, Empty, FromField, Serialize, ToField},\n utils,\n};\n\n// We do below because `use crate::point::Point;` does not work\nuse dep::std::embedded_curve_ops::EmbeddedCurvePoint as Point;\n\nuse crate::public_keys::AddressPoint;\nuse std::{\n ec::{pow, sqrt},\n embedded_curve_ops::{EmbeddedCurveScalar, fixed_base_scalar_mul as derive_public_key},\n};\n\n// Aztec address\npub struct AztecAddress {\n pub inner: Field,\n}\n\nimpl Eq for AztecAddress {\n fn eq(self, other: Self) -> bool {\n self.to_field() == other.to_field()\n }\n}\n\nimpl Empty for AztecAddress {\n fn empty() -> Self {\n Self { inner: 0 }\n }\n}\n\nimpl ToField for AztecAddress {\n fn to_field(self) -> Field {\n self.inner\n }\n}\n\nimpl FromField for AztecAddress {\n fn from_field(value: Field) -> AztecAddress {\n AztecAddress { inner: value }\n }\n}\n\nimpl Serialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn serialize(self: Self) -> [Field; AZTEC_ADDRESS_LENGTH] {\n [self.to_field()]\n }\n}\n\nimpl Deserialize<AZTEC_ADDRESS_LENGTH> for AztecAddress {\n fn deserialize(fields: [Field; AZTEC_ADDRESS_LENGTH]) -> Self {\n FromField::from_field(fields[0])\n }\n}\n\nimpl AztecAddress {\n pub fn zero() -> Self {\n Self { inner: 0 }\n }\n\n pub fn to_address_point(self) -> AddressPoint {\n // We compute the address point by taking our address, setting it to x, and then solving for y in the\n // equation which defines our bn curve:\n // y^2 = x^3 - 17; x = address\n let x = self.inner;\n let y_squared = pow(x, 3) - 17;\n\n // TODO (#8970): Handle cases where we cannot recover a point from an address\n let mut y = sqrt(y_squared);\n\n // If we get a negative y coordinate (any y where y > MAX_FIELD_VALUE / 2), we pin it to the\n // positive one (any value where y <= MAX_FIELD_VALUE / 2) by subtracting it from the Field modulus\n // note: The field modulus is MAX_FIELD_VALUE + 1\n if (!(y.lt(MAX_FIELD_VALUE / 2) | y.eq(MAX_FIELD_VALUE / 2))) {\n y = (MAX_FIELD_VALUE + 1) - y;\n }\n\n AddressPoint { inner: Point { x: self.inner, y, is_infinite: false } }\n }\n\n pub fn compute(public_keys: PublicKeys, partial_address: PartialAddress) -> AztecAddress {\n let public_keys_hash = public_keys.hash();\n\n let pre_address = poseidon2_hash_with_separator(\n [public_keys_hash.to_field(), partial_address.to_field()],\n GENERATOR_INDEX__CONTRACT_ADDRESS_V1,\n );\n\n let address_point = derive_public_key(EmbeddedCurveScalar::from_field(pre_address)).add(\n public_keys.ivpk_m.to_point(),\n );\n\n // Note that our address is only the x-coordinate of the full address_point. This is okay because when people want to encrypt something and send it to us\n // they can recover our full point using the x-coordinate (our address itself). To do this, they recompute the y-coordinate according to the equation y^2 = x^3 - 17.\n // When they do this, they may get a positive y-coordinate (a value that is less than or equal to MAX_FIELD_VALUE / 2) or\n // a negative y-coordinate (a value that is more than MAX_FIELD_VALUE), and we cannot dictate which one they get and hence the recovered point may sometimes be different than the one\n // our secrect can decrypt. Regardless though, they should and will always encrypt using point with the positive y-coordinate by convention.\n // This ensures that everyone encrypts to the same point given an arbitrary x-coordinate (address). This is allowed because even though our original point may not have a positive y-coordinate,\n // with our original secret, we will be able to derive the secret to the point with the flipped (and now positive) y-coordinate that everyone encrypts to.\n AztecAddress::from_field(address_point.x)\n }\n\n pub fn compute_from_private_function(\n function_selector: FunctionSelector,\n function_vk_hash: Field,\n function_leaf_membership_witness: MembershipWitness<FUNCTION_TREE_HEIGHT>,\n contract_class_artifact_hash: Field,\n contract_class_public_bytecode_commitment: Field,\n salted_initialization_hash: SaltedInitializationHash,\n public_keys: PublicKeys,\n ) -> Self {\n let private_functions_root = private_functions_root_from_siblings(\n function_selector,\n function_vk_hash,\n function_leaf_membership_witness.leaf_index,\n function_leaf_membership_witness.sibling_path,\n );\n\n let contract_class_id = ContractClassId::compute(\n contract_class_artifact_hash,\n private_functions_root,\n contract_class_public_bytecode_commitment,\n );\n\n // Compute contract address using the preimage which includes the class_id.\n let partial_address = PartialAddress::compute_from_salted_initialization_hash(\n contract_class_id,\n salted_initialization_hash,\n );\n\n AztecAddress::compute(public_keys, partial_address)\n }\n\n pub fn is_zero(self) -> bool {\n self.inner == 0\n }\n\n pub fn assert_is_zero(self) {\n assert(self.to_field() == 0);\n }\n\n pub fn conditional_assign(predicate: bool, lhs: Self, rhs: Self) -> Self {\n let result = utils::conditional_assign(predicate, rhs.to_field(), lhs.to_field());\n Self { inner: result }\n }\n}\n\n#[test]\nfn compute_address_from_partial_and_pub_keys() {\n let public_keys = PublicKeys {\n npk_m: NpkM {\n inner: Point {\n x: 0x22f7fcddfa3ce3e8f0cc8e82d7b94cdd740afa3e77f8e4a63ea78a239432dcab,\n y: 0x0471657de2b6216ade6c506d28fbc22ba8b8ed95c871ad9f3e3984e90d9723a7,\n is_infinite: false,\n },\n },\n ivpk_m: IvpkM {\n inner: Point {\n x: 0x111223493147f6785514b1c195bb37a2589f22a6596d30bb2bb145fdc9ca8f1e,\n y: 0x273bbffd678edce8fe30e0deafc4f66d58357c06fd4a820285294b9746c3be95,\n is_infinite: false,\n },\n },\n ovpk_m: OvpkM {\n inner: Point {\n x: 0x09115c96e962322ffed6522f57194627136b8d03ac7469109707f5e44190c484,\n y: 0x0c49773308a13d740a7f0d4f0e6163b02c5a408b6f965856b6a491002d073d5b,\n is_infinite: false,\n },\n },\n tpk_m: TpkM {\n inner: Point {\n x: 0x00d3d81beb009873eb7116327cf47c612d5758ef083d4fda78e9b63980b2a762,\n y: 0x2f567d22d2b02fe1f4ad42db9d58a36afd1983e7e2909d1cab61cafedad6193a,\n is_infinite: false,\n },\n },\n };\n\n let partial_address = PartialAddress::from_field(\n 0x0a7c585381b10f4666044266a02405bf6e01fa564c8517d4ad5823493abd31de,\n );\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // The following value was generated by `derivation.test.ts`.\n // --> Run the test with AZTEC_GENERATE_TEST_DATA=1 flag to update test data.\n let expected_computed_address_from_partial_and_pubkeys =\n 0x24e4646f58b9fbe7d38e317db8d5636c423fbbdfbe119fc190fe9c64747e0c62;\n assert(address.to_field() == expected_computed_address_from_partial_and_pubkeys);\n}\n\n#[test]\nfn from_field_to_field() {\n let address = AztecAddress { inner: 37 };\n assert_eq(FromField::from_field(address.to_field()), address);\n}\n\n#[test]\nfn serde() {\n let address = AztecAddress { inner: 37 };\n assert_eq(Deserialize::deserialize(address.serialize()), address);\n}\n"
2431
2431
  },
2432
- "302": {
2432
+ "236": {
2433
2433
  "path": "/usr/src/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
2434
2434
  "source": "use crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n log_hash::{LogHash, ScopedEncryptedLogHash, ScopedLogHash},\n note_hash::ScopedNoteHash,\n nullifier::ScopedNullifier,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE, GENERATOR_INDEX__OUTER_NULLIFIER,\n GENERATOR_INDEX__SILOED_NOTE_HASH, GENERATOR_INDEX__UNIQUE_NOTE_HASH,\n },\n merkle_tree::root::root_from_sibling_path,\n messaging::l2_to_l1_message::{L2ToL1Message, ScopedL2ToL1Message},\n traits::{is_empty, ToField},\n utils::field::field_from_bytes_32_trunc,\n};\nuse super::utils::field::field_from_bytes;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = std::hash::sha256(bytes_to_hash);\n let hash_in_a_field = field_from_bytes_32_trunc(sha256_hashed);\n\n hash_in_a_field\n}\n\npub fn private_functions_root_from_siblings(\n selector: FunctionSelector,\n vk_hash: Field,\n function_leaf_index: Field,\n function_leaf_sibling_path: [Field; FUNCTION_TREE_HEIGHT],\n) -> Field {\n let function_leaf_preimage = ContractClassFunctionLeafPreimage { selector, vk_hash };\n let function_leaf = function_leaf_preimage.hash();\n root_from_sibling_path(\n function_leaf,\n function_leaf_index,\n function_leaf_sibling_path,\n )\n}\n\nfn compute_note_hash_nonce(tx_hash: Field, note_index_in_tx: u32) -> Field {\n // Hashing tx hash with note index in tx is guaranteed to be unique\n poseidon2_hash_with_separator(\n [tx_hash, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(nonce: Field, note_hash: Field) -> Field {\n let inputs = [nonce, note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, unique_note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), unique_note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Siloing in the context of Aztec refers to the process of hashing a note hash with a contract address (this way\n/// the note hash is scoped to a specific contract). This is used to prevent intermingling of notes between contracts.\npub fn silo_note_hash(note_hash: ScopedNoteHash, tx_hash: Field, note_index_in_tx: u32) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n let nonce = compute_note_hash_nonce(tx_hash, note_index_in_tx);\n let unique_note_hash = compute_unique_note_hash(nonce, note_hash.value());\n compute_siloed_note_hash(note_hash.contract_address, unique_note_hash)\n }\n}\n\npub fn compute_siloed_nullifier(app: AztecAddress, nullifier: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), nullifier],\n GENERATOR_INDEX__OUTER_NULLIFIER,\n )\n}\n\npub fn silo_nullifier(nullifier: ScopedNullifier) -> Field {\n if nullifier.contract_address.is_zero() {\n nullifier.value() // Return value instead of 0 because the first nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, nullifier.value())\n }\n}\n\npub fn silo_encrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n // We assume contract address has already been masked\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n accumulate_sha256(\n [log_hash.contract_address.to_field(), log_hash.log_hash.value],\n )\n }\n}\n\npub fn mask_encrypted_log_hash(scoped_log: ScopedEncryptedLogHash) -> AztecAddress {\n if scoped_log.contract_address.is_zero() {\n AztecAddress::from_field(0)\n } else if (scoped_log.log_hash.randomness == 0) {\n scoped_log.contract_address\n } else {\n AztecAddress::from_field(poseidon2_hash_with_separator(\n [scoped_log.contract_address.to_field(), scoped_log.log_hash.randomness],\n 0,\n ))\n }\n}\n\nfn compute_siloed_unencrypted_log_hash(address: AztecAddress, log_hash: Field) -> Field {\n accumulate_sha256([address.to_field(), log_hash])\n}\n\npub fn silo_unencrypted_log_hash(log_hash: ScopedLogHash) -> Field {\n if log_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_unencrypted_log_hash(log_hash.contract_address, log_hash.value())\n }\n}\n\npub fn merkle_hash(left: Field, right: Field) -> Field {\n poseidon2_hash([left, right])\n}\n\npub fn compute_l2_to_l1_hash(\n contract_address: AztecAddress,\n recipient: EthAddress,\n content: Field,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n let mut bytes: BoundedVec<u8, 160> = BoundedVec::new();\n\n let inputs =\n [contract_address.to_field(), rollup_version_id, recipient.to_field(), chain_id, content];\n for i in 0..inputs.len() {\n // TODO are bytes be in fr.to_buffer() ?\n let item_bytes: [u8; 32] = inputs[i].to_be_bytes();\n for j in 0..32 {\n bytes.push(item_bytes[j]);\n }\n }\n\n sha256_to_field(bytes.storage())\n}\n\npub fn silo_l2_to_l1_message(\n msg: ScopedL2ToL1Message,\n rollup_version_id: Field,\n chain_id: Field,\n) -> Field {\n if msg.contract_address.is_zero() {\n 0\n } else {\n compute_l2_to_l1_hash(\n msg.contract_address,\n msg.message.recipient,\n msg.message.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n// Computes sha256 hash of 2 input hashes.\n//\n// NB: This method now takes in two 31 byte fields - it assumes that any input\n// is the result of a sha_to_field hash and => is truncated\n//\n// TODO(Jan and David): This is used for the encrypted_log hashes.\n// Can we check to see if we can just use hash_to_field or pedersen_compress here?\n//\npub fn accumulate_sha256(input: [Field; 2]) -> Field {\n // This is a note about the cpp code, since it takes an array of Fields\n // instead of a U128.\n // 4 Field elements when converted to bytes will usually\n // occupy 4 * 32 = 128 bytes.\n // However, this function is making the assumption that each Field\n // only occupies 128 bits.\n //\n // TODO(David): This does not seem to be getting guaranteed anywhere in the code?\n // Concatentate two fields into 32x2 = 64 bytes\n // accumulate_sha256 assumes that the inputs are pre-truncated 31 byte numbers\n let mut hash_input_flattened = [0; 64];\n for offset in 0..input.len() {\n let input_as_bytes: [u8; 32] = input[offset].to_be_bytes();\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n\n sha256_to_field(hash_input_flattened)\n}\n\n// Computes the final logs hash for a tx.\npub fn compute_tx_logs_hash<let N: u32>(logs: [LogHash; N]) -> Field {\n // Convert each field element into a byte array and append the bytes to `hash_input_flattened`\n let mut hash_input_flattened = [0; N * 32];\n for offset in 0..N {\n // TODO: This is not checking that the decomposition is smaller than P\n let input_as_bytes: [u8; 32] = logs[offset].value.to_be_radix(256);\n for byte_index in 0..32 {\n hash_input_flattened[offset * 32 + byte_index] = input_as_bytes[byte_index];\n }\n }\n // Ideally we would push to a slice then hash, but there is no sha_slice\n // Hardcode to 256 bytes for now\n let mut hash = sha256_to_field(hash_input_flattened);\n // Not having a 0 value hash for empty logs causes issues with empty txs\n // used for padding. Returning early is currently unsupported.\n // We always provide sorted logs here, so 0 being empty means all are empty.\n if is_empty(logs[0]) {\n hash = 0;\n }\n hash\n}\n\npub fn verification_key_hash<let N: u32>(key: [Field; N]) -> Field {\n crate::hash::poseidon2_hash(key)\n}\n\n#[inline_always]\npub fn pedersen_hash<let N: u32>(inputs: [Field; N], hash_index: u32) -> Field {\n std::hash::pedersen_hash_with_separator(inputs, hash_index)\n}\n\npub fn poseidon2_hash<let N: u32>(inputs: [Field; N]) -> Field {\n std::hash::poseidon2::Poseidon2::hash(inputs, N)\n}\n\n#[no_predicates]\npub fn poseidon2_hash_with_separator<let N: u32, T>(inputs: [Field; N], separator: T) -> Field\nwhere\n T: ToField,\n{\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of N + 1\n let in_len = N + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\npub fn poseidon2_hash_with_separator_slice<T>(inputs: [Field], separator: T) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs[i]);\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n // We manually hash the inputs here, since we cannot express with the type system a constant size inputs array of Math.ceil(N/31)\n let mut in_len = N / 31;\n let mut has_padding = false;\n if N % 31 != 0 {\n in_len += 1;\n has_padding = true;\n }\n\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = std::hash::poseidon2::Poseidon2::new(iv);\n\n let mut current_field = [0; 31];\n for i in 0..inputs.len() {\n let index = i % 31;\n current_field[index] = inputs[i];\n if index == 30 {\n sponge.absorb(field_from_bytes(current_field, false));\n current_field = [0; 31];\n }\n }\n if has_padding {\n sponge.absorb(field_from_bytes(current_field, false));\n }\n\n sponge.squeeze()\n}\n\n#[test]\nfn smoke_sha256_to_field() {\n let full_buffer = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,\n 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,\n 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,\n 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,\n 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,\n 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,\n 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,\n ];\n let result = sha256_to_field(full_buffer);\n\n assert(result == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184c7);\n\n // to show correctness of the current ver (truncate one byte) vs old ver (mod full bytes):\n let result_bytes = std::hash::sha256(full_buffer);\n let truncated_field = crate::utils::field::field_from_bytes_32_trunc(result_bytes);\n assert(truncated_field == result);\n let mod_res = result + (result_bytes[31] as Field);\n assert(mod_res == 0x448ebbc9e1a31220a2f3830c18eef61b9bd070e5084b7fa2a359fe729184e0);\n}\n\n#[test]\nfn compute_l2_l1_hash() {\n // All zeroes\n let hash_result =\n compute_l2_to_l1_hash(AztecAddress::from_field(0), EthAddress::zero(), 0, 0, 0);\n assert(hash_result == 0xb393978842a0fa3d3e1470196f098f473f9678e72463cb65ec4ab5581856c2);\n\n // Non-zero case\n let hash_result = compute_l2_to_l1_hash(\n AztecAddress::from_field(1),\n EthAddress::from_field(3),\n 5,\n 2,\n 4,\n );\n assert(hash_result == 0x3f88c1044a05e5340ed20466276500f6d45ca5603913b9091e957161734e16);\n}\n\n#[test]\nfn silo_l2_to_l1_message_matches_typescript() {\n let version = 4;\n let chainId = 5;\n\n let hash = silo_l2_to_l1_message(\n ScopedL2ToL1Message {\n message: L2ToL1Message { recipient: EthAddress::from_field(1), content: 2, counter: 0 },\n contract_address: AztecAddress::from_field(3),\n },\n version,\n chainId,\n );\n\n // The following value was generated by `l2_to_l1_message.test.ts`\n let hash_from_typescript = 0x00c6155d69febb9d5039b374dd4f77bf57b7c881709aa524a18acaa0bd57476a;\n\n assert_eq(hash, hash_from_typescript);\n}\n"
2435
2435
  },
2436
- "377": {
2436
+ "376": {
2437
2437
  "path": "/usr/src/noir-projects/noir-contracts/contracts/contract_instance_deployer_contract/src/main.nr",
2438
2438
  "source": "use dep::aztec::macros::aztec;\n\n#[aztec]\ncontract ContractInstanceDeployer {\n use dep::aztec::{\n macros::{events::event, functions::private},\n utils::to_bytes::arr_to_be_bytes_arr,\n };\n use dep::aztec::protocol_types::{\n address::{AztecAddress, PartialAddress, PublicKeysHash},\n constants::DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id::ContractClassId,\n hash::sha256_to_field,\n public_keys::PublicKeys,\n traits::Serialize,\n };\n use std::meta::derive;\n\n #[event]\n #[derive(Serialize)]\n struct ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE: Field,\n address: AztecAddress,\n version: u8,\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n deployer: AztecAddress,\n }\n\n // We need to impl this separately because ts deserializes a point as two fields only.\n // We had issues that:\n // Notice how the 'is_infinite' field is deserialized as the next point.\n // {\n // masterNullifierPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000012>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000034>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterIncomingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000056>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterOutgoingViewingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000078>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000000000>,\n // isInfinite: false,\n // kind: 'point'\n // },\n // masterTaggingPublicKey: Point {\n // x: Fr<0x0000000000000000000000000000000000000000000000000000000000000910>,\n // y: Fr<0x0000000000000000000000000000000000000000000000000000000000001112>,\n // isInfinite: false,\n // kind: 'point'\n // }\n impl Serialize<15> for ContractInstanceDeployed {\n fn serialize(self) -> [Field; 15] {\n [\n self.DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n self.address.to_field(),\n self.version.to_field(),\n self.salt,\n self.contract_class_id.to_field(),\n self.initialization_hash,\n self.public_keys.npk_m.serialize()[0],\n self.public_keys.npk_m.serialize()[1],\n self.public_keys.ivpk_m.serialize()[0],\n self.public_keys.ivpk_m.serialize()[1],\n self.public_keys.ovpk_m.serialize()[0],\n self.public_keys.ovpk_m.serialize()[1],\n self.public_keys.tpk_m.serialize()[0],\n self.public_keys.tpk_m.serialize()[1],\n self.deployer.to_field(),\n ]\n }\n }\n\n #[private]\n fn deploy(\n salt: Field,\n contract_class_id: ContractClassId,\n initialization_hash: Field,\n public_keys: PublicKeys,\n universal_deploy: bool,\n ) {\n // TODO(@spalladino): assert nullifier_exists silo(contract_class_id, ContractClassRegisterer)\n let deployer = if universal_deploy {\n AztecAddress::zero()\n } else {\n context.msg_sender()\n };\n\n let partial_address =\n PartialAddress::compute(contract_class_id, salt, initialization_hash, deployer);\n\n let address = AztecAddress::compute(public_keys, partial_address);\n\n // Emit the address as a nullifier to be able to prove that this instance has been (not) deployed\n context.push_nullifier(address.to_field());\n\n // Broadcast the event\n let event = ContractInstanceDeployed {\n DEPLOYER_CONTRACT_INSTANCE_DEPLOYED_MAGIC_VALUE,\n contract_class_id,\n address,\n public_keys,\n initialization_hash,\n salt,\n deployer,\n version: 1,\n };\n\n let payload = event.serialize();\n dep::aztec::oracle::debug_log::debug_log_format(\"ContractInstanceDeployed: {}\", payload);\n\n // @todo This is very inefficient, we are doing a lot of back and forth conversions.\n let serialized_log = arr_to_be_bytes_arr(payload);\n let log_hash = sha256_to_field(serialized_log);\n\n // Note: we are cheating a bit here because this is actually not encrypted\n // but needs to be emitted from private, where we have removed unencrypted_logs,\n // and has 15 fields (the max enc log len is 8).\n // TODO(Miranda): split into 2 logs\n context.emit_raw_event_log_with_masked_address(0, serialized_log, log_hash);\n }\n}\n"
2439
2439
  }