@aztec/protocol-contracts 3.0.0-nightly.20251212 → 3.0.0-nightly.20251213

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.
@@ -63,7 +63,7 @@
63
63
  }
64
64
  },
65
65
  "bytecode": "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",
66
- "debug_symbols": "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"
66
+ "debug_symbols": "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"
67
67
  },
68
68
  {
69
69
  "name": "balance_of_public",
@@ -115,7 +115,7 @@
115
115
  }
116
116
  },
117
117
  "bytecode": "JwACBAEoAAABBIBGJwAABEYnAgIEAScCAwQAHwoAAgADAEQtCEQBJQAAAEUlAAAASy0CAUUnAgIERScCAwQBOw4AAwACJwBDBAMmJQAAAm0eAgADAB4CAAQAHgIABQknAgYBASQCAAUAAABxJQAAApMnAgUAACsCAAcAAAAAAAAAAAIAAAAAAAAAAC0IAQgnAgkEBQAIAQkBJwMIBAEAIggCCS0KCQotDgUKACIKAgotDgUKACIKAgotDgUKACIKAgotDgcKLQgBBwAAAQIBLQgBCQAAAQIBLQgBCgAAAQIBLQgBCwAAAQIBJwIMAAEtCAENJwIOBAQACAEOAScDDQQBACINAg4tCg4PLQ4MDwAiDwIPLQ4BDwAiDwIPLQ4FDy0ODQctDggJJwIBBAItDgEKJwIBAQAtDgELJwIIBAAnAgwEAS0KCAIjAAABTgwiAkMDJAIAAwAAAecjAAABYC0LCQItCwIDACIDAgMtDgMCLQgBAycCBAQFAAgBBAEnAwMEAQAiAgIEJwIIBAQAIgMCDT8PAAQADS0LBwItCwoELQ4CBy0OAwktDgQKLQ4GCwAqAwwELQsEAgoqAgUDCioDAQQkAgAEAAAB0SUAAAKlLwoAAgABHAoBAwYcCgMCABwKAgEGJi0LCgMMKgIDBCQCAAQAAAH9IwAAAl8tCwkEACIEAg0AKg0CDi0LDggtCwcNACINAg8AKg8CEC0LEA4AKggODy0LCwgtAgQDJwAEBAUlAAACty0IBQ4AIg4CEAAqEAIRLQ4PES0ODQctDg4JLQ4DCi0OCAsjAAACXwAqAgwDLQoDAiMAAAFOKAAABAR4RgwAAAQDJAAAAwAAApIqAQABBdrF9da0SjJtPAQCASYqAQABBdwbbuv7trxDPAQCASYqAQABBbq7IdeCMxhkPAQCASYtAQMGCgAGAgckAAAHAAACzSMAAALWLQADBSMAAAMVLQABBQAAAQQBAAADBAktAAMKLQAFCwoACgkMJAAADAAAAxAtAQoILQQICwAACgIKAAALAgsjAAAC7CcBBQQBJg==",
118
- "debug_symbols": "tZdRbtswDIbv4uc8SKRIib3KUBRp6w4BgrTIkgFDkbuPtEXbyWBhy7YX+xNt/SYpSrI+u9f++fz1aXd4e//WPXz57J6Pu/1+9/Vp//6yPe3eD2r97IJdil5x0xXqHvKmE23FoHdtxrjpYggOpUJEhWJQKqBUSP4o+SNyC7mF3cK5Qo4OXMF8GoEc/BOSHExQPYYADrlCjA5cAYIDOUgFVEEIBlLBohihVCC3kFvYLRbFABbFCFzBohiBHOwTmkMQdMgjoEUxAlewKAYYPEwKZO+QAVfg4EAO9gmNCzM6lArFLcUt4haplhTQwXRYwYZ7BHNVKyVBdCAHqYD2cjEoFZL6jMEgVyC3mPMjqA6q88lyiPZ1y+EAxS0lj0lIYhZVJvNwgMFDMigVwC2QK6D1EgOukNyS9OtJ3SAKDqn2IhdkF2S3ZHDwTxS3lDo6JMHBBaV25zD0ulw2nc/Ip9Ox721CLqaoTtyP7bE/nLqHw3m/33Tft/vz8NK3j+1huJ+2R32qXveHV72r4Ntu3xtdNnPvsN4VsEjtDTrqk0CMfCUR1yV0vnKpGso5TyI5XmnAugYCEVUNZe24otEKpUR3AwTiaiipIZEihSkdMc8JzelKg/5BOvj/pgO1m0to5a2mozTSIYhTOgQTr7khDTcQYfJDF7P0l6FwCKuhtCSQYfKizIEQXJd5o0YJontBwIv6ErzWwEZxEHs+A0wKyDeTrVGiOU/VlUukWQPLtQa18um5SHFOBSS5VmgUKETxXOjuKusauZFPyVWCF3H8kRcwL164yOcvGtIaEfASj5TynRosk0aR+2LJcSqNjGFVAxoVGnNG9yPLej6gUaE5eW3kxHcpSPKlS6jcpRADuBMx8HptQCOf+u/gbqRCsJitv59OCdOwCjTKq7VoRKZp0ciwumhAq7yYp2HlsiiNQHctf4vN4Gb5w9iabDBP+WVp3HiBrW0+6C7ifgQhWtsMEFsi+ms+iUBZ3WAxtZZAnj0h5nWRdjiwCGf5u3Ajwq3/BeGpyiLOC3pJvz/lgi+lAndO2qk+JNPfTvtbhUdtbl92x6vz58Wkjrvt876vzbfz4WXx9PTjw5/4+fXj+P7Sv56PvSnNh1i9fIn67x5JHu2sak09fkREa0Zr6ilCD6qPF3PmJw=="
118
+ "debug_symbols": "tZfdbts6DMffxde5kEiREvsqQ1GkrTsECNIiSw5wUOTdD2mL/uiBhS3bbuyfaOtvkqIk67N77Z+v358Op7f3H93Dt8/u+Xw4Hg/fn47vL/vL4f2k1s8u2KXoFXddoe4h7zrRVgx612aMuy6G4FAqRFQoBqUCSoXkj5I/IreQW9gtnCvk6MAVzKcRyME/IcnBBNVjCOCQK8TowBUgOJCDVEAVhGAgFSyKEUoFcgu5hd1iUQxgUYzAFSyKEcjBPqE5BEGHPAJaFCNwBYtigMHDpED2DhlwBQ4O5GCf0Lgwo0OpUNxS3CJukWpJAR1MhxVsuEcwV7VSEkQHcpAKaC8Xg1Ihqc8YDHIFcos5P4LqoDqfLIdoX7ccDlDcUvKYhCRmUWUyDwcYPCSDUgHcArkCWi8x4ArJLUm/ntQNouCQai9yQXZBdksGB/9EcUupo0MSHFxQancOQ6/bbdf5jHy6nPveJuRiiurE/dif+9Olezhdj8dd98/+eB1e+vGxPw33y/6sT9Xr/vSqdxV8Oxx7o9tu7h22uwIWqb1BR30SiJFXEnFbQucrl6qhnPMkkuNKA7Y1EIioaihrxw2NVigluhsgEDdDSQ2JFClM6Yh5TmhOKw36A+ngv5sO1G4uoZW3mY7SSIcgTukQTLzlhjTcQITJD13M0m+GwiFshtKSQIbJizIHQrAu80aNEkT3goAX9SW41sBGcRB7PgNMCshlrdAo0Zyn6sol0qyR1nM+UiufnosU51QArQckNgoUongudHeVbY3cyKfkKsGLOH7JC5gXL1zk838a0hoR8BKPlPKdGiyTRpH7YslxKo2MYVMDGhUac0b3I8t2PqBRoTl5beTEdylI8qVLqNylEAO4EzHwdm1AI5/67+BupEKwmK0/n04J07AKNMqrtWhEpmnRyLC5aECrvJinYeWyKI1Ady1/i83gy/KHsTXZYJ7yy9L44gW2tvmgu4j7EYRoazNAbInor/kkAmVzg8XUWgJ59oSYt0Xa4cAinOXvwhcRbv0vCE9VFnFe0Av//JQLvpQK3Dlpp/qQTL877b8qPGpz/3I4r86fN5M6H/bPx742366nl8XTy78f/sTPrx/n95f+9XruTWk+xOrlW9R/90jyaGdVa+rxIyJaM1pTTxF6UH28mTP/AQ=="
119
119
  },
120
120
  {
121
121
  "name": "check_balance",
@@ -157,7 +157,7 @@
157
157
  }
158
158
  },
159
159
  "bytecode": "JwACBAEoAAABBIBGJwAABEYnAgIEAScCAwQAHwoAAgADAEUcAEVFBi0IRQElAAAARiUAAABxJwIBBEYnAgIEADsOAAIAASwAAEMAMGROcuExoCm4UEW2gYFYXSgz6Eh5uXCRQ+H1k/AAAAAnAEQEAyYlAAAC2B4CAAMAHgIABAAeAgAFCScCBgEBJAIABQAAAJclAAAC/h4CAAUBCiIFQwcWCgcIHAoICQAEKgkFCCcCBQEACioHBQkkAgAJAAAAyicCCgQAPAYKAScCBwAAKwIACQAAAAAAAAAAAgAAAAAAAAAALQgBCicCCwQFAAgBCwEnAwoEAQAiCgILLQoLDC0OBwwAIgwCDC0OBwwAIgwCDC0OBwwAIgwCDC0OCQwtCAEJAAABAgEtCAELAAABAgEtCAEMAAABAgEtCAENAAABAgEnAg4AAS0IAQ8nAhAEBAAIARABJwMPBAEAIg8CEC0KEBEtDg4RACIRAhEtDggRACIRAhEtDgcRLQ4PCS0OCgsnAggEAi0OCAwtDgUNJwIIBAAnAgoEAS0KCAIjAAABogwiAkQDJAIAAwAAAlIjAAABtC0LCwItCwIDACIDAgMtDgMCLQgBAycCBAQFAAgBBAEnAwMEAQAiAgIEJwIIBAQAIgMCDj8PAAQADi0LCQItCwwELQ4CCS0OAwstDgQMLQ4GDQAqAwoELQsEAgoqAgcDCioDBQQkAgAEAAACJSUAAAMQLwoAAgADHAoDBAYcCgQCABwKAgMGDCoDAQIKKgIFASQCAAEAAAJRJQAAAyImLQsMAwwqAgMEJAIABAAAAmgjAAACyi0LCwQAIgQCDgAqDgIPLQsPCC0LCQ4AIg4CEAAqEAIRLQsRDwAqCA8QLQsNCC0CBAMnAAQEBSUAAAM0LQgFDwAiDwIRACoRAhItDhASLQ4OCS0ODwstDgMMLQ4IDSMAAALKACoCCgMtCgMCIwAAAaIoAAAEBHhGDAAABAMkAAADAAAC/SoBAAEF2sX11rRKMm08BAIBJioBAAEFDv4gSes3Tjw8BAIBJioBAAEFursh14IzGGQ8BAIBJioBAAEFhHKAwoQjC0Y8BAIBJi0BAwYKAAYCByQAAAcAAANKIwAAA1MtAAMFIwAAA5ItAAEFAAABBAEAAAMECS0AAwotAAULCgAKCQwkAAAMAAADjS0BCggtBAgLAAAKAgoAAAsCCyMAAANpJwEFBAEm",
160
- "debug_symbols": "tZjbbiI5EIbfpa+5cJ184FVGUUQSMkJCJGJgpVXEu2/ZuNwNI3tnmZ0b+Loa/10nVzf9Nb1tX87fn3eH948f0/rb1/Ry3O33u+/P+4/XzWn3cVDr1+TyB0Cc1rSaAGlah/ytx+AUSA0AGWIF9hUEFCRDtuRVHgykngrOIFuSQnQGZklkEK+ADqc1+gyhQvanANkpslNsFjaLmCU7VsA7AzFIFQIb2CUiGWRBdR4TGPgrkHMGYpAqABvECjmpGDPECiWKAqECm4XNImYpUWQoURQQg1ShRFEgX0JzSBENfIUSRQG5ApeqowLpb0jrz+wM2CBVEI2CJEOo4NHALMEswSzRLNEsudzEGcIVxKljBBnEIFUAMsg/1qIIokH2WUMWAgOzFOcLqA6r8yKqzHp1yTm8gllyi3IWzC1aIJolxgqJr4mS3KKsHe7BV8CaMY9SgcxCbJBXqT+eycAsucqcMoQKeROVVd4EgwmGZqlF8dEuEc1S0lsgXCE4MKjLA5RVl8tqslHwfDput3kSLGaDTozPzXF7OE3rw3m/X01/bfbn8qMfn5tD+T5tjnpW58T28KbfKvi+228zXVbzatdfihRTXY3sUhMA8DcS0JfQieJj1VAOoYkEuNHAvgahdkjVUNaFHY1RKBHMDUwI3VB4IMEgrqVDh+fsBt9oyP+QDv9n00G6zCR023TTEQfpSEQtHYnY99xIAzd01jY/iJh/MxTvXDeUkQQgmgTQXBPB2zYf9CgKg7ds6IjzveYAGnRHCnN3pBC6KQUetYefo0FP3Rb7l3A8tHB00HfDGTUqW5sy4ByLPFSWRUbvyzJo0uCpKiyzyfjLLrgUmguLsXHnAg4kBMEyqXfFxeRJdKsxmqLSesthUyB/2+E4KGiYOytEkFmD4q0GjXYatnrOyUROtwqjEQqpdRUubig/aQxGqLSK+EUc/8kLnG9rtMjnTxphVBG04QfC4UENn5pGTI/FEuaxE8h1NWjQoRCC7RIIqZ8PGnRoYOuNwP4hhdSmRZL4kAK4Ni/A+X5v0CCfHKENrSi42K2/ns7kWlkTDtprNDT0T1obGgG7Q4NG7eXb8AMfF63h5KHxJ9wbf5RGmw3nLb9sjTsveOxGrtnVD5dEerc0hpEIcmwi+vexKzJ6FBU/eyLe90XG4eAinOWD5J0Ij54kk29dtrg/U+SHqutTt7qjTetMIeGD297bnk1Bfndw3Cs86eHmdXe8ealyyVLH3eZlv62H7+fD6+Ls6e9PO2MvZT6PH6/bt/Nxm5XmNzP68Q0krCD4J31FUg61fYBDPoRyFlYg9HTJzvwD"
160
+ "debug_symbols": "tZjbbiI5EIbfpa+5cJ184FVGUUQSMkJCJGJgpVXEu2/ZuNwNI3tnmZ0b+Loa/10nV9P9Nb1tX87fn3eH948f0/rb1/Ry3O33u+/P+4/XzWn3cVDr1+TyB0Cc1rSaAGlah/ytx+AUSA0AGWIF9hUEFCRDtuRVHgykngrOIFuSQnQGZklkEK+ADqc1+gyhQvanANkpslNsFjaLmCU7VsA7AzFIFQIb2CUiGWRBdR4TGPgrkHMGYpAqABvECjmpGDPECiWKAqECm4XNImYpUWQoURQQg1ShRFEgX0JzSBENfIUSRQG5ApeqowLpb0jrz+wM2CBVEI2CJEOo4NHALMEswSzRLNEsudzEGcIVxKljBBnEIFUAMsg/1qIIokH2WUMWAgOzFOcLqA6r8yKqzHp1yTm8gllyi3IWzC1aIJolxgqJr4mS3KKsHe7BV8CaMY9SgcxCbJBXqT+eycAsucqcMoQKeROVVd4EgwmGZqlF8dEuEc1S0lsgXCE4MKjLA5RVl8tqslHwfDput3kSLGaDTozPzXF7OE3rw3m/X01/bfbn8qMfn5tD+T5tjnpW58T28KbfKvi+228zXVbzatdfihRTXY3sUhMA8DcS0JfQieJj1VAOoYkEuNHAvgahdkjVUNaFHY1RKBHMDUwI3VB4IMEgrqVDh+fsBt9oyP+QDv9n00G6zCR023TTEQfpSEQtHYnY99xIAzd01jY/iJh/MxTvXDeUkQQgmgTQXBPB2zYf9CgKg7ds6IjzveYAGnRHCnN3pBC6KQUetYefo0FP3Rb7l3A8tHB00HfDGTUqW5sy4ByLPFSWRUbvyzJo0uCpKiyzyfjLLrgUmguLsXHnAg4kBMEyqXfFxeRJdKsxmqLSesthUyAfbxUGBQ1zZ4UIMmvw7d0AabTTsNVzTibK3SAfjVBIratwcUP5SWMwQqVVxC/i+E9e4Hxbo0U+f9IIo4qgDT8QDg9q+NQ0YnosljCPnUCuq0GDDoUQbJdASP180KBDA1tvBPYPKaQ2LZLEhxTAtXkBzvd7gwb55AhtaEXBxW799XQm18qacNBeo6GhD2ltaATsDg0atZdvww98XLSGk4fGn3Bv/FEabTact/yyNe684LEbuWZXP1wS6d3SGEYiyLGJ6ONjV2T0V1T87Il43xcZh4OLcJZ/JO9EePRPMvnWZYv7sz5RPlRdn7rVHW1aZwoJH9z23vZsCvK7g+Ne4UkPN6+7481LlUuWOu42L/ttPXw/H14XZ09/f9oZeynzefx43b6dj9usNL+Z0Y9vIGEFwT/pK5JyqO0DHPIhlLOwAqGnS3bmHw=="
161
161
  },
162
162
  {
163
163
  "name": "claim",
@@ -2013,7 +2013,7 @@
2013
2013
  }
2014
2014
  },
2015
2015
  "bytecode": "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",
2016
- "debug_symbols": "tZ3dbvzGkbfvxcc+mProqurcyiIIkqx3YcBIAm+ywIvA9/4O2V18ZBuix5L2xPzJf6kedpP1DDlsjf79zX9+95d//fefvv/bf/39f775w3/8+5u//Pj9Dz98/99/+uHvf/3zP7//+9+e//ff3zyO/4h/8wfNn779Rs6v4vlVPL/S8yvJb/4wnv8ktbdzbfWxt7K3ure2t763Y29jb3c93fV017Ndz3Y92/Vs17NnvTi2z5/PY1t7O9fWH3v7/Pk6tk/ePLa5t7W3c23H89/lcYTsUB3mDvGsKXIE6aAdrIN3eA5U9Bny+Cc7woHwIxyVj0Hk3KEeHY7Kx7hKO1gH7zA6HHWOQc7jp45RTu1gHbzD6NC7MbNDdZgr6OPRQTpoB+vgHY468wjVYe4gjw7POvo4wnE6yRGyQ3WYOxzn0grSQTs86apH8A6jw1HHjnDUOXbsOId0HGHPj5p2sA7eYXQ45qeeJ7wdJ7zmOuE0fW/H3sbe5t7W3q4TWOuxt7K3ure7Xu16tevVrle7Xu16tevNx3nC63Fk89j63o69jb3N84S344DNY2t763s71lZ0ndUm1sE7jA6xTmY7DtYK1WHuoI8Osk54O+b/OOHN9jlj5ySPI4wO0SHXyWxHA68wdzhaeAXp4OuEt6OLj4NlRxuvMHcYjw7SoXdjWAfvMDpEh+xQHXZTWDw62Dqr7Wz2M4wO0SHXCW+5T107TqQVvMPoEB2yQ3WY6/S243xaQTr4OuHtOIWOE96Oc+g44a16fqrnp3p+Zs9PS8OWNJ4nvJ8n/PO/R/OMtYm1ybWptXnW8uf3j361sOcXcXxxHM1z156b5//L8xsO8k/Pr/qV5k///PG7745/efPS83xB+seff/zub//85g9/+9cPP3z7zf/++Yd/nd/0P//489/O7T///OPzX59T+t3f/vO5fRb8r+9/+O5IP33LTz/e/1HPuX84TK4fl5RXC4zULiD5poC9WuDZnLYr2EMGJcpfHsTRNWcFn/ZmH8bLg5BH78Mz+lXCH6+XUOmZHOr2oRJe2SXGY36sxHU4Plxi6OMq4R+bi0zvEjnjsyXq8fhgieugluiHSpTJVcI/tBeho/ciNMbH9iLHtRf5oemMh15t+rCPHdQ5r7mYc35sLh6Pay7MPj+Q+liJvPbiUR86IiGPuqyn8sESTgn9WIm4BvK8/P7gEZHriIh/rITUJw/q8zrtzUuAfuRlSB7SA5FHxJtXkflqiRqXcirszWuZ/HwgWjc1Zp+d802X/Y6deF7e91To8/L6KvG8YPtZCburEdYD0XAG8rwmenk3/Dqo6mHvzoXpXY0HNZI+q59fnJjdTOfD+gyvR7wZybPzf1bD36+RGb0bWW+uL35VY7xf4zn7fYEhnFvqPz+sFnfHtfry4HkLpu/XyJtz/Hlr3ee4vBHX76phj96P59sH9X6N+X6N6f1yNMfHKggWf3br+yNxubnoK676aryRxocGkuNjhzWPe7B1WNMe7w/k5gQVrlOeb368f2r4+OwhebHCzVzcVXj5oNanD+rtdE7O8KnvT+et/WbvhY63Lya/sN+Qu9kYV8c/p2NybuTjdxTJ61rlecnxiPeK3F23mV5X0s9b+vcHczOn9mY/7FE23h3MbZGqPkHs+XodHyoicl2SP/PMD8zI86eupn28cfEvXmLHzXk6pef0+SYv18LHvePPStw58Pm27mXz8Pf2Iu7ue3lZKs6v8fOLppC7m9a67vV0vr1q+nmJm1f5SC7I0+vdEnd7EXrd94aNT5d4c/f9u0pkXSXmx0pwBfmMHxtIPd7c975/RG7fzLimwuPds2J++qzIx+fPivn5s2J+/qyYnz8r5ufPivl/elbMkOv1fb57VtzeYeGrx3j3xMq6U97MS5sa716K581UBPe8+f7tf93d53mfmjXfv/uvu0vP561Ni1dv3kGoO2/OS975uHnL8a5G8uZrjlmfrvH2HdzfVaOuK9is+fhgDZtXjfyCGh/dj7fz8ciPnR/PZyh9ftjNW2W3Ncb1VoLHeP/NnSmfP8fuarx6bO9rvHZsX67x0f14sV9erXF3frxc467n7nz+uN5pGu+/ezhvL0AluQJVf/+NZXncvi64cN/nWh/cmeeb49fOPJ+/3uzMTfc+37gb13t4oz5aJOZV5Obxxf147HqM8szjcbMr4+79xEdeL1ZuHysyebo1nwf9C4ro48NFrrNW7G44n788Ffn89elvDIY3e/Xxfg/eXhHp4EZy+rtXRCJ2e9Jf5wi78Xyo/XoJnsHON7fUv7MEFnh8cDcquDT74G7UiM+WmJjowyN5mvDtuz8fLlJXkbcPA35nEf2CItej6Wdvjg8XkVeK3L5rYn7tiNW775qIjjuBPIJn9W/d/Iv3kJ6vSXf3ZDwCfHNTN+wXJW7ejM/rHCmp956PyO3zphcfkJzvNX32CYncPXR67RHJ+ebdZ5+RyN1Tp1cfktzvyYtv64t9wfv6Yp9+Y/+2xKvvy8vdc6MX35i/n5AX35m/bbu4br3rzaXmr9rO765Y5Xr/9/mORLzbeP75d07FP//W6f1+vPYu2es13n+b7DdqvPQ+2X2N194ou6/x2jtl9+eH2nV+aLwvZv+Ci9TxBRepPr/g/JhfcH7MLzg/5hecH/P/+PywR/AM/d2FDTLyC86P+vz5cbsfL54fL9e4OT/ua7x2ftzWePH8uK3xJefHdUP2vEbVd8+PGJ8/PyI+f37c7seL58fLNW7Oj/sar50ftzVePD9ua3zF+eHXE3nxN+uzfnl+pH3+/Ej//Plxux8vnh8v17g5P+5rvHZ+3NZ48fy4rfEl58d1aylDHu+eH/UF16f1Bden9QXXp/UF16f1Bden9QXXp/V/fX1aPIktv7k+va1R12vUvDnH5uPzj3Pl9hnVS89zz7daP/dAV6Z9/omuTP/847bbIq8+o3q5yN0DpvsiLz75+40irz36e73Ih/fkxQd39+fJi09274u8+GhXH/b5k+22yKuH+DeKvHaIXy/y4T15sXdeLnJ3nrxe5LYB9bOPeFXkK57xquhXPOP9jb159SGvin/+Ie9vFHntIe9vDOjVp7wq+fmnvLdFXn3K+3oRfXy4yEtPeVU/fwGr+vkL2N8YzGtPee+vlF58zKt3j61ee8x7W+K1x7y/UeKlx7y/MZJXHvPel3jpMe/9SF57zHtb49XHvL9V5KXHvL9VRL+gyGuPeX+ryEuPeW8f84gwsfpGRL9+vnpXhKt6eftA8ZdF1OruIW1er+Qo5PkY+hcl5u1+0P6h73robjfq+p2+evNL2b/ejbsS1wlfb35d4HeVmMH58ZD3a/jdWyQ5+O3wsvdl6F/wW33qn/61vudV0+efWat/wS/23e/Ji8+s9e7xyKvPrPXuudVrz6xvS7z6zFqHfvqZ9f2EfMUz6+el7iV4e/ubxb9LZnZdsD7fQH5/xYmOu5PkMa+T5O2Z9ou3ffTuEcmra0707tnVy/17txjoxf6Nxxf0b8gX9O/tnrzav2Ff0L/hn+7fuxIv9+/d86tX+/d2Ql7u39uHcX5dBDxzvPubi3r3Szx6vJl/Nd/wd3+JUvP2jVtcUvH2nsZ/z67wlvozv7mg+NWu6O01uF63JCPeHKH8HQv68voEiufDKq4GfrGgT+8eZD0P3nyzYuPN+wrP29lflLk7zDyXG+5c3cQvd+XumevjupWPx5tPjPlVjdtn4dd7YT+bVfs9u3Fdg4fIzW7cnSSBkKLmu68Vt79r9eprxd0zk5dfK+4eZr34WlH2Ba8V5V/wWnFb5MVPcdCKT2v+rsTLmq/P/87//aGJ690ifft471c7Mh9fMKt3z7NenNUXS+TdnN6d7bOus3188Gx/9Xpkji+4HpmfP1FvS1xWnhofK/HyuX73a0Gvnuu3c/riJc39C4Tom8+OyvdeIOxxe5L1sfU3DxZ++dF/v7Ebeb1cqvr7u3H7YC+u9ZrPPOy9yxB7jC+4mPmNfclRPIJ68zb8r6rcvef85iXi7ZqJ3/GpjGNclxDP3aDELz+/6e4XrV7+1I/fqMJSg+c3mn6wyrw+R+/48JCP78trH0Fy96lB1kd4xps3Jn/5uUO3+/EFn2IyxnUj8DzE739E193V2XmRsU55e/yixB+fX/75r9//+PMPwz4/qvj4bOjjw0+PT3KuvZ1re3zyrZ8fbry3urfHJ/we/+57e3zCr63PUj23xyf8jvVpquf2+ITf41NtH3sre6vr+8+PvD4/9XZvx/EJpsdnzO5t7m3t7Vzb4/Nzz63sre6t7a3v7a7nu57ver7r+a43dr2x641db+x6Y9cbu97Y9cauN3a9sevFrhe7Xux6sevFrhe7Xux6sevFrhe7Xu56edR7zuvxybvn1vb2qPe05/Gxu+c29jb3tvZ2ru8/PnH33O56xyc4H/9+fILzud31aterXa92vdr1atebu97c9ebev7n3b+56c9ebu97c9eaud3xK97GV41O6V5AO2mHXfD4q6TA6RIfsUP1TXVm6snRl6cpiHbzD6BAduvLRMtEfEx/9OfErSIeurF1Zu7J2Ze3Kmh16n7X32XqfrSubdujZsJ4N69mwrmxd2bqydWXvyt6z4b3P3vvsvc/elb3n2Xs2vGfDezZGVx5deXTl0ZVHVx49G6P3efQ+j97n0ZWj5zl6NqJnI3o2oitHV46uHF05unL0bGTvc/Y+Z+9zd5pkz3P2bGTPRvZsdLudn4J/hurK1ZW75aR7TrrppLtOuu2kunL1PHfnSbeedO+dn5R//tTsyt1+0v0n3YDSHSjdgtI9qN2D5yflH5XPT8pfwTp4h9Eh+qeyQ3Xoyt2D2j2o3YPaPajdgypdWaJDdqgOezbOz9c/f0q7cvegdg9q96B2D2r3oHYPavfg+Yn7Z2V7dOjZ6B7U7sHzE/fPn7Ku3D2o3YPaPajdg9o9qN2D2j2o3pW957l7ULsHtXtQvSt7V+4e1O5B7R7U7kHtHtTuQe0e1NGVR89z96B2D2r3oEZXjq7cPajdg9o9qN2D2j2o3YPaPaj9Wqf9Yqfdg9o9qN2D2i942q942j2o3YPaPajdg9o9qN2D2j14/u2Cs3L1PHcPavegdg+uP2Bw/NTsyt2D2j2o3YPaPajdg9o9qN2DOndlezw6SAftYB125fPvH6wQHbJDddizYd2D1j1o3YPnn004K4t3GB2iQ3boytKVuwete9C6B6170LoHrXvQugdNu7JWh56N7kHrHjz/DsP5U9aVuwete9C6B6170LoHrXvQugfPP8hwVvae5+5B6x607kHzruxduXvQugete9C6B6170LoHrXvw/KMNZ+XR89w9aN2D1j14/tGG86eiK3cPWvegdQ9a96B1D1r3oHUPWnTl7HnuHrTuQesetL7ktL7mtO5B6x607kHrHrTuQesetO5Bq65cPc/dg9Y9aN2D1heg5x9/OEP3oHUPWvegdQ9a96B1D1r3oM2uPHueuwe9e9C7B72vRf1hHbzD6BAdskN12Pvs3YMuXVm0g3XwDqNDV5au3D3o3YPePejdg9496N2D3j3o2pU1OmSH6tCz0deibl25e9C7B7170LsHvXvQuwe9e9CtK3vPc/egdw9696D3tah7V+4e9O5B7x707kHvHvTuQe8e9NGVR89z96B3D3r3oPe1qI+u3D3o3YPePejdg9496N2D3j3o0ZWj57l70LsHvXvQ+1rUuwe9Xwe9Xwe9e9D7WtSzK/e9n3cPevegdw96vw762YN1hONv8MgRokN2qA5zh6MHV5AO2sE6eIeuPLvy7MqzK89deTweHaSDdrAO3mF0iA7ZoTp0ZenK0pWlK0tXlq4sXVm6snRl6crSlbUrHz2Y57sK2sE6HJX9CKNDdMgO1WHunzp6cIWufPTg+T1HD67Qla0rW1e2rmxd2bqyd2Xvyt777L3P3pW9K3tX9q7sXfnowTMcPbiCdOh9Hl356MEVRofokB268ujK0ZWjK0dXjp6N6H2O3ufofY6ufPTgCj0b2bORPRvZlbMrZ1fOrpxdOXs2svc5e5+r97m6cvU8V89G9WxUz0Z15erK1ZWrK8+uPHs2Zu/z7H2evc+zK8+e59mzMXs25p6NeOzK8ZAO2sE6eIfRITpkh+rQleXRQTpoB+vQlaUrS1eWrixdWfZshPY+a++z9j53D4Z6h9EhOmSHrqxd2bqydeXuwegejO7B6B6M7sGwrmzVoWejezC6B8O7snfl7sHoHozuwegejO7B6B6M7sEYXXn0PHcPRvdgdA/G6MqjK3cPRvdgdA9G92B0D0b3YHQPRnTl6HnuHozuwegejOzK2ZW7B6N7MLoHo3swugejezC6ByO7cvU8dw9G92B0D0Z15erK3YPRPRjdg9E9GN2D0T0Y3YMxu/Lsee4ejO7B6B6M2ZXnrpzdg9k9mN2D2T2Y3YPZPZjdg/nYlfNRHfZsZPdgdg+mdGXpyt2D2T2Y3YPZPZjdg9k9mN2D2a+D2a+D2T2Y3YPZPZj9Opj9Opjdg9k9mN2D2T2Y3YPZPZjdg2ld2aJDz0b3YHYPpndl78rdg9k9mN2D2T2Y3YPZPZjdg+ldefQ8dw9m92B2D+boyqMrdw9m92B2D2b3YHYPZvdgdg9mdOXoee4ezO7B7B7M6MrRlbsHs3swuwezezC7B7N7MLsHM7ty9jx3D2b3YHYPZnXl6srdg9k9mN2D2T2Y3YPZPZjdgzm78ux57h7M7sHsHszZlWdX7h7M7sHqHqzuweoerO7B6h6sx65cj+iQHarDno2SrixduXuwugere7C6B6t7sLoHq3uwpCvro4N00A7WoSv3tWh1D1b3YHUPVvdgdQ9W92B1D5Z1ZfMOPRvdg9U9WH0tWtaVuwere7C6B6t7sLoHq3uwugfLu7L3PHcPVvdgdQ9WX4vW6Mrdg9U9WN2D1T1Y3YPVPVjdgxVdOXqeuwere7C6B6uvRSu6cvdgdQ9W92B1D1b3YHUPVvdgZVfOnufuweoerO7B6mvRqq7cPVjdg9U9WN2D1T1Y3YPVPVjVlWfPc/dgdQ9W92D1tWjNrtw9WN2D1T1Y3YOze3B2D87uwfnYlefDO4wO0SE7VP9UV+4enN2Ds3twdg/O7sHZPTi7B6d0ZakOezZm9+DsHpx9LTq7B2e/Ds5+HZzdg7OvRad25b4fnN2Ds3twdg/Ofh2cZw/GEcaxTuAI0SE7VIe5w9GDK0gH7WAdvENX9q7sXdm7snfl0ZWPHqxxBO1gHbzD6BAdskN1mDscPbhCV46uHF05unJ05ejKRw8e6wvn0YMrzB2OHlxBOmgH6+AdRofocFTWI1SHo3Idz78fHaSDdrAO3mF0iA7ZoTp05dmVZ1eeXXl25dmVz7+kfXws2jz/lPZKeaW60vknkuV8UP8gClGJRnTiIAYxiUWEJtAEmkATaAJNoAk0gSbQBJpCU2gKTaEpNIWm0BSaQlNoBs2gGTSDZtAMmkEzaAbNoDk0h+bQHJpDc2gO7fyj1ceCquOXYInziuefrj5+nfAZhahEIzpxEIOYxCLOKwa0gBbQAlpAC2gBLaAFtICW0BJaQktoCS2hJbSEltASWkEraAWtoBW0glYnbZwxiUU8aXHE809q7yhEJRrRrwqnR3aEdppkf28RL9q56qejEJVoxIt2rv/pGMQkFhGaQBNoAk2gnS7ZcRCDmERop0tWPF2yoxCVCE2hKTSFptC0iIzNGJsxNoN2umRHZtKYSWMmDZpBM2gOzaE5M+mMzRmbMzaH5hw3ZyadmRzM5IA2oA1oA9qANpjJwdgGYxuMLaAFxy2YyWAmg5kMaAEtoAW0gJbMZDK2ZGzJ2BJactySmUxmMpnJhFbQClpBK2jFTBZjK8ZWjA2XSHHcJjM5mcnJTOISmdAmtAkNlwguEVyiuERxiT4umj6M6MRBDGJSoYjQcIniEsUliksUlyguUYEmSSziNZOKS1ShKTRcorhEcYniEsUliksUl6hBMyEyk7hEcYkaNIOGSxSXKC5RXKK4RHGJ4hJ1aM5xwyWKSxSXqEMb0HCJ4hLFJYpLFJcoLlFcogPa4LjhEsUliks0oAU0XKK4RHGJ4hLFJYpLFJdoQkuOGy5RXKK4RBNaQsMliksUlyguUVyiuERxiXJdolyXKC5RXKK4RLkuUa5LFJcoLlFcorhEcYniEsUl9rho9hCiEo3oxEGFICaxiNBwieESwyWGS0ygySAGMYlFhKbQcInhEsMlhksMlxguMVxiCk2v42a4xHCJ4RIzaAYNlxguMVxiuMRwieESwyXm0JzjhksMlxguMYfm0HCJ4RLDJYZLDJcYLjFcYgPa4LjhEsMlhkssoAU0XGK4xHCJ4RLDJYZLDJdYQkuOGy4xXGK4xBJaQsMlhksMlxguMVxiuMRwiRW04rjhEsMlhkuMexzjHsdwieESwyWGSwyXGC4xXGIT2ryOm+MSxyWOS5x7HH84cRCDmMQiXmNzXOK4xAWaGNGJgxhEaAINlzgucVziuMRxieMSxyWu0DSJRWQmcYlzj+MGDZc4LnFc4rjEcYnjEscl7tCc44ZLHJc4LnHucdyh4RLHJY5LHJc4LnFc4rjEB7TBccMljksclzj3OB7QcInjEscljksclzgucVziAS04brjEcYnjEucexxMaLnFc4rjEcYnjEscljku8oBXHDZc4LnFc4tzjOC5xrkuc6xLHJc49jk9ovF/iuMRxieMS57rEl0uOd9XOVXFy/OV5OdfFdVSiEZ04iEFMYhHnFQWaQBNoAk2gCTSBJtAEmkBTaApNoSk0habQFJpCU2gKzaAZNINm0AyaQTtdcvxOo5zr6zoW8aT5EU+X7ChEJRrRrwqnS3aEdrpkf28RoQ1oA9qANqANaAPagDYY22BsA1pAC2gBLaCdLtlxEIPI2ALa6ZIVT5fsKEQlQktoCS2hJbRkJpOxFWMrxlbQTpfsyEwWM1nMZEEraAVtQpvQJjM5GdtkbJOxTWiT4zaZyXnNZDwexIsWDyUa0YmDGMQkFvEaWwg0EaISjehEaAJNoAk0gaYPImNTxqaMTaHpIAYxiUWEZtAMmkEzaMZMGmMzxmaMDZeEcdycmXRm0plJXBIOzaE5NFwSuCRwSeCSwCUxoA2OGy4JXBK4JAa0AQ2XBC4JXBK4JHBJ4JLAJRHQguOGSwKXBC6JhJbQcEngksAlgUsClwQuCVwSBa04brgkcEngkihoBQ2XBC4JXBK4JHBJ4JLAJTGhTY4bLglcErgk5kXLx4MoRCUa0YmDGMQkXrR8XMctcUniksQlKdAEGi5JXJK4JHFJ4pLEJYlLUqGpEZ04iEGEptBwSeKSxCWJSxKXJC5JXJJclyTXJYlLEpckLkmuS5LrksQliUsSlyQuSVySuCRxSQ5og+OGSxKXJC7JAW1AwyWJSxKXJC5JXJK4JHFJBrTguOGSxCWJSzKgJTRckrgkcUniksQliUsSl2RCS44bLklckrgkC1pBwyWJSxKXJC5JXJK4JHFJTmiT44ZLEpckLskJbULDJYVLCpcULilcUrikcEk9Llo9kljEayYLl5RAE2i4pHBJ4ZLCJYVLCpcULimFpkJUohGdCE2h4ZLCJYVLCpcULilcUrikDJoNIjOJSwqXFPc4xT1O4ZLCJYVLCpcULilcUrikHJpz3HBJ4ZLCJcU9Tg1ouKRwSeGSwiWFSwqXFC6pgBYcN1xSuKRwSXGPUwENlxQuKVxSuKRwSeGSwiWV0JLjhksKlxQuKe5xqqDhksIlhUsKlxQuKVxSuKQmtMlxwyWFSwqXFPc4NaHhksIlhUsmLpm4ZOKSiUvm46LNxyAGMYlFhCbQcMnEJROXTFwyccnEJROXTIEm13GbuGTikolLJvc4U6HhkolLJi6ZuGTikolLJi6ZBs2MyEzikolLJvc4E5dMrksm1yUTl0zucaZD4/2SiUsmLpm4ZHJdMpdLjjfY5nLJPKMQlWhEJw5iEJNYxHnFgBbQAlpAC2gBLaAFtIAW0BJaQktoCS2hJbSEltASWkIraAWtoBW0glbQTpccH9ot5xrXjkU8aHF+dNnpkh2FqEQj+lXhdMmO0E6X7O8tYtN0rXvdUYhKNGLTdK173TGISSwiNIEm0ASaQDtdsuMgBjGJ0E6XrHi6ZEchKhGaQlNoCk2haREZmzE2Y2wG7XTJjsykMZPGTBo0g2bQHJpDc2bSGZszNmdsDs05bs5MOjM5mMkBbUAb0Aa0AW0wk4OxDcY2GFtAC45bMJPBTAYzGdACWkALaAEtmclkbMnYkrEltOS4JTOZzGQykwmtoBW0glbQipksxlaMrRhbQSuO22QmJzM5mckJbUKb0Ca0CW0yk7hEcIngkrXu9aStda87OnEQg5hUKCI0XCK4RHCJ4BLBJYJL1rrXRZMkFvGaScEla93rqqDQcIngEsElgksElwguEVyy1r0umgmRmcQlgkvWutddARouEVwiuERwieASwSWCS9a610VzjhsuEVwiuGSte10VBjRcIrhEcIngEsElgksEl6x1r4s2OG64RHCJ4JK17nVVCGi4RHCJ4BLBJYJLBJcILlnrXhctOW64RHCJ4JK17nVXgIZLBJcILhFcIrhEcIngEiloxXHDJYJLBJfIhDah4RLBJYJLBJcILhFcIrhkrXs9aWvd645KNKITBxWCmMQiQsMliksUlyguWeteF00GMYhJLCI0hYZLFJcoLlFcorhEcYnikrXuddH0Om6KSxSXKC5Z615XBYOGSxSXKC5RXKK4RHGJ4pK17nXRnOOGSxSXKC5Z6153BWi4RHGJ4hLFJYpLFJcoLlnrXhdtcNxwieISxSVr3euqENBwieISxSWKSxSXKC5RXLLWvS5actxwieISxSVr3euuAA2XKC5RXKK4RHGJ4hLFJWvd66IVxw2XKC5RXKIFbULDJYpLFJcoLlFcorhEccla97po8zpuhksMlxguMe5x1rrXHQcxiEks4jU2wyWGS9a610UTIzpxEIMITaDhEsMlhksMlxguMVxiuGSte100TWIRmUlcYtzjrHWvO0LDJYZLDJcYLjFcYrhkrXtdNOe44RLDJYZLjHucte51R2i4xHCJ4RLDJYZLDJesda+LNjhuuMRwieES4x5nrXvdERouMVxiuMRwieESwyVr3euiBccNlxguMVxi3OOsda87QsMlhksMlxguMVxiuGSte1204rjhEsMlhkuMexzDJcZ1iXFdYrjEuMdZ6153hIZLDJcYLjGuS9a61+MvjOla93r83Uld6153VKIRnTiIQUxiEecVBZpAE2gCTaAJNIEm0ASaQFNoCk2hKTSFptAUmkJTaArNoBk0g2bQDJpBWy6ZZ0xiEQ/a8VcjdK173VGISjSiXxWWS1aEdrpkf28RoQ1oA9qANqANaAPagDYY22BsA1pAC2gBLaCdLtlxEIPI2ALacskZl0tWFKISoSW0hJbQEloyk8nYirEVYytoyyUrMpPFTBYzWdAKWkGb0Ca0yUxOxjYZ22RsE9rkuE1mcl4zuda97njR1rrXHY3oxEEMYhKLeI1trXtdNBGiEo3oRGgCTaAJNIGmDyJjU8amjE2h6SAGMYlFhGbQDJpBM2jGTBpjM8ZmjA2XrHWvKzoz6cykM5O4ZK173RGaQ8MlA5cMXDJwycAla93rog2OGy4ZuGTgkrXudVeAhksGLhm4ZOCSgUsGLhm4ZK17XbTguOGSgUsGLlnrXleFhIZLBi4ZuGTgkoFLBi4ZuGSte1204rjhkoFLBi5Z6153BWi4ZOCSgUsGLhm4ZOCSgUvWutdFmxw3XDJwycAla93rWWGte91RiEo0ohMHMYhJvGhr3euKuCRwSeCSte51VRBouCRwSeCSwCWBSwKXBC5Z614XTY3oxEEMIjSFhksClwQuCVwSuCRwSeCS4LokuC4JXBK4JHBJcF0SXJcELglcErgkcEngksAlgUvWutdFGxw3XBK4JHDJWve6K0DDJYFLApcELglcErgkcMla97powXHDJYFLApesda+rQkLDJYFLApcELglcErgkcMla97poyXHDJYFLApesda+rQkHDJYFLApcELglcErgkcMla97pok+OGSwKXBC5Z6153BWi4JHFJ4pLEJYlLEpckLlnrXk/aWve6YxGvmUxcsta9rgoCDZckLklckrgkcUniksQla93roqkQlWhEJ0JTaLgkcUniksQliUsSlyQuWeteF80GkZnEJYlLknuc5B4ncUniksQliUsSlyQuSVyy1r0umnPccEniksQlyT3OWve6IzRckrgkcUniksQliUvWutdFC44bLklckrgkucdZ6153hIZLEpckLklckrgkccla97poyXHDJYlLEpck9zhr3euO0HBJ4pLEJYlLEpckLlnrXhdtctxwSeKSxCXJPc5a97ojNFySuKRwSeGSwiWFS9a615O21r3uGMQkFhGaQMMlhUsKlxQuKVxSuKRwyVr3umhyHbfCJYVLCpcU9zhr3euO0HBJ4ZLCJYVLCpcULlnrXhfNjMhM4pLCJcU9TuGS4rqkuC4pXFLc46x1rztCwyWFSwqXFNcla93r8Sfdda17Pf4auq51rzsq0YhOHMQgJrGI84oBLaAFtIAW0AJaQAtoAS2gJbSEltASWkJLaAktoSW0hFbQClpBK2gFraAtl+QZk1jEk1ZHXNclKwpRiUb0q8JyyYrQlkvW9xbxoq11rzsKUYlGvGhr3euOQUxiEaEJNIEm0ATacsmKgxjEJEJb1yVnXPc4KwpRidAUmkJTaApNi8jYjLEZYzNo67pkRWbSmEljJg2aQTNoDs2hOTPpjM0ZmzM2h+YcN2cmnZkczOSANqANaAPagDaYycHYBmMbjC2gBcctmMlgJoOZDGgBLaAFtICWzGQytmRsydgSWnLckplMZjKZyYRW0ApaQStoxUwWYyvGVowNl6x1rytOZnIyk5OZxCVr3euO0CY0XDJxybxcYo/LJfa4XGJr3Wuef+n3YUQnDmIQkwpFhCbQBNrlEntcLrHH5RJ7XC6xte510SSJRZxXvFxia93rqqDQFJpCU2iXS+yhjE0ZmzI2g2ZCZCaNmTRm0qAZNINm0AyaM5PO2JyxOWNzaM5xc2bSmUlnJh3agDagDWgD2mAmB2MbjG0wtgFtcNyCmQxmMpjJgBbQAlpAC2jBTAZjS8aWjC2hJcctmclkJpOZTGgJLaEVtIJWzGQxtmJsxdgKWnHcipksZnIykxPahDahTWgT2mQmJ2ObjA2XrHWvJ22te91RiUZ04qBCEJNYRGi4RHCJ4BLBJWvd66LJIAYxiUWEptBwieASwSWCSwSXCC4RXLLWvS6aXsdNcIngEsEla93rqmDQcIngEsElgksElwguEVyy1r0umnPccIngEsEla93rrgANlwguEVwiuERwieASwSVr3euiDY4bLhFcIrhkrXtdFQIaLhFcIrhEcIngEsElgkskoSXHDZcILhFcsta97grQcIngEsElgksElwguEVyy1r0uWnHccIngEsElUtAmNFwiuERwieASwSWCSwSXrHWvizav46a4RHGJ4hK97nFsrXvdcRCDmMQiXmNTXKK4ZK17XTQxohMHMYjQBBouUVyiuERxieISxSWKS9a610XTJBaRmcQlatAMGi5RXKK4RHGJ4hLFJYpL1rrXRXOOGy5RXKK4RB2aQ8MliksUlyguUVyiuERxyVr3umiD44ZLFJcoLtEBLaDhEsUliksUlyguUVyiuGSte1204LjhEsUliks0oSU0XKK4RHGJ4hLFJYpLFJesda+LVhw3XKK4RHGJFjRcolyXKNclikt0QpvQJjRcorhEcYlyXbLWvdbzDTZb616PP05ia93rjko0ohMHMYhJLOK8okATaAJNoAk0gSbQBJpAE2gKTaEpNIWm0BSaQlNoCk2hGTSDZtAMmkEzaKdLjj/MYmvd645FPGlxxNMlOwpRiUb0q8Lpkh2hnS7Z31tEaAPagDagDWgD2oA2oA3GNhjbgBbQAlpAC2inS3YcxCAytoB2umTF0yU7ClGJ0BJaQktoCS2ZyWRsxdiKsRW00yU7MpPFTBYzWdAKWkGb0Ca0yUxOxjYZ22RsE9rkuE1mcl4zuda97njR1rrXHY3oxEEMYhKLeI1trXtdNBGiEo3oRGgCTaAJNIGmDyJjU8amjE2h6SAGMYlFhGbQDJpBM2jGTBpjM8ZmjA2XrHWvKzoz6cykM5O4ZK173RGaQ8MljksclzgucVyy1r0u2uC44RLHJY5L1rrXXQEaLnFc4rjEcYnjEscljkvWutdFC44bLnFc4rhkrXtdFRIaLnFc4rjEcYnjEscljkvWutdFK44bLnFc4rhkrXvdFaDhEscljksclzgucVziuGSte120yXHDJY5LHJesda9nhbXudUchKtGIThzEICbxoq11ryvikoFLBi5Z615XBYGGSwYuGbhk4JKBSwYuGbhkrXtdNDWiEwcxiNAUGi4ZuGTgkoFLBi4ZuGTgksF1yeC6ZOCSgUsGLhlclwyuSwYuGbhk4JKBSwYuGbhk4JK17nXRBscNlwxcMnDJWve6K0DDJQOXDFwycMnAJQOXDFyy1r0uWnDccMnAJQOXrHWvq0JCwyUDlwxcMnDJwCUDlwxcsta9Llpy3HDJwCUDl6x1r6tCQcMlA5cMXDJwycAlA5cMXLLWvS7a5LjhkoFLBi5Z6153BWi4JHBJ4JLAJYFLApcELlnrXk/aWve6YxGvmQxcsta9rgoCDZcELglcErgkcEngksAla93roqkQlWhEJ0JTaLgkcEngksAlgUsClwQuWeteF80GkZnEJYFLgnuc4B4ncEngksAlgUsClwQuCVyy1r0umnPccEngksAlwT3OWve6IzRcErgkcEngksAlgUvWutdFC44bLglcErgkuMdZ6153hIZLApcELglcErgkcMla97poyXHDJYFLApcE9zhr3euO0HBJ4JLAJYFLApcELlnrXhdtctxwSeCSwCXBPc5a97ojNFwSuCRxSeKSxCWJS9a615O21r3uGMQkFhGaQMMliUsSlyQuSVySuCRxyVr3umhyHbfEJYlLEpck9zhr3euO0HBJ4pLEJYlLEpckLlnrXhfNjMhM4pLEJck9TuKS5LokuS5JXJLc46x1rztCwyWJSxKXJNcla91rHW+wrXWv86xwumRHJRrRiYMYxCQW8aDN462/te51RyEq0YhOHMQgJrGI0BJaQktoCS2hHS55PqM4YxAZWzK20yUrFjNZzGQxk8VMFjNZzGQxkwWtoBW0CW1Cm9AmtMnYJjM5mcnJTE5mcl4zuda97ihEJRrRiYMYxCQWEdrhkjXra93rOYq17nVHIzpxEIOYxCJeM7nWve4ITaEpNIWm0BSaQlPGpozNmEljJo2ZNGbSmEljJo2ZNGbSoBk0h+bQHJpDO1yyZ93PDvAzBjGJRZxXHA+iEJVoxIMmjzMOYhCTWMR5xcMlHYWoRCNCC2gBLaAFtICWJ63OKMSDpnZGIzpxEIOYxCLOKx4u6ShEaAWtoBW0glbQClpBm9AmtAltQpvQJrQJbUKb0OZFO9e9dhSiEo3oxEEMYhKLCE2gCTSBJtAEmkATaAJNoAm0wyXPp6tnPGj+OKMSjejEQQxiEos4r3i4pCM0g2bQDJpBM2gGzaAZNIfm0ByaQ3NoDs2hOTSH5tAGtAFtQBvQBrQBbUAb0Aa00yXjPG6nS3YUohKN6MRBDGISiwgtoSW0hJbQElpCS2gJLaEltIJW0ApaQStoBa2gFbSCVtAmtAltQpvQJrQJbUKb0Ca02TQ/1712FKISjejEQQxiEosITaAJNIEm0ASaQBNoAk2gCTSFptAUmkJTaApNoSk0habQDJpBM2gGzaAZNINm0AyaQXNoDs2hOTSH5tAcmkNzaA5tQBvQBrQBbUAb0Aa0AW1AG9ACWkALaAEtoAW0gBbQAlpAS2gJLaEltISW0BJaQktoCa2gFbSCVtAKWkEraAWtoBW0CW1Cm9AmtAltQpvQJrQJDZcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFcIrhEcIngEsElgksElwguEVwiuESWS8YRT5ccHw/l57rXjko8aClnPGh5VjhdsuNBq3nGJBZxXvFwiT0eZxSiHvEsdrjEHnFGJ44j1hmfNJP1Y0msI547ebhkx8MlHYV40ETPaEQnDuJJO/esTpqfsYjzivNx7e88aef8TiUa0YmDHwtiEqHNkxY/ffvN//75x+///Jcfvvufb/7w7+eX//Wvv/31n9///W/7y3/+v3/0v/zlx+9/+OH7//7TP378+1+/+89//fjdn374+1+Pf/vmcfznkMR/SHyr8sfnNwv/a36rfvwv3d/6HzryW8344/P66Pj352380yXPr85vVzu+348v5fjS61sdj+PnrX/+2VHfuun+eR3P74jqn39eKn/7vBDqn3++tj6/jOPn/fj54yfs+PH+fn/++zz+efx6ENE/of6t+fUTj299HP+c10+oPHfhjz/99NMff/r/",
2016
+ "debug_symbols": "tZ3fbvTGkbfvxcc+mPrTVdW5lUUQJFnvwoCRBN5kgQ9B7v0bsrv4yG8geixpT8yf/Er1sJusZ8hha/TP7/7zhz/947//8ONf/uuv//Pd7/7jn9/96ecff/rpx//+w09//fMf//7jX//y/L///O5x/Ef8u99p/uv77+T8Kp5fxfMrPb+S/O534/lPUns711Yfeyt7q3tre+t7O/Y29nbX011Pdz3b9WzXs13Pdj171otj+/z5PLa1t3Nt/bG3z5+vY/vkzWObe1t7O9d2PP9dHkfIDtVh7hDPmiJHkA7awTp4h+dARZ8hj3+yIxwIP8JR+RhEzh3q0eGofIyrtIN18A6jw1HnGOQ8fuoY5dQO1sE7jA69GzM7VIe5gj4eHaSDdrAO3uGoM49QHeYO8ujwrKOPIxynkxwhO1SHucNxLq0gHbTDk656BO8wOhx17AhHnWPHjnNIxxH2/KhpB+vgHUaHY37qecLbccJrrhNO0/d27G3sbe5t7e06gbUeeyt7q3u769WuV7te7Xq169WuV7vefJwnvB5HNo+t7+3Y29jbPE94Ow7YPLa2t763Y21F11ltYh28w+gQ62S242CtUB3mDvroIOuEt2P+jxPebJ8zdk7yOMLoEB1yncx2NPAKc4ejhVeQDr5OeDu6+DhYdrTxCnOH8eggHXo3hnXwDqNDdMgO1WE3hcWjg62z2s5mP8PoEB1ynfCW+9S140RawTuMDtEhO1SHuU5vO86nFaSDrxPejlPoOOHtOIeOE96q56d6fqrnZ/b8tDRsSeN5wvt5wj//ezTPWJtYm1ybWptnLX9+/+hXC3t+EccXx9E8d+25ef6/PL/hIP/r+VW/0vzh7z//8MPxL29eep4vSH/7488//OXv3/3uL//46afvv/vfP/70j/Ob/udvf/zLuf37H39+/utzSn/4y38+t8+C//XjTz8c6V/f89OP93/Uc+4fDpPrxyXl1QIjtQtIvilgrxZ4NqftCvaQQYnylwdxdM1Zwae92Yfx8iDk0fvwjH6V8Ee+XEKlZ3Ko24dKeGWXGI/5sRLX4fhwiaGPq4R/bC4yvUvkjM+WqMfjgyWug1qiHypRJlcJ/9BehI7ei9AYH9uLHNde5IemMx56tenDPnZQ57zmYs75sbl4PK65MPv8QOpjJfLai0d96IiEPOqynsoHSzgl9GMl4hrI8/L7g0dEriMi/rESUp88qM/rtDcvAfqRlyF5SA9EHhFvXkXmqyVqXMqpsDevZfLL1xGtmxqzz875pst+w048L+97KvR5eX2VeF6e/aKE3dUI64FoOAN5XgG9vBt+HVT1sHfnwvSuxoMaSZ/VLy9OzG6m82F9htcj3ozEv6nh79fIjN6NrDfXF/9WY7xf43m53BcYwrml45enp8Xdca2+PHjegun7NfLmHH/eWvc5Lm/E9Ztq2KP34/n2Qb1fY75fY3q/HM3xsQqCxZ/d+v5IXG4u+oqrvhpvpDE/MpAcHzusedyDrcOa9nh/IDcnqHCd8nzz4/1Tw8dnD8mLFW7m4q7Cywe1Pn1Qb6dzcoZPfX86b+03ey90vH0x+cZ+Q+5mY1wd/5yOybmRj99QJK9rleclxyPeK3J33WZ6XUk/b+nfH8zNnNqb/bBH2Xh3MLdFqvoEsefrdXyoiMh1Sf7MMz8wI8+fupr28cbFz/PtF7txc55O6Tl9vsnLtfBx7/iLEncOfL6te9k8/L29iLv7Xl6WivPrm/M85O6mta57PZ1vr5p+WeLmVT6SC/L0erfE3V6EXve9YePTJd7cff+mEllXifmxElxBPuPHBlKPN/e97x+R2zczrqnwePesmJ8+K/Lx+bNifv6smJ8/K+bnz4r5+bNi/p+eFTPken2f754Vt3dY+Oox3j2xsu6UN/PSpsa7l+J5MxXBPW++f/tfd/d53qdmzffv/uvu0vN5a9Pi1Zt3EOrOm/OSdz5u3nK8q5G8+Zpj1qdrvH0H9zfVqOsKNms+PljD5lUjv6DGR/fj7Xw88mPnx/MZSp8fdvNW2W2Ncb2V4DHef3NnyufPsbsarx7b+xqvHduXa3x0P17sl1dr3J0fL9e467k7nz+ud5rG++8eztsLUEmuQNXff2NZHrevCy7c97nWB3fm+eb4tTPP5683O3PTvc837sb1Ht6ojxaJeRW5eXxxPx67HqM883jc7Mq4ez/xkdeLldvHikyebs3nQf+CIvr4cJHrrBW7G87nL09FPn99+iuD4c1efbzfg7dXRDq4kZz+7hWRiN2e9Nc5wm48H2G/XoJnsPPNLfVvLIEFHh/cjQouzT64GzXisyUmJvrwSJ4mfPvuz4eL1FXk7cOA31hEv6DI9Wj62Zvjw0XklSK375qYXzti9e67JqLjTiCP4Fn9Wzd/8x7S8zXp7p6MR4BvbuqGfVPi5s34vM6Rknrv+YjcPm968QHJ+V7TZ5+QyN1Dp9cekZxv3n32GYncPXV69SHJ/Z68+La+2Be8ry/26Tf2b0u8+r683D03evGN+fsJefGd+du2i+vWu95cav5b2/ndFatc7/8+35GIdxvPP//Oqfjn3zq934/X3iV7vcb7b5P9So2X3ie7r/HaG2X3NV57p+z+/FC7zg+N98XsX3CROr7gItXnF5wf8wvOj/kF58f8gvNj/h+fH/YInqG/u7BBRn7B+VGfPz9u9+PF8+PlGjfnx32N186P2xovnh+3Nb7k/LhuyJ7XqPru+RHj8+dHxOfPj9v9ePH8eLnGzflxX+O18+O2xovnx22Nrzg//HoiL/5mfda350fa58+P9M+fH7f78eL58XKNm/PjvsZr58dtjRfPj9saX3J+XLeWMuTx7vlRX3B9Wl9wfVpfcH1aX3B9Wl9wfVpfcH1a/9fXp8WT2PKb69PbGnW9Rs2bc2w+Pv84V26fUb30PPd8q/VzD3Rl2uef6Mr0zz9uuy3y6jOql4vcPWC6L/Lik79fKfLao7/Xi3x4T158cHd/nrz4ZPe+yIuPdvVhnz/Zbou8eoh/pchrh/j1Ih/ekxd75+Uid+fJ60VuG1A/+4hXRb7iGa+KfsUz3l/Zm1cf8qr45x/y/kqR1x7y/sqAXn3Kq5Kff8p7W+TVp7yvF9HHh4u89JRX9fMXsKqfv4D9lcG89pT3/krpxce8evfY6rXHvLclXnvM+yslXnrM+ysjeeUx732Jlx7z3o/ktce8tzVefcz7a0Veesz7a0X0C4q89pj314q89Jj39jGPCBOrb0T0789X74pwVS9vHyh+W0St7h7S5vVKXm86d35TYt7uB+0f+q6H7najrt/pK/eb3bgrcZ3w9ebXBX5TiRmcHw95v4bfvUWSg98OL3tfhv4Fv9Wn/ulf63teNX3+mbX6F/xi3/2evPjMWu8ej7z6zFrvnlu99sz6tsSrz6x16KefWd9PyFc8s35e6l6Ct7e/WfybZGbXBevzDeT3V5zouDtJHvM6Sd6ead+87aN3j0heXXOid8+uXu7fu8VAL/ZvPL6gf0O+oH9v9+TV/g37gv4N/3T/3pV4uX/vnl+92r+3E/Jy/94+jPPrIuCZ493fXNS7X+LR4838q/mGv/tLlJq3b9zikoq39zT+W3aFt9Sf+c0Fxb/tit5eg+t1SzLizRH69hc6b19xrk+geD6s4mrgmwV9evcg63nw5psVG2/eV3jezn5T5u4w81xuuHN1E9/uyt0z18d1Kx+PN58Y8281bp+FX++F/WJW7bfsxnUNHiI3u3F3kgRCiprvvlbc/q7Vq68Vd89MXn6tuHuY9eJrRdkXvFaUf8FrxW2RFz/FQSs+rfm7Ei9rvj7/O//3hyaud4v07eO9f9uR+fiCWb17nvXirL5YIu/m9O5sn3Wd7eODZ/ur1yNzfMH1yPz8iXpb4rLy1PhYiZfP9btfC3r1XL+d0xcvae5fIETffHZUvvcCYY/bk6yPrb95sPDtR//9ym7k9XKp6u/vxu2DvbjWaz7zsPcuQ+wxvuBi5lf2JUfxCOrN2/D/VuXuPec3LxFv10z8hk9lHOO6hHjuBiW+/fymu1+0evlTP36lCksNnt9o+sEq8/ocvePDQz6+L699BMndpwZZH+EZb96Y/PZzh2734ws+xWSM60bgeYjf/4iuu6uz8yJjnfL2+KbE759f/vHPP/78yw/DPj+q+Phs6OPDT49Pcq69nWt7fPKtnx9uvLe6t8cn/B7/7nt7fMKvrc9SPbfHJ/yO9Wmq5/b4hN/jU20feyt7q+v7z4+8Pj/1dm/H8Qmmx2fM7m3ube3tXNvj83PPreyt7q3tre/true7nu96vuv5rjd2vbHrjV1v7Hpj1xu73tj1xq43dr2x68WuF7te7Hqx68WuF7te7Hqx68WuF7te7np51HvO6/HJu+fW9vao97Tn8bG75zb2Nve29nau7z8+cffc7nrHJzgf/358gvO53fVq16tdr3a92vVq15u73tz15t6/ufdv7npz15u73tz15q53fEr3sZXjU7pXkA7aYdd8PirpMDpEh+xQ/VNdWbqydGXpymIdvMPoEB268tEy0R8TH/058StIh66sXVm7snZl7cqaHXqftffZep+tK5t26Nmwng3r2bCubF3ZurJ1Ze/K3rPhvc/e++y9z96VvefZeza8Z8N7NkZXHl15dOXRlUdXHj0bo/d59D6P3ufRlaPnOXo2omcjejaiK0dXjq4cXTm6cvRsZO9z9j5n73N3mmTPc/ZsZM9G9mx0u52fgn+G6srVlbvlpHtOuumku0667aS6cvU8d+dJt550752flH/+1OzK3X7S/SfdgNIdKN2C0j2o3YPnJ+Uflc9Pyl/BOniH0SH6p7JDdejK3YPaPajdg9o9qN2DKl1ZokN2qA57Ns7P1z9/Srty96B2D2r3oHYPavegdg9q9+D5iftnZXt06NnoHtTuwfMT98+fsq7cPajdg9o9qN2D2j2o3YPaPajelb3nuXtQuwe1e1C9K3tX7h7U7kHtHtTuQe0e1O5B7R7U0ZVHz3P3oHYPavegRleOrtw9qN2D2j2o3YPaPajdg9o9qP1ap/1ip92D2j2o3YPaL3jar3jaPajdg9o9qN2D2j2o3YPaPXj+7YKzcvU8dw9q96B2D64/YHD81OzK3YPaPajdg9o9qN2D2j2o3YM6d2V7PDpIB+1gHXbl8+8frBAdskN12LNh3YPWPWjdg+efTTgri3cYHaJDdujK0pW7B6170LoHrXvQugete9C6B027slaHno3uQesePP8Ow/lT1pW7B6170LoHrXvQugete9C6B88/yHBW9p7n7kHrHrTuQfOu7F25e9C6B6170LoHrXvQugete/D8ow1n5dHz3D1o3YPWPXj+0Ybzp6Irdw9a96B1D1r3oHUPWvegdQ9adOXsee4etO5B6x60vuS0vua07kHrHrTuQesetO5B6x607kGrrlw9z92D1j1o3YPWF6DnH384Q/egdQ9a96B1D1r3oHUPWvegza48e567B7170LsHva9F/WEdvMPoEB2yQ3XY++zdgy5dWbSDdfAOo0NXlq7cPejdg9496N2D3j3o3YPePejalTU6ZIfq0LPR16JuXbl70LsHvXvQuwe9e9C7B7170K0re89z96B3D3r3oPe1qHtX7h707kHvHvTuQe8e9O5B7x700ZVHz3P3oHcPeveg97Woj67cPejdg9496N2D3j3o3YPePejRlaPnuXvQuwe9e9D7WtS7B71fB71fB7170Pta1LMr972fdw9696B3D3q/DvrZg3WE42/wyBGiQ3aoDnOHowdXkA7awTp4h648u/LsyrMrz115PB4dpIN2sA7eYXSIDtmhOnRl6crSlaUrS1eWrixdWbqydGXpytKVtSsfPZjnuwrawToclf0Io0N0yA7VYe6fOnpwha589OD5PUcPrtCVrStbV7aubF3ZurJ3Ze/K3vvsvc/elb0re1f2ruxd+ejBMxw9uIJ06H0eXfnowRVGh+iQHbry6MrRlaMrR1eOno3ofY7e5+h9jq58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2ApacdyKmSxmcjKTE9qENqFNaBPaZCYnY5uMDZesda8nba173VGJRnTioEIQk1hEaLhEcIngEsEla93roskgBjGJRYSm0HCJ4BLBJYJLBJcILhFcsta9Lppex01wieASwSVr3euqYNBwieASwSWCSwSXCC4RXLLWvS6ac9xwieASwSVr3euuAA2XCC4RXCK4RHCJ4BLBJWvd66INjhsuEVwiuGSte10VAhouEVwiuERwieASwSWCSyShJccNlwguEVyy1r3uCtBwieASwSWCSwSXCC4RXLLWvS5acdxwieASwSVS0CY0XCK4RHCJ4BLBJYJLBJesda+LNq/jprhEcYniEr3ucWyte91xEIOYxCJeY1NcorhkrXtdNDGiEwcxiNAEGi5RXKK4RHGJ4hLFJYpL1rrXRdMkFpGZxCVq0AwaLlFcorhEcYniEsUlikvWutdFc44bLlFcorhEHZpDwyWKSxSXKC5RXKK4RHHJWve6aIPjhksUlygu0QEtoOESxSWKSxSXKC5RXKK4ZK17XbTguOESxSWKSzShJTRcorhEcYniEsUliksUl6x1r4tWHDdcorhEcYkWNFyiXJco1yWKS3RCm9AmNFyiuERxiXJdsta91vMNNlvrXo8/TmJr3euOSjSiEwcxiEks4ryiQBNoAk2gCTSBJtAEmkATaApNoSk0habQFJpCU2gKTaEZNINm0AyaQTNop0uOP8xia93rjkU8aXHE0yU7ClGJRvSrwumSHaGdLtnfW0RoA9qANqANaAPagDagDcY2GNuAFtACWkALaKdLdhzEIDK2gHa6ZMXTJTsKUYnQElpCS2gJLZnJZGzF2IqxFbTTJTsyk8VMFjNZ0ApaQZvQJrTJTE7GNhnbZGwT2uS4TWZyXjO51r3ueNHWutcdjejEQQxiEot4jW2te100EaISjehEaAJNoAk0gaYPImNTxqaMTaHpIAYxiUWEZtAMmkEzaMZMGmMzxmaMDZesda8rOjPpzKQzk7hkrXvdEZpDwyWOSxyXOC5xXLLWvS7a4LjhEscljkvWutddARoucVziuMRxieMSxyWOS9a610ULjhsucVziuGSte10VEhoucVziuMRxieMSxyWOS9a610UrjhsucVziuGSte90VoOESxyWOSxyXOC5xXOK4ZK17XbTJccMljkscl6x1r2eFte51RyEq0YhOHMQg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",
2017
2017
  "verification_key": "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"
2018
2018
  },
2019
2019
  {
@@ -3865,7 +3865,7 @@
3865
3865
  }
3866
3866
  },
3867
3867
  "bytecode": "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",
3868
- "debug_symbols": "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",
3868
+ "debug_symbols": "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QAtoAS2gBbSAltASWkJLaAktoSW0hJbQElpBK2gFraAVtIJW0ApaQStoE9qENqFNaBPahDahTWgT2myan+teOwpRiUZ04iAGMYlFhCbQBJpAE2gCTaAJNIEm0ASaQlNoCk2hKTSFptAUmkJTaAbNoBk0g2bQDJpBM2gGzaA5NIfm0ByaQ3NoDs2hOTSHNqANaAPagDagDWgD2oA2oA1oAS2gBbSAFtACWkALaAEtoCW0hJbQElpCS2gJLaEltIRW0ApaQStoBa2gFbSCVtAK2oQ2oU1oE9qENqFNaBPahIZLBJcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFcIrhEcIngEsElgksElwguEVwiuERwieASwSWCSwSXCC4RXCK4RHCJ4BLBJYJLBJcILhFccq571SFnPGjH46H8XPfa0YkHLfKMBy1WhSQetBpnnFc8XbKjEA/ajDMa8aDNs9jhEnvoGYOYR/Qz1hHXj80rHi6xR51RiE+ayeOnb7/53z//+P2f//LDd//zzR/+/fzyv/71t7/+8/u//21/+c//94/+l7/8+P0PP3z/33/6x49//+t3//mvH7/70w9//+vxb988jv8cx/5/SHyr8sfnN8v+//+hI7/VjD8+3+OPf39u9LMfnl+d3642v1X340s5vvT6Vsfj+Hntn38eFd+66f55Hc/viOqff57ufft8M++ff74/PL+M4+ft+PnjJ+z48f5+f/77PP7Zf73Fo39C/Vvz6yce3/o4/jmun1B5bsLxv5IizzHqH3/66ac//vT/AQ==",
3869
3869
  "verification_key": "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"
3870
3870
  },
3871
3871
  {
@@ -4117,7 +4117,7 @@
4117
4117
  }
4118
4118
  },
4119
4119
  "bytecode": "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",
4120
- "debug_symbols": "tb3fruy6dWf9Lr7Ohcj5j8yrNBqBk3Y3DBh24Dgf8CHIu3dxSuSovU8Xl1bVPjc+w/ZZc0iU+JNEUaz/+sP/+tO//uf/+Zc///V//+0//vDP/+O//vCvf//zX/7y5//zL3/527/98R9//ttfH//rf/3hGP9RSv/DP8s//aHUx3+18c9y/bNe/5Trn3r9065/+vXPuP7Zrn/2859y1ZOrnlz15KonVz256slVT656ctWTq55e9fSqp1c9verpVU+venrV06ueXvX0qmdXPbvq2VXPrnp21bOrnl317KpnVz276vlVz696ftXzq55f9fyq51c9v+r5Vc+venHVi6teXPXiqhdXvbjqxVUvrnpx1YurXrvqtUe9GP+s1z/l+qde/3zUK8cAnxATHiXLOFfao2YZ/3I/JpQJdYJM0AmjchvgE2JCm9BPqMcxoUyoE2SCTrAJo3IfEBPahFH50QC1HBPKhEflmiATdIJN8AkxoU3oF4wudEKZMCvXWbnOyqMf1RjgE2JCm9AvGJ3phDKhTpAJOmFWlllZZmWZlWVW1llZZ2WdlXVW1llZZ2WdlXVW1llZZ2WblUcPq+MQjC52gkzQCTbBJ8SENqFfMLraCbOyz8o+K/us7LOyz8o+K/us7LNyzMoxK8esHLNyzMoxK8esHLNyzMoxK7dZuc3KbVZus3Kbldus3GblNiu3WbnNyn1W7rNyn5X7rNxn5T4r91m5z8p9Vu5XZTmOCWVCnSATdIJN8AkxoU2YlUcflDqgTKgTZIJOsAk+ISa0Cf2COivXWbnOyqMPig3QCTbh6t1SY0KbcPVukWNCmVAnyASdYBNmZZmVZVYefVD8AaMPnlAm1AkyQSfYBJ8QE9qEWdlmZZuVRx+UcQhGHzxBL/ArD2X0Jj0GPFw6mm70nRNiQpvQLxh954QyoU6QCTphVo5ZOWblmJVjVm6zcpuV26zcZuU2K7dZuc3KbVZus3Kblfus3GflPiv3WbnPyn1W7rNyn5X7rNyvynocE8qEOkEm6ASb4BNiQpswK5dZuczKZVYus3KZlcusXGblMiuPvqM2oF8w+s4JZUKdIBNGZR9gE3xCTGgT+gWj75xQJtQJMmFWHn1HY4BPGJXbgDahXzD6zgllQp0gE8atUhlgE3zCuFuSAW1CvyBvEMf25B1iQp0gE3SCTRiVxzbnfWJCm9AvyFvFhDKhTpAJOsEmzMp5xzj2K28ZE/oFeZOoA0adPuDxVz72dPQvz/+rTegXjP51QplQJzzq+Djuo3+dYBN8QkxoE/oFo3+dUCbUCbPy6F8+mm70rxNG5bHxo3+d0Cb0E2z0rxPKhHFDewyQCTrBJviEmNAm9AtG/zqhTJiVR/+KMkAnjMp1gE+ICW3CqPzYLxv964QyoU6QCTphVI4BPiEmtAn9gtG/TigT6gSZoBNm5dG/og2ICW3CqPw4AWz0rxPKBJ8w/mq0/Ogpbezp6ClNBtQJMkEn2ASfEBPahH7B6CknzMo+K/usPDpIG9szOsgJMaFN6BeMi1QbOzguUifUCTJBJ9iEUXns6ehEJ7QJ/YLRiU4oE+oEmaATbMKsPDpRH+fY6EQn9AtGJ+rjZBud6IQ64VG5j0YYnaiPHRydqI/zZ3SiE2JCm9BP8NGJThh1+gCdYBN8QkxoF4wzvBx1UJ80zvFyyKDxmHbYIF1ki3xRLGqTJP+3sWXSFvVJeiwqi+oiWaSLbJEvWg5dDl0OWw5bDlsOy3oxKP+2DRp/O56TfZy1F5VF429LGSSLdJEt8kUxKbLeaN3Ivx2tG/m3Y1vCFvmi/NvRkuNEvahPaseisqguSsfYt6aL0jH2MkcFTopJOQowHrI9H/rr2N986j8p/1YHjb+tY4/ywf+ktqhfFPnsX+ugsqguSocM0kW2yFeVWNQWLUeOApxUrnaOUhfJIl1ki3xRv45M1HodmcjzfhyFqLrIFvnVzlFjUVs0j1HIsagsqtfxCJFFeh2FEFvki/p1ZCL7xzgeobJIryMT2T+yNXS1n67209V+2T/yKNg6RraOUfaPPAq2jpGtY2TLYcthy2HLYesY5Vk8HpUiz+KT+qQ8i8cAQ+RZfFJdJIt0kS3yRbGoLRoOGVuQZ/ZJZVFdJIt00XCMZ8rIs/2kWNQWpeNxRrQ8208qi9IRg2SRLkpHG+SLYlFblI7H0W95Zo9HupZn9km6yBaNeuPpoI3bmMfY6qBRT3VQn5Qpf1JZlA4bJIt0kS1Kx9iPPO91bF+e9za2IM97G1uQ572Nv8jz/iRZpItskS+KRcMx7sxb9oWkvH6MW+mW14+T6iJZpItskS+KRW1Rn2TLYcthy2HLYcthy2HLYcthy2HL4cvhy5HXmfEs0PI6c5IuskW+KBa1SZH1xpGJukgW6SJb5ItiUVvUJ2WvPWk52nK05WjL0ZajLUdbjrYcbTn6cvTl6MvRl6MvR1+Ovhx9Ofpy9Onox7GoLKqLZJEuskW+KBa1RctRlqMsR1mOshxlOcpylOUoy1GWoyxHXY66HHU56nLU5ajLUZejLkddjrocshyyHLIcshyyHLIcshyyHLIcshy6HLocuhy6HLocuhy6HLocuhy6HLYcthy2HLYcthy2HLYcthy2HLYcvhy+HL4cvhy+HL4cvhy+HL4cvhyxHKuf99XP++rnffXzvvp5X/28r37eVz/vq5/31c/76ud99fO++nlf/bxnPx9DFT37+UmxqF/Z1M/enVQW1UWySBfZIl8Ui9qi6SjHcYAFrKCAChroYIANxFawFWwFW8FWsBVsBVvBVrAVbBVbxVaxVWwVW8VWsVVsFVvFJtgEm2ATbIJNsAk2wSbYBJtiU2yKTbEpNsWm2BSbYlNshs2wGTbDZtgMm2EzbIbNsDk2x+bYHJtjc2yOzbE5NscW2AJbYAtsgS2wBbbAFtgCW8PWsDVsDVvD1rA1bA1bw9awdWwdW8fWsXVsmSNjWPSBDgY4bGMI84F9YsksuXDYxqjnAysooIIGOpi2ntjAvjCz5MICVlBABQ10EFvBVrBVbBVbxVaxVWwVW8VWsVVsFZtgE2yZJd4SBVTQQAcDHLYxnltyusmFmSUX5vSGmlhBARUcdWNMk8g5JleFzIcLK5gV8sBmPlxo4NjeyHMn8+HCBvaFmQ9jYLfkJJSJFRQw6+bOZ5+PbMns8xcWMNs3/yz7/IUKGuhggA3MCR5jNknOSJlYwAoKqKCBDgbYQGwdW8fWsXVsHds5aSUP1jlJJY/xOU1l4DVR5cQCVlBABQ10MMAGYivYCraCrWAr2Aq2gq1gK9gKtoqtYqvYKraKrWKr2Cq2iq1iE2yCTbAJNsEm2ASbYBNsgk2xKTbFptgUm2JTbIpNsSk2w2bYDJthM2yGzbAZNsNm2BybY3Nsjs2xOTbH5tgcm2MLbIEtsAW2wBbYAltgC2yBrWFr2Bq2hq1ha9gatoatYWvYOraOrWPr2Dq2jq1j69jIkkqWCFkiZImQJUKWCFkiZImcWSKJATawLzyz5MQCVlBABQ1MmycG2MC0jXsjObPkxAJWUEAFDXQwwAZiE2xnlrTECgroYFYYFyo58+HEUaFn+2Y+XCigggY6mNMRs0kyHy7sCzMfLkxbijMfLhQwbbm9mQ8XOpi2ntjAvjDz4cIxmek4Esd0piO3NyfNHXmMc9rchQE2cEyQGm/tSk4BqkfuRU6gO3JzcgrdkbacRHehggYOW042zQlBExvYF+aUupLbm3PpcmpqzgiqJY98zqcruTk5o66kIufUXRhgA/vCnFt3YQGHreY25Ay7C22dRp0z6uzzJzawT9Szz59YwAoKqKCBDgbYQGyjz9fxsqbk9KGJFcwdkkQFDXQwwAb2hTkh9sICVhBbxZZTY2tO1s6JeRcG2MC+MCfoXVjACgqoIDbBJtgEm2BTbDl1tmpiHqGSaKCDATawLzzvFE4sYAUFxGbYDJthM2yGzbE5Nsfm2BybY3Nsjs2xObbAFtgCW2ALbIEtsAW2wBbYGraGrWFr2Bq2hq1ha9gatoatY+vYOraOrWPj+UI7to6tY+vLZscBFrCCAipooIMBNhBbwVawFWwFW8FWsBVsBVvBVrBVbBVbxVaxVWwVW8VWsVVsFZtgE2yCTbAJNsEm2ASbYBNsik2xKTbFRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElRpYYWWJkiZElTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlOR3uMXCT2Bfm5zwXFrCCAipooIMBYjNsjs2xOTbH5tgcm2NzbJklOe7p57hnYj63jKk/DyxgBQVU0EAH09YTG9gX5nOLHIkFrGDacsvyEeZCA3P09iwWYAPXmO45Oe/CAlZQQAUNzLqS2CfmJL06pjyVnKU3sYICKmigg6PN5KzbwL4wn1tEEwtYwbTVRAUNzDZLW6bGhQ1cI/9RD7CAFRRQQQNzL87vNvvCfEK5MPfCEysoYO5FJBqYbdYSA2xg2sZxi3xCubCAFRRQQQOHbUwMKzkbcGID+8LMhwsLOKcdlnP+Xz6uXxMATwywgX2hH2ABKzjnGj5QQQMdzDmXJzawLzyn2p5YwAoKqKCBHPngyDeOfOPIN45848g3jnzjyDeOfOPIN45848h3jnznyHeOfOfId45858h3jnznyHeOfF9HPicwTizgOvLnfMU88ueExXpigA1cR76VAyxgBdeRPyczXmigg+vInxMaL1xH/pzSeGEBKyigggZm65TEvjD7/IUFHMdCcy+yz1+ooIE5Zb0lBtjAvvCcGn9iASsooIJ5jHMvzt59Yl949u4TC1hBARU00EFshs2wOTbH5tjy6q/5uXpe/S800MEAG5i23Pm8+l9YwAoKqKCBDgbYQGyZBGPSa8kZkBMrOGyWZ0kmwfieq+QsyIkOBtjAvjCT4MICVjBtuTBAJsGFafNEBwNsYNrGpuekyIkFrKCAChro4LD5kdjAYRszwkpOj5xYwAoKOBReEx0MsIF9YQ5g5sSLnB45sYICKmhg2jwxwAb2hRkVFxawggIqaCC2vD3wcyWGBvaFeXuQ8x9yyuTECg5bZKufKwBkS55rAGTrnKsAnBhgA/vCczWAE7Nuki6yRb4oFrVJ2YPzBjTnM16YPfjCPO+S6iJZpItskS/KiqNb5FTFmlMwcq6inKSLbNHjr+X8k1jUFvVJoyNeVBalJI9WdsMLs1Fyb7MbXuhgbmbLRTKyQk8UcGynJI0CYyJDzfmIEwNsYF+YPcuSyqK6SBbpIlvUrkasObswG7Hm7MI6Hi9rzi6cOP5+vLisObtwYm5pbv/oMuOmqObkwov6pNFfLiqL6qKsmBuSHaDlhuRH99lK+dX9SWXR+Ots2fzw/iRdZIt8USxKSarzvD8xz/vxGrHmFMGJFczNzAp5mrfckLwYnjguhpL/al4Lz4bJa+GFAio4yvY8mufCFycG2FaDZ086MXvShdgCW2ALbIEtsAW2wBbYGraGrWFr2Bq2vBZe6PNUb5zUjZO6cVLnpfDCMrGcS1vUxAoKOLw9yRb5oljUFvVJ2Y9OKovqIlm0HGU5ynKU5SjLkdeo8cFnzSl4EwuYGk8UMEWSaKCDATawL8xr1IVpy83Ja9SFAqYtEg10cHSeI4/D6KIT+8Lso3kYso+eVBfJIl1ki7LiyJmcfCdH/q+5/sWR258rYFyooIHj5BpvtmtOvpvYwL4we+mFaUtKWba8C6iggQ4G2MC+MA6wgNgCW2ALbIFt9FIpub2jl07sC0cvnVjACg5bydMuL5EXGuhg2rKd8jJ5YV+YF8qSW5ZXygsrmLY8f7qCBjqYtpY4bON5tOY8PRlfGNacpzdRQAXzfJLEUXe85q05T0/GiGLNeXpyrtY0Ov6F5wI3JxYwbS1RQAUNzGTL7c1VbiQ3J9e5yfM7J+eJ5ObkWjd5jcjJeRMFVNBABwNMW25DXmpPzCtsXiRzRt5EARUcCs1NFwcDbGCfXTNn5E0sYAUFVNBAB/POK9ssF8G5sICjrua/m0FwoYK5F3nkMwguzL3IVs8guLAvzCAYHzrWnHs3sYICKmigg2nL8yyT4MK+MJPgwgJWUOaNxLlMVd4QVa7M11JVJ/aF53JVJxawggKuu7hz4aoLHQxw3YmdC1ideF6aTyxgBQVU0EAH5118zfl0Mp73a86nm1hBARU00ME8Fi2xgX1h9vkL151vzqebKKCCBjoYYAP7wuzoY8SgngtbXahgPqMciQ4GOPZiDDTUnDl3Yd5Ujw9wa86cm1jBfB6SRAUNdDDABvaF2ectD1b2+QsrKKCCBmab5R4rR9448saRN468ceSNI28ceePIG0feOPLGkXeOvHPknSPvHHnnyDtH3jnyzpF3jrxz5Ec3jezHOQVuYgErmMfCEwNsYB6L3PS88l5YwHygyhMmr7wXjjbzPB/yynuhg/nkltuQV94L+8Sc9zaxgBUUUEEDHQywgdgKtoKtYMsr7xiyqTmXTcYgSs25bDKGS2rOZZtYwArm9vZEBQ10MMBhGwMjNeeyXZi98MICVlBABQ10MEBsgk2xKbbshWPQp+ZSWhMVNNDBANMmiX1h9s0LHcx/IY/F+cR7Ym7OkVhBAXNz8mDlJfRCB3NzWmID05YHIC+hFw5bDk3kpDTJa1ZOSpN83MxJaRNzMCCPfN5MXxhgA/vCvJm+sIAVTFtuZN5M57U7J6VJXm5zUprks2lOP5N8GMvpZxMLWEEBFTQwi41Wz9llEwtYQQEVNDCLjQOQs8Akn/dyFtjEABuYfzZ2PmeBTSxgBQVU0EAHA2wgNsEm2ASbYBNsgk2wCTbBJtgUm2JTbIpNsSk2xabYFJtiM2yGzbAZNsNm2AybYTNshs2xOTbH5tgcm2NzbI7NsTm2wBbYAltgC2yBLbAFtsAW2Bq2hq1ha9gatoatYWvYGraGrWPr2Dq2jq1j69g6to6tY+vL5scBFrCCAipooIMBNhBbwVawFWwFW8FWsBVsBVvBRpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZMlTpY4WeJkiZ9R0RMVNNDBABvYF55RcWIBK4itYWvYGraGrWFr2Dq2jq1j69g6to6tY+vYOra+bHEcYAErKKCCBjoYYAOxFWwFW8FWsBVsBVvBVrAVbAVbxVaxVWwVW8VWsVVsFVvFVrEJNsEm2ASbYBNsgk2wCTbBptgUm2JTbIpNsSk2xabYFJthM2yGzbAZNsNm2AybYTNsjs2xOTbH5tgcm2NzbI7NsQW2wBbYyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJKc5KX5yiEneWmO0+YkLx0radaczqVjPlLNuVaSL+hyrtVEAx8KHdOuHhhgA/vCXHz6wgJWUEAFDcQm2ASb5r9riQ7GQktb7rwJqGBWyJ0fp73m24ecKTWxgX3hOO0nFrCCAipoIDbH5tgcW2ALbIEtsAW2wBbYAltgC2wNW8PWsDVs5/LveUadC8Cf6GCADewLz6XgTyxgBQXE1rH1ZevnEu+SmP+rJuY2eGID+8JzafcTC1hBARU00EFsBVvBVrFVbBVbxVaxVWwVW8VWsVVsgk2wCTbBJtgEm2ATbIJNsCk2xabYFJtiy36c7+pyctPEABvYF9oBFrCCAiqIzbAZtrPPt8S+8OzzJ2bdnjgq5PvCXP1N831hzpea2BdmP76wgBUUUEEDHcQW2AJb9uN8Z5lrwU2soIAKGuhggA3sCzu2jq1j69iyH+cr1JxqNdHBABvYL5ScgKX5EyI510rzNzZyrpXmb2rkXKuJDewLs89fWMAKCqiggdgKtoIt+/x4jSu59tvEAlZQQAVH3fHeVHLSleZvXeSsq4kVHBXGy1LJ9dwmGuhggA3sC7MfX1jACmJTbNmPNQ9L9uMLA0xbJPaF2Y819zj7sWbzZT++cNgs2yH78YUGDpvlNmQ/vnDYLE+Y7MeW25D92PKEyWu3pTiv3RcKqKCBDgbYwL4w+/yF2AJbYAtsgS2wZZe2bJLsvOOlkOQULfU8CbLzXujg2EjPJsnOe2FfmJ33wgJm3Wy+7JCezZcd0rP5skMm5mJrEwtYQQEVNNDBtEViA/vC7LxjtqzkDK+JFRQwbT3RQAfnraXkRK+JfWF23vEdheRMr4kVFFBBA4dtvDiRnOk1sYF9YXb0CwtYQQEVNBCbYBNsgk2xKTbFptgUm2JTbIpNsSk2w2bYDJthM2yGzbAZNsNm2BybY3Nsjs2xOTbH5tgcm2MLbIEtsAW2wBbYAltgC2yBrWFr2Bq2hq1ha9gatoatYWvYOraOrWPr2Dq2jq1j69g6tr5subTbxAJWUEAFDXQwwAZiK9gKtoKtYCvYCraCrWAr2DJLxqtZydljEwtYQQfzz0aA1DMUTsw5GJboYCw8u7QkFrCCAipooIMBNrAvNGyGzbAZNsNm2AybYTNshs2xOTbH5tgcm2NzbI7NsTm2wBbYAltgC2yBLbAFtsAW2Bq2hq1ha9gatoatYWvYGraGrWPr2Dq2jq1j69g6to6tY+vLJscBFrCCAipooIMBNhBbwVawFWwFW8FWsBVsBVvBVrBVbBVbxVaxVWwVW8VWsVVsFZtgE2yCTbAJNsEm2ASbYDtvD8admJxZcmIBU9ESFTRwKMaIoeQSbBMbOBRjxofklLGJBayggAoa6GCADcTm2BybY3Nsjs2xOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wNW8PWsDVsDVvD1rA1bA1bw9axdWwdW8fWsXVsHVvH1rH1ZTt/1/HCAlZQQAUNdDDABmIr2Aq2gq1gK9gKtoKtYCvYCraKrWKr2Cq2iq1iq9gqtoqtYhNsgk2wCTbBJtgEm2ATbIJNsSk2xabYFJtiU2yKTbGRJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFmiZImSJUqWKFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImRJUaWGFliZImdWVITG9gXnlmiiQWsYNo8UcG09UQHA2xgX5hZMqZ+Sk7fmzhsPbc3s6TnlmWWXDhsY2an5PS9iQEOW7fEvjCz5MK0RWIFBVTQQAcDbGBfmFlyIbbAFtgCW2ALbBkVYyqP5Dw87dl8IxTsyDYboTDRwQDbwGy+EQoXjlCYWMAKysBs1J62bL5uoIMBpi23d4SCjY/pJOfhWY7W5Ty8icM2vqCTnIdn46Wx5Dy8icM23h9LzsOzehaLhaN323hZKjmhzsbbSckJdRMdHJtT0zZ6rOXPleckuYkKGuhggA3sC0ePnVhAbIJNsAk2wSbYBJtgU2yKTbEpNsWm2BSbYlNsis2wGTbDZtgMm2EzbIbNsBk2x+bYHJtjc2yOzbE5Nsfm2AJbYAtsgS2wRdryTA0HA2xgX9gOsIBp64kCKujr/M3efWEDOcGzd19YwAoKqKCB2Dq2jq0vW06dm1jACgqooIEOBthAbAVbwVawFWwFW8FWsBVsBRtRkVPnJmKr2Cq2iq1iq9gqtoqtYhNsgk2wCTbBJtgEm2ATbIJNsSk2xabYFJtiU2znj86XxAb2hRkg+YI5p85NrOCw5bvmnDo3cdjyZXROnZsYYNoisS/MALmwgBUUUEEDHQwQm2MLbIEtsAW2wBbYAltgC2yBrWFr2Bq2hq1ha9gatoatYWvYOraOrWPr2Dq2jq1j69g6tr5sue7axAJWUEAFDXQwwAZiK9gKtoKtYCvYCraCrWAr2Aq2iq1iq9gqtoqtYqvYKraKrWITbIJNsAk2wSbYBJtgE2yCTbEpNsWm2BSbYlNsik2xKTbDZtgMm2EzbIbNsBk2sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJElnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknSzpZ0smSTpZ0sqSTJZ0s6WRJJ0s6WdLJkk6WdLKkkyWdLOlkSSdLOlnSyZJOlnSypJMlnSzpZEknS/rKEj1WluixskSPlSV6rCzRY2WJHitL9FhZosfKEj1WluhxYCvYCraCrWAr2Aq2gq1gK9gKtoqtYqvYKraKrWKr2Cq2iq1iE2yCTbAJNsEm2ASbYBNsgk2xKTbFptgUm2JTbIrtzJKW2BeeWXLisI3lgDTnWk4UcNjG9FPNuZYTHQxw2MZMVM25ljYmhGrOtbQx9VNzruXECgqooIEOBtjAvjCwZZaMpXg051pOFFBBAx0MsIF9YWbJhdgatoYts2QsVKQ5RXOigwE2sC/MLLmwgBUUEFvHllmieWpkllzYwD4xp3NOLGAFBVTQQAfT1hIb2Bdmalw4Kox1cjSnaNqY3qs5RXNiA/vCzIexTo7mFM2JFRRQQQMdDLCBfaFgE2yCTbAJNsGW+TAmKWtO0ZyYNkvsCzMfLkxbNmrmw4UCKmiggwE2sC/MfLgQm2EzbIbNsBm27P6WBzY7+pi6rDnX0jyPcXb0Cx0McGykZ5tlRz8xO/qFBazgsHluQ3b0Cw10MMAGpi03PTv6hQWsoIAKGuhggA3Elh3ds6Gyo19YwWGLPO2zo184bGPxFs25lhOHLfLcyY5+4bCNqTyacy0nFrCCAipooIMBNhBbwVawFWwFW8FWsBVsBVvBVrBVbBVbxVaxVWwVW8VWsVVsFZtgE2yCTbAJNsEm2ASbYBNsii1DYSxRrDnJc6KACqatJzoYYAP7wgyFCwtYQQEVxGbYDJthM2yOzbE5NseWqTHmlGlO3LTxKllz4ubEUWG8P9acuDlRQAUNdDAWZhKMdYg0J2NeB6DRvtnnL3QwwLHH42215mTMC7PPX1hAzp2OrXPudM6dzrnTOXc6587Z58c2yNnnTyxgBWVuQ07GnGjgsgl9XujzQp8X+rzQ54U+L2WdqVIUNNDBWNtQGrhaUujzQp8X+rzQ54U+L/R5oc8LfV7OPp/bUGlJoSWFlhRaMvv8WB9RczLmxGzJrJt9/sIAG5j7Ns71nIw5sYAVFFBBAx0ctjGnQXNe5oW2TvCcjGljpoPmZMyJAirIqZEd/UIOlnGwjIPlB1hADpZzsJyD5Rws52A5B8s5EZ0TMTg1svuP+Rqa0y4nGjjq9myH7P49tyxvDy7sCzMULixgBQVU0MCsm6dGhsKJGQoXFjDr5l5kKFyooIF5J5aHO0Phwgb2iTnBcmIBKyhg3tu3xAAbmHuRmN3/wkddHzM+NKdSThRQB5ZEAx2MgTWxgX3h6P4TC1hBARU00EFs51vP3IbzreeJFRRQQQMdDLCBfaFiU2yKTbEpNsWm2BSbYlNshs2wGTbDZtgMm2EzbIbNsDk2x+bYHJtjc2yOzbE5NscW2AJbYAtsgS2wBbbAFtgCW8PWsDVsDVvD1rA1bA1bw9awdWwdW8fWsXVsHVvH1rF1bH3Z7DjAAlZQQAXnRCe1w8EAsx9bYl9YDjD7cUusoIDZj3uigQ4G2MC+8EyNEwtYQQGxVWwVW8VWsVVsgk2wCTbBJtgEm2ATbIJNsCk2xabYFJtiU2yKTbEpNsVm2AybYTNshs2wGTbDZtgMm2NzbI7NsTk2x+bYHJtjc2yBLbAFtsAW2AJbYAtsgS2wNWwNW8PWsDVsDVvD1rA1bA1bx9axdWwdW8fWsXVsHVvH1pct51pOLGAFBVTQQAcDbCC2gq1gK9gKNrLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyZIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJIgS4IsCbIkyJJGljSypJEljSxpZEkjSxpZ0siSRpY0sqSRJY0saWRJI0saWdLIkkaWNLKkkSWNLGlkSSNLGlnSyJJGljSypJEljSxpZEkjS3Jmp48PazRndk6s4LCNb2w0Z3ZOHLax6I7mzM6JAQ7bWNpRc2bnhZkl4ysdzZmdEyuYtkhUMG2e6GCAacsdyiw5MbMkn25zZufEYctH2pzZOVHBYau5vZklFwbYwL4ws+TCAlZQQAWxOTbH5tgcW2ALbIEtsAW2wBbYAltgC2wNW6ZGzVbPfKh5hDIfxpJ7mrM1J/aFmQ8Xju2VPLkyHy4UUEEDh03yLMl8uLCBfWLO1pxYwLRZooAKGuhggA3sCzMfLiwgtsyH8QmC5mzNiQamrSUGOGw5aSdna16Y+ZDzd3K25sRhy6k8OVtzooIGOhhgA/vCzIcLC4hNsAk2wSbYBJtgE2yKTbEpNsWm2BSbYlNsik2xGTbDZtgMm2EzbIbNsBk2w5b5kBN8crbmxAoKmLY8NTIfLnQwwAb2hZkPFxawggJiC2yBLbAFtsDWsDVsDVvD1rA1bA1bw9awNWwdW8fWsXVsHVumxpjoZDkD08cbEMsZmBOzQk8UUEEDHQywLcwkGPOjLGdV5klgOasyj7HlrMqJATZw7PGYNWU5q3JiASsoS1GxrT5vx+rzdqw+b8fq83asPm/H6vN2SFmbIxUUUEH2Lfv8mEBlOaty4rDZWbcvzD5/YQFz3zxRQAUNdDDABvaF2ectT4Ls8xfKOljZ0S3Ph+zoFzoYYFsHwDhYzsFyDpZzsLKjX6ggB8s5WM7Bcg6Wc7CCgxUFrCCnRnZpy9Mzu/SFDRx1Pdshu7TnlmWXvrCCAipooIMBtoXZeT1Pjey8FwqoYNbNvcgbgQsDbGDedowDm9MjJxawggIqaKCDsTBflo4v2i3XtZxYQQEVNNDBABvYF1ZsFVvFVrFVbBVbxVaxVWwVm2ATbIJNsAk2wSbYBJtgE2yKTbEpNsWm2BSbYlNsik2xGTbDZtgMm2EzbIbNsBk2w+bYHJtjc2yOzbE5Nsfm2PIV6nj/ZudcywsLmD3LEwVUMG2a6GCA2bPytD/zIfHMhxPT1hIrKKCCBjoYYAP7wnOJiROxdWwdW8fWsXVsHVvH1pftnGt5YQErKKCCBjoYYAOxFWwFW8FWsBVsBVvBVrAVbAVbxVaxVWwVW8VWsVVsFVvFVrEJNsEm2ASbYBNsgk2wCTbBptgUm2JTbIpNsSk2xabYFJthM2yGzbAZNsNm2AybYTNsjs2xOTbH5tgcm2NzbI7NsQW2wBbYAltgC2yBLbAFtsDWsJEllSypZEklSypZUsmSSpZUsqSSJZUsqWRJJUsqWVLJkkqWVLKkkiWVLKlkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZAlQpYIWSJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWaJkiZIlSpYoWZLTRN1PVNDAYRsvm+ycJnphPnX0xL4wRzsuHLbx1sjOaaIXjn0br6DsnCZ6oYFpS3FmyYXDNr7PspwmemE+41w4Rg8iK+QYyIUCKmiggwE2sC/MYc0LsXVsHVvH1rF1bB1bx9aXLaeJTixgBQVU0EAHA1y2c0Lo+LzNzqmf45s2O6d+jtn9dk79vDDABub2jiN0Tv28sIAVFHDYxrdGdk79vNDBYRufHdk59fPCvjCHQC8sYAUFVNBAB7EJNsGm2BSbYlNsik2xKTbFptgUm2EzbIbNsBk2w2bYDJthM2yOzbE5Nsfm2BybY3Nsjs2xBbbAFtgCW2ALbIEtsAW2wNawNWwNW8PWsDVsDVvD1rA1bB1bx9axdWwdW8fWsXVsHVtftnPq54UFrKCAChroYIANxFawFWwFW8FWsBVsBVvBVrAVbBVbxVaxVWwVW8VWsZElTpY4WeJkiZMlTpY4WXJO/RyfMNo59fNCBwNsYF94ZsmJBUybJQqoYNok0cEA0xaJfeGZJScKyL9r/LvOv3smwYkVpMKZBD3RQAfHlo1P4eycuHlhX5hJcGEBKyigggY6iC2wZRL0bN9MggsLWEEBFTTQwQAbiK1j69g6to6tY8sk6HmeZZ/veWCzzyeeUzQvLGDW1UQBFTQwr+iWGGAD+8Ls8xcWsIICKpitc2ID+8Ls3RfmXnhiBQVU0K4lkS0nY04MsIF9Ya6sfWEBK5itE4kOBtjAvjD78YW5vS0xK2Td0TdjfI5nOZVyYl84+maMz/Esp1JOrANrooAK2sA88uM6PzHABvaFfoAFTFueGi6gggY6GOBo9cgtO/txtsPZj0+kdSLr5pEPAx0MsIG5F3kStAMsYAVzL9LWFDRw2PIRJidNTmzgsJU8FqMfTyxg2vLIj34cJXd+9OPIR5icNBn5uJOTJifGxJweGWPGneX0yIkVFDDremLMk+ucCHlhX5g99sIKjo7jKT5/rO/EAMch9LTlAvgn5gL4FxawggIqaKCD2aijzXJG48QCVjB3viUqaKCDuRdHYgP7wlzq/sICVlBABQ0cdcfULmvnL20mZuct2b7ZeS+soIBjL2oWy857oYMBNrAvzEXtx0QyO38l+8IKCqiggQ4G2MC+cHTeqLmbo/NOVNDA3IvzzwJsYF94/o5unsrn7+ieWEEBFTTQwViY3XTMDbWcuzixggIqaOComzMHcu7ixAb2iTl3cWIBx16M+ZN2/Xb2iQoa6GAsLLkXmpjba4kKGpjtcCQG2MC+8PzF3BMLWEEBFTQQW8VWsVVsgk2wCTbBlv14TFW1nHk4sYF9oWbrZFNrASsooIIGOhhg2vIA5KX5xOzdFxYwbT1RQAUN9HWwzt59YgP7wrw0X1jACnI+OOdDXoTPlhz9eGJfOG6xYyzIbTnHMMZvRlvOMZwooIJjL0QSHQywgWnLI5SXZsmGykvzhRUUUEEDHQywgX1hx5Z9PlM55xhOFFBBAx0MsIH9Qs/5iDGmznnOR4wxYdFzPuJEARU00MEAG9gXZhJciK2krScKqKCBDgbYwL6wHuCwjbmAnnMXJwqooIEOBtjAYRsLr3nOXZxYwAoKqKCBDmZ6piKv/hf2hXn1v7CAFcy62b6ZBGO6oed8xAvzx2tqHvn88ZoLKyigggY6GGBbmH1+TFj0nIQYlsci+/yFChroYIANHHsx7mE8JyFOLGAFh83zXM8kuNBABwNsYF+YSeDZvpkEY9af59TEiQIqaKCDsY5F4wg1jlAmwYUFrKCAChr4qCuRttHnT8ypiRNzLyyxgrkXkaiggbkXLTHABo69GL9s6zlhcWIBKyjgsJ1bln3+QgcDbGBfmH3+wgJmXU2MsfOJ2WMj9zh77IUVzC3zRAVzy7IdssdeGGBuWbZDXudPzOv8hQWsoIAKpq0nOhhgA/vCvM5fWNYe5xW9ZVPnFf1CBwMcdcfYoOfEwgvzin5hAR97IZ6tM3r3RAUNdDDABvaFo1/0ksdi9IsLR7+YWMAKCqgDs9joFxMdDLCBfWJOyZtYwAoKqGDaItHBANPWEvvCcoDDNp6SPKfk9fFY4jklr2fE55S8nkmbU/ImOhhgA/vC0Vu6pGL0lokVFFBBAx0MsIF9oWATbIJNsAk2wSbYBJtgE2yKTbEpNs262ZLqYCy0rCuJfaFn3Ww+L2AFBVTQQAcDbGBfGGmzxLTlyRUVFFBBAx0MsIF9YTtAbA1bw9awNWwNW8PWsDVsHVvH1rF1bB1bx9axdWx92XLiWx9rXXtOcevjvtpzitt5EuQUt4kBZm/piX1h9s0LC1hBAdN2ooHDpqnIvnlhW5i9MO/Mc9paH8MWntPWJmbvzr04+5slNrAvlAPMupJYQQHXmSpioIPYBJtgU2xnf0u0tJ0ooC7MLpLPATnLa6KD2VB5CLOLXNgXZhfRbJLsIhemOFs9u8iFCg6bZatnF7kwwAb2hdlFLizgsFket+wiFypooIMBtnWMOydt52B1DlZ2hgsNdDDABq5YyflcEwtYQZm9Rek4enacEx0MsIF9YXacCwv4+HfbeDXgORvrwnFJmljACgqooIEOBoitYhNsgk2wCTbBJtgEm6TtSGxgX6gHWMAKCqiggQ5iU2yKzbAZNsNm2AybYTNshs2wGTbH5tgcm2NzbI7NsTk2x+bYAltgC2yBLbAFtsAW2AJbYGvYGraGrWFr2Bq2hq1ha9gato6tY+vYOraOrWPr2Dq2jq0vW87GmljACgqooIEOBthAbAVbwVawFWwFW8FWsBVsBVvBVrFVbBVbxVaxVWwVW8VWsVVsgk2wCTbBJtgEm2AjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyBIjS4wsMbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS5wscbLEyRInS/zMkpqYtnHz5GeWnFjACgqooIEOBthAbGeWeGIBK5g2TVTQwLS1xAAbOGzjvb/nzK2JBayggAoa6GCADcRm2AybYTNshs2wGTbDZtgMm2NzbI7NsTk2x+bYHJtjc2yBLbAFtsAW2AJbYAtsgS2wNWwNW8PWsDVsDVvD1rA1bA1bx9axdWwdW8fWsXVsHVvH1pctZ4RNLGAFBVTQQAcDbCC2gq1gK9gKtoKtYCvYCraCrWCr2Cq2iq1iq6sfx5kP47kwznw4sYAVFFBBAx0MsIHYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EzbIbNsTk2x+bYHJtjc2yOzbE5tsAW2AJbYAtsgS2wBbbAFtgatoatYWvYGraGrWFr2Bq2hq1j69g6to6tY+vYOraOrWPry9aOAyxgBQVU0EAHA2wgtoKtYCvYCraCrWAr2Aq2gq1gq9gqtortzIeaqKCBDgbYwL4wsyTfluS0tYkVTJskKmhgnxnVzqg4sYAVFFDBLJb7dt5KnBhgbnpPHLZ8A5Jz1SYWsIICKmiggwE2EFtGRc0myai4sIICKmiggwE2cF0kGrcSjVuJnMHWajZJRsWFChroYIAN7AszKi4sILaGrWFr2Bq2hq1ha9g6to4t80FyNzMfLjTQwQAbOBT58iYns00sYAUFVNBABwNsILbMh3w/lAvxTaxg2ixRwbS1RAfT1hMbOGz5liAnvk0sYAUFVNBABwNsIDbBJtgEm2ATbIJNsAk2wSbYFJtiU2yKTbEpNsWm2BSbYjNshs2wGTbDZtgMm2EzbIbNsTk2x+bYHFsGSL4UyoX4JgbYwLTlKZcBcmEBKyigggY6GGADsTVsDVvD1rA1bA1bw9awZVTkBLWc+NbyrVFOfJuYFTzRwQAb2C+MnPg2sYAVzGKROA9h5Ay2bOrIGWwTKyhgbmRLNNDBABsKbKujx7E6ehyro8exOnocq6PHUW1tQ3UwwAb2tQ1nRz+xgNgEm2BbHT2O1dHjWB09DmHfzo6eYqUllZZUWvLs6LkNSksqLanYFJtiU1rSaEmjJY19M47b2dFPpCWNljSO29nRT6QlHZtjc2xOSzot6bSks2/OvjnHzWnJoCWDlgxa8uzoPVHBYbOsmx39wgAbOGxjfcTIOXATC1hBARU00MG0aWJbePb57Hp5ezDmREZOfJsooIKcGp1O1jlYnYPV18EqxwEWcB2snA43UUEDHQywgetELOUAcy88UUEDs6EiMRsqtyyj4sK+MKPiwgJWUEAFbeE41/t4kxk5I2xigOPl7hifjJwRdmHOh7mwgBUUUEEDHQwQm2PLF/hjhDNyobg+vqOKXB3u+l/z/fyRzZfv549svnw/f6GAChroYIC5OdlQOYXlxJzCcmHaemJODstjfE5Fy+Y7p6LVRFubnm/tL1w7lDPNHvfOiRUUUEEDHQywgX1hnogXpq0nDtv4yDRyptlEBQ0ctvFVZ+RMs4kN7Avz9LywgBUUMIuNhsopY218DBo5T6yNbz0j54m1ng2V16ELDXSwL8xry/jkMnI5tolZIRJTnE2SV4aeTZJXhgsVzEOY7XD2lhMDbKvu2Vvyfz17y4kFrKCsPc4rw4UGOsi+5TXg3KG8BlzIHucc5Jb/bs5Bbuf/GmAD+8Kcg3xhzvfMHcrZxue5k7ONL3QwwAZm3dF8uTjZxAJWUEAFDRy2PBFz5tbEBvaFOQf5wgJWUMChyBMxp2tNDLCBfWFOPL6wgBUUUEFsFVt+bJA9IKd2TewLc+ryhQWsoMxWz6ldEw1cByuXFos8o3IRschOlouITQywgbk549TIRcQmFrCCAipooINps8QG9oU5B/nCAlZQQFv7lp8VZIfM2WMX5gcE5w7lBwQXVlDA3PRss/yA4EIHc9Pz9MwPCC7sq0LD1rA1bA1bfkBwIYelcVgah6VxWBq2vhQ5y6uNryciZ3m18XFE5CyvNr5niJzlNdFABwNsYF+YF5QLC1hBbHlBGZ9BRK7aNdHBABvYF+YF5cICVlBAbBVbxZZXnPGJR5zzxC7sC/M6dGEBKyigggY6iE2w5UOQ58HKB5vxKUacs7wubGBfmA82FxawggIqaGAqIjEVLbEvzKeZCwuYijyj8pp1oYIGOhhgA/vCvJJdWEBsgS2wBbbAFtjyaSbytM+nmRPzESbyAOTDSuTpmQ8rFzo4ikWeMPmwcmFfmM8tFxawggIqaKCDS3HOYxpfcMQ5j2l8nRLnPKYLBVTQwKzribm943CfM5YuLGAFBcy6LdFABwNsYF+YD/wXpq0nVlBABQ10MMC2MDvD+HwlzmlKF1ZQQAUNdDDABvaFjs2xZb8Yn8XEOU3pQgUNdDDAtlrdOVjBwQoOVp7gY6WdOGcWtTxh8qy+sIIC5ubkGZXn+oUOBtjAvjDP9QsLWNeZep7rJypooIMBtonndKLct3M6Ud69nhOHLrS5Q+fEoQsDbGBu+ugB58ShCwuYDRWJAuqqULAVbAVbwZYXqhPrARawggJiq6fiv//7n/7wl7/92x//8ee//fVf/vH3P/3pD//8X+t/+I8//PP/+K8//Psf//6nv/7jD//81//8y1/+6Q//3x//8p/5L/3Hv//xr/nPf/zx74//93Fu/umv/+vxz0fB//3nv/xp0H//E399vP7T8rhL9evPy+N+kxKPAZMfipTXRXSM1maJx9VgFQj54e/r67+XcWnMv5de2YCo9/dC9Fh78bh2v9wLfV1k3EmeFYqsv1e5++eSX5Sfe/F4fc8WVP+hhG9KjIy42oFNiHb37/PH1fLvXWz9/eMx44cCbdOOuXrI2QhW2ssSfXcs62oGD3lZYteS+eHF1Q5NX7Zk2ZyStY6PuLPGY0iBzSj2Y9cou9NSbG0GzfkYb7q/I33uiB6HvN6RTQ3LHyrLGmNxtlXDf+qdtjuq41nlOqpWX5bYnFn5eWxWaPJ0QOK4XaGtDvq4J35d4e5uxOvd2DVmLld1NuZjnPhVibqJmqpt5sRjyKi8LFE+bYq6OTMfY33r7H6MUJNWP56aY5mYlxsx7vTPjejxeiN2eVnrbIkHclY8hgnu70gZ30JdO2Ll5Y5sTqxKaB4vC+x7WPd1UjxF/89HtH0eersaj4fPWePxbPn6+iHHNr/r6iJPrfEYYP2xxubstDaPyOMe7KlCuX9iqK0Tw5562c8nhmxOz8cL975qdM5w+Sl9ZbMdlStyfdxuc2Dvb8XNU3xb425rxC9ojfZpa+w7yrpVHIttvuoomwqaiwCd5/hjmOrlOa6b8/MxRrvuFh9DzU812v0aEusO44dr+8815OOrquqnV9VdhXuXktu78fqqerc19elq9L0jcsSqUfR1jf753asdv+D2tWyfBGYKP+7oX++LbS6MrdZ5lj/QXt6/7mu4rRr9eF1DPz7LzT49y3cV7p3lt3fj9Vm+bU051hERefOI+LrdeYwHvX4q8d013nTeuT1aQF4/l+we2EtZOVz0dYZ6/fjMcPn0zNhVuHdm3N6N9/Lv0YS6WtP769aMz1uzfdya7ePWjN+5NZ/OzShvXU0efzg34/Ey6fURCfn4wTs+D8/4ODzj4/CMz8Nz35if3jqOn1qdFYq9Hktpm+gcn93NZ5sWr+O3bU6tvs7OcjxfU9s3BivVyhqs9FZeDlbuWzRo0fbeQbk3GtJsNxpyrIeK59u2n0v4x52kxaedZFfhXie5vRuvO8m2MaU3GtPfKmG1rNEpeTmW0TcXxLEg7Dwruvf3SojeKLE/sW4Ns/WPo7N/HJ09Ph7f6u3D8a3tNtwbLCzH8eloYUb065cTMnfEn+85pdm7RezNIrqeNcdCRJsi+umw435f1kDGA9/dl7pGdbw+pec3i4StIv3dQyPruWSsurUpsnuEf7wmWc/wDy4vh8u2Ze6O231RpM/j06X0N4vIepfV5enl6PeK3BxCLLvRu7tjiGX3DubmIOJ2O1pdLdKebuR+ux13i/jxbpF1jXmgv1fk0Sd4gX6U2JTZHmJbwdafbx++ebI1Trbnfvy9It4p8roD3r96v35puXuLkCspZ4mIlxet/R3yrfc6Zfdy6e6D5L6Irl1R7WVTZD98b6vn6WZv+ucvgnevmG6+Cd6VuPkqWD5/AVrk4zegZfeGSYqu0eJHi76+5t0+Kpv32vuzY734q9H0rRrCuf643MW7NY6PazxNg3lOse/VWAf3Ue51jd0g0s0HoS9q3HoS2u+LcpKpt89rvHmOSe28ommvj63unpJ9vZIoUTe9brshscZPHjear6NQ2y84uO13Prj581zXvmw6rpXdLUisNwKPu7d3G3Xd7UrbnGW2SVRZofx4wnq9GdsXNd3WvvTYPJvttkMZQX46PX7bHLtrtq13eGo/zMb4zoXfj7kz+nwT870iFuvtgu3uHuwXTOwr/gvejW5353kc9/F+8vXu7F/a3N0d+b13p7Z50TQ5drtjH97q7jfD1+k6fj9xsxmx6zbrlK+UqL8p8fkkk+1WrArPnfc3WxG7EfbHOaYrEY+nwSb/RpEjP5y5HuzaczZ/p0hvT+8LnqaafKdFYh2Xvjkuob9riUcb1E572OtG1V/RqPoLGnVb5O45su12sW6Jxm9OvBfwPwxHir5bZA0RjbVa3ywS64ZmrIL3ZhFfp8lYoOx1kaa/IOB3oxC/JODHAmdrd3y3O7vX4pY/EnHtT9f+zskWvp6twnvbbEn/fBihH58PI/Ty8TBC/3gadeny+TBC14+HEXbvmW4PI9w+KptHvP3ZcW8YYVfj7jDCFzWOj2vce0qsx93Hd3uvTe8OZ+xr3BrOqLsXVjefeL+oce+Jd7sveqzz4/nt22+2I37v7bg3rHK7xpt97uawSt197XR3WOWLk/3mCVJ+5wNzb0ikbr8Vujskst+QW0MitcSnQyK1tM+HRLbbcXNI5IubmOCm7PHG7MVNTN19+1TGz/5S5Olzz28U0crgTH2aVeHf2pmb27GJQ+9rSvBYv2JzR7YZy1hPZk/fjP701elXDzI1eJCR/ubTkPL56+HHy+bYDjIf8v9M9vslbh7ZLx7+b7bH8QvaY/eS6u4j5rbIzRbZv6J+2pnjeH67/L033Yf4U5nNq/t6/JIX5rsynuubnc9l/Xg5BLAtwUPZWLT1vRLBVvSXJfbzZg6+2j7enga0vl4fv3v4ssj+A4eQ9Uz2/Hz5nQ8cdF27m8rrGnX3UVPJ3y+/7mb09Y2Ifv7Nc9WPP3relrj5qe/tPYnNnmzfqqxnkNL762eh3ZdRN2/tvtiONZjyuI18fa+7O8Vu3lHt3g890msNgmg8Tw+r97fj3h3Vtjkeww8Hww/trSZ9PBesScNlc7dsn9+k2q+4SbWPb1L3H1it1mj+NPHvN8s+bD9zvTWzfr9IwK1p8dU//760+scfmG5L3Eww//wT022D3psavy1xb2p89f75I/K+xr0cLZ9fmPb3cvfm2e5XgLg3Q3Zb4+YE2e0n9jenlN6usZlRuq9xb0KpyK+4Pd626s3ppPstuXuObNvk5nTS/WIQn+/N3XN1vy83z9X4Bedq/IJzNX7BuRq/4lzdt+q9Wcv3V+V5fSe1fSV1ZxbGdvCirP7yuJN5nu7z0/P+7pWUCIsHiL4cY9uWuDcOs3sjdW/UYdsYxzo1fvqM9+fNiM9fA9f+Cxbnkc9frsn+S501VeBpCoZ8o8K6FXP11xW2awesM6NYrU816jeagmkgVmVTY/sgSJQ++Pn13P0zjJdi+nyD/JszbFfDnGl+8fqrYtm9jbr5Tl2O9vHdvuy+3Lh3W7gtce9uX7Yr7917py6lfvpOXYp8/k79/lHZdPv92XHrnfq2xs136l/VOD6uce+dupS7zz/2XpvefKf+RY1b79Slfv6t9Bc1bj0P7vfl3jt1qfZ7b8etd+r3a7zZ526+U5ftZzk336l/cbLfO0FK/50PzL136rJ/Hrz3Tv2LDbn1Tj2XXv1suFLEPx+u3G7HveHK7R3d06RNefOecL3Ccn1dIX7F28Evqtx8OVhb/yWjH7sy914O7kvcejn4RYk7Lwf3g2M3H4319x2A+cY5Ir/kHIlfc47E5+dIfH6OxMfnyO5xLNbIx+P1z1Mq/xwB9vHj/rZEcVsrFj74+d2vyE9l4tPhj32JW8MfYv33bg8WlB8/Ov+6PXz3NNXWhfuBr2YpbUvcXhR49w7n3qrA2xI3B0C2Je6NgGxb4+4QyL5Jb46BePt8DOSL06yvRf/L+JHh16fZbr5TLcFDe3s+OvpTkbIdB7mz3vJ2O+r6YrI+eLMd2zd96zSpZpsi24aNp9vd8Sufm4a1j/NsW+JenkX8vnn2Y3s8Td74bb5vy2R2X2W0bGJxt5LfY3SHARF7vvFt7xZpv6DIDzfx3yryNDYTfVNkNxPk8UpqnvaPE4q7ov7TA8n2m6kmPJ89Zexvi+yW5Ochr7aneS3fK9JKX0We13D6ZhG2pNovKCLHpsju6Jgx/eD5NvznIrtXVObrsdX86Tz51iFW4vEx5t3ePU/ayrV+6Jttoutkq+q7Ntntjq9pi48hJ32vYbWzzk9v9l4Rr/E0CdN+xe7sDvHdPGmvQ0l3a/7dHMjXY7+sOwO11TcbspshbzGLjN8b44rxc43tO1EGwH6Yqh8/1dit9nNwIT6eJ5f9XGN3/SvHmgI5Jpbb673ZNut6AhZ5+m7gt826LdKfBtE3V67vXM/95fVcd++d7p5rZfck3Pt6wniwvb5D0e37K1n3OfX5tyGq2E9F6qe3wvsmubd0qJZPF6ncN+r947svYwdlTGVTZjdpJViB4LkTt/jOprAqS4nQttmU3cBNXdMJXX4Yd/mpyG7ayuMcWmFfnla5/VYRKytRHihvbsnTshsq8eaWyFrR1KT7mw0r65fb/LFRmy3Zvcxy50apvVsk1vTsB5Y3izBX64HvFon1odkD7c0i3dfKO/1p1vs3O3KspH4MPT6vNPG9Mu3pVyyavRsrj6cLRj+fU/I3ZeTjwa1tiXuDW/sStwa3vmgPY0ipuWyOzvZlTmmNT+ieb+9/un59/ntTX2xHf/qArsurQXrVTZv0ugbIen05fPJFibUrvfqrQdgvjkywKy3a2yd8Xx84PHgzyq67j0bujUrtS9waldLdx1H3RqW+0x7bi/kXZYIypm+XsU6ZeD1mqNvfoLp3dLYl7h0dq7/30Xluj9bfPzpOmf7uNacf3D72Uu3dMsJPgDx64OZeafeW6uY1Z1fi5jVnW+IXXHM6CxSW7ro5Op+/6NqWeNybHHw4GkXfK8K444OrvVlk/STUuL1575LRg+8v+v6SUX7/x+K6RguqHLF5LL5bpNQ3i+i6oFfV480itn6zvJqX94o82mEF9fHDMJvdfn3f19ffj1dfz8em3C1RC+1R5fUMAI1fsOCaxi9YcG076MhY+6G7ndn9HtCdLzl0t3b8Y5x/jUc1323Gr/gp9F0Rq+uO3uoPz9T1G0WI6J+eH79TJJTH4R8etX4q0j7+vGVf4t69Tft4vssXrbHecVmTvmmN7eV3vc9xbbIpsluGmrcO5Xg5nLzdDFs30W4/PDR+Z1/M1uKR1uztIk/LWPa3i6wRJP/hRfV3zva2QuTxum5TZLc24C8pcnf+jnb/+HZzV+Lm7Wb3j283t61xc/7OF016b/6OHdsbq3vzd7640KyfXnrcG+nmQrMr0itFNlcr+xWfZH2xJcGLqdI2W7L9kYB13Rwz556K/LQQxH6iuayrRDx/RPSdIqprQFufF07+bZH+6SVvX+LWJc/Kx2um7VvD+B2b54kDv2mN8vENwL7Ezdaw37c1XFmo/Pljud+0RnzeGvF5a3w83XXb8R87suYNyfNPmn4nx4QvO0R/GEj4KT1231P9khwTfvz3cet+vLk7TxHUq79ZpK/7zMfbfH23yJqk9ijim4b9BR9jW/0FH2N/cXR4rx21vt6d3XfMT58QPk1+iHa/ghcWbrPXzSG/4IcsTH7BD1lY3U5MWedZqfr8NXX/aUvs0zbdbkblqzuR8noz6n5StPEW7HizSNdgZGZTRPrnYbQt0rnujh9x5PhK+0YRP2a29ueHou8WWQux+POCMN8rsh4Uuz/PP/y5yO71U1+3zf35AyDT+yWel/g8nmcf/lxkvzONnenvNmtIW3vzNGH9e0UaB7g9Zfxvm/X3LvLDknSyOzq7InWt+VPrc5t8q4isXxupz994/6bILggeg9ZrLPAxHPw6COzTmVjbCneHAcw+HgbYlrg3DLAvcWsYYN8aN4cBvmjSm8MA/guGAfbnmNJlrG8uNvtvtJj01J+6zG8WcPXPF181/3zxVfOPF1/dlri3mMn9PYnNnny++KrF54uvfrEdtxZftfh48VXbDhH5+u62/jDB/afFV/dFeBfxwPJekbvLwO63xISVx/zdIrWsInW7JbvvCctRntYsf3pW/Pm76K/KNKfM0zvJb5YxfvLokQLt7TLrII2Svimza2DpHOrn+5pvHaV86XgVeb7X+02Rj5cN3nbkm8sG72vcWzbY2sfLBlv7BcsGb7fjZpPuD+16xHocZXm3AxY+gS9F3u6AVek51d/ugHXNqBklNz1ne692a4mSL2737qxR8sUT0tPz3vP3WT8/l/TPB1v754Otvf+uJW6OXu8bdE0Gf7Stvm7Q3VDrvQEwP+TzATDffpj1SwYVlbXNfDPQ6rtXV9Webm42PxvsuzcL0dejb/QfFjb8RpEm69dcmzR7s0iseSOtW3mvSC/rU9H+vPDcb4psp1rd6rtfbMf6kunxvrS/uTOV8Z7aN0WK/r47IwSi9GOzHf77boeun2J9PHLutqN9vB3l498e8u0nULdSdd8a/pSqmx9Q9V2q/pIid0eLvOqno0XbEvdGi/Ylbo0W7Vvj5mjRF016b7TI6y94IbC/yrivSZLRX/9isEv5eKDH96+vbg30+O7t1b2Bnm2JewM99/ckNntSPh7ocfn8ly2/2I5bAz2+uz+892znu6+m7g707IvcHOjZFrk70LPfkpsDPfsiNwd6XO1XDPR8VebmQM8XZe4O9HxV5uZAz76Bbw707IvcHOjZ9qB7oxLbjnxzoGdf495Aj+/ek9wMg+06ETcHerbbcbNJ94f23kDPF+fq3YGeL8rcHej5qszNgZ79bdatgZ4v7tRuDfTsHuVvDin4L/iUxf0XfMqyn4Pq60Is/sPSfN+Zg1rWdAmV52WXvzeRdX2IqT+uzfmdIlHXDy604/WMR9+9yfolRW4/3exG4m8+3exK3Hy62Za493QTv+BXPb5o0ptPN7sPr26/C99P/2ZNh/488eo3Z0j/nYtUZ1596/XNIv156se7Rdp6PJGjbnan/Yqx1vYLxlq3uyP8RLMctmmT3bJ8xVh++cH66oeevypy60fNffsW6+aPiW+L3Bx++mJn7m1H337U2p5WStsFdP34ZmIfjHduJvafG93aii++WLq1FftPjXkOth/W1v3O98rOl9Pe5c0ira0lNfth7xX5oe/Wze5s55Hc/HJ6W+TeCu77ErdWcP+ixJ0V3PfHJVgHM97+ov2HIvpukUoReX1c4vj4PWscH79njc+/mdqWuLsEyrZBmYEa0d49KiuSH+O97ybI85a8XaQZd0T2dhHGJ7dFtiuX3Mv2/eInt7J9vzLUqtGrv7m41Priodd4+bXSduWwe22xX3zsVlvsF6lbs9gt/O3l8ta6cNbseLMIa+I/8N3l8lqwJf3dJQTbOriPem8v3Pf0TkDfbxMmB7+71KQa38Nar7+iyJtLTSqPIfr8GPK9IqwXpLE92bZFGB1t8bpIXp5fvgTr61amHcfr7y5i+3tUviZaqHd7OQz41ZbE2pKy25LdWyxft1XmT89332iRxo9Pt8Njsx37X8Sczfq4hL6eNha7gGY90ucXCo/g/8Y50tcIre6WQQutv+AcUfkF58gXW3LvHFH7+BzZbcftc0TjV5wj7Xc9R+xYA6N2bBYUjt26f1bb/3u1oJ/2xXbL2Eddy6f8sDxy+87OrGlBVo662Rn5BTujv/POsJr+A9+86pms18cm6m8WqWxJjV9RpB3v7s56W2tS+rtbwhpKcrzfsJ2GtXeLKEXe/hGlqrzct+cb8R+/Ngz/eG7gvsS9J9/dp1O/oMTN3xzaNqiwSJ/EsWnQ7UJdN5bH2m+G8vj9uHy/3ozdj2PdDbPtUNO9MPvix7Eq01iqvdyZL4o8/ZiNt02R7S/i3PyZrl2Re2OA+xK3xgC/KHFnDHD/03b3fgrWP36G//wXX6J9/NPt0X7BT7dvH8rWSPfjLfPrnyvdvlVt/J7lc4mfvh3flXDWLXbpb5Voq6eV53Vkv1OiB0tqHuWdEvUgNA6Vt7aCRTnHsrrvleis9V3e2pGxsv0sUfp7W8HP5hR9/uWrb5TQp9d0z48cP5WI7Q9FNWZDPZ8Zpd/fk5U5ReK9xlB+S+X5PuHd9nyzRDtYH/xp7kKpP/4uTNv+3NWt3yvYL4TNuuA/zMqO+yX62obj+cdCvlGiCQsKP98O/6YtfsEUqnb8zqsBV95p1af7jN/uzG5Sioc+/RKvvRpi/6rIemP54N5fFtnP4lh31aW8PkNa+fgzlf2AJdfG59Ve759kGuvnEh4lNsel/ILpKK38gukoXx7ceDq4r24jW/Hf+wxh/dv6fNPx24Zt29s4pg1vRrS+KFL5+THfFNk9Vt8dKGy1fDpQuN2OuwOFrcrnA4VtN0X23kDhNgBK4Ur14OffBTjKT1uyW2BlbsjT7weq3E4APzrjyK/Xmmm7xQBvfoLUth9U3fsEqe0W8rv3CdK2xL1PkO7vyetPkPYteu8TpLZ783LzE6QvtuPWJ0hNdmNQt746aLv3UHc/QdoXufkJ0rbI3U+Q9lty8xOkfZGbnyC13ZuX+58gfVXm5idIX5S5+wnSV2VufoK0b+CbnyDti9z8BGnbg+59L7PtyDc/QdrXuPcJUtu9lLoZBrZdGPjeJ0jb7bjZpPtDe+8TpC/O1bufIH1R5u4nSF+VufkJ0vZ3bGT1m/I8Hqz9GyXW82J5HgP9Tgkm2tanX6D4zS2abwf7eZt0vFmir69Tnu41v7MjzwtoPi3o+50Svt5Z/Djp+BslojCqsm0L/52LFOdx83nZ2e8ViWAUs9c3i/SD36Gr7x2ZunbmcRF/r6/IesX3OFPKe1vBfPLn97ffKFGO9Urrh19D/06Jws+kFW3vleB7stLe2wpZHfaB722FVQZENN4r4TxDtP7ejnB2jlGUt0rw63dib+1IrOeHUH+nQFfWpdl09t1bvc9H2PvBikPv7cU6L3vYh83wXgGpDLDV51viftwvsb5gleeFl94t8XTj9a0Sq2tIfWqL75R4/pGLp4m43ymh602x2PFeW4jzGzvPr23eLfHeQX36rY7nvPtWW/Alkcp7B5WfrZfnn63/Von1e5+i9uZBdT6Z87e2YvxiKDcW+laJpx8ubc+L8/9Uoh+7O/lKdD//1HVp9zdjDXGOnyN/b0/WJNXy/JvO3yrhvBJ8r5OU1vmW+Shv7giPnEf9uER5dyuCEm/19sd9Km2h8fFWvHdQq673vI+RlZcDCX3/1unWeHHfvXS6N168LXFvvPj+nrweL94+AqwJFT+MVH2jglUmgom8bs1+c7x5d0S2Nda7992Y9f3teF1jP1GQ8dmnkeKft6J+vBzatsTNc2v7ewT3ZoL13QumezPBet2uLmn88s3z3ZL93KKb4cfxmzmrSH89NNV3L2fuzQ7Zt2kR3qjayx8B6bL/lfR5o/H6Z0S2Tfp4EcHj8oPLplG364+uu+ku/d0itoaouv0wAek7Reqam/ZAfbfImonen6ezf7NN1uInj+bxN8/Wtq60vT3NVfnt2Xq3yNMPYH2zyEqzB/p7RR7vhmzdiD3eBO7KbJu20bT9eNm0t8P55ZuMvvvJqFs/LP5Fezz/6tQR9d1mPZgD8CizOU+24/b3j45+vBDDvsStSdhflHg5Cft/Pv7LH//tz3//l7/87d/++I8//+2v//H4u/8epf7+5z/+61/+dP3X//2ff/23p//3H///v8//51///ue//OXP/+df/v3vf/u3P/2v//z7n0al8f/94bj+439EeRywKBr/85/+UMZ/Hz8eHFba47/L478/Nt3q+P/Gv1wfD+7/9PiP/Jfz336MXD7+2o7/+d9jc/8v"
4120
+ "debug_symbols": "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"
4121
4121
  },
4122
4122
  {
4123
4123
  "name": "public_dispatch",
@@ -4181,7 +4181,7 @@
4181
4181
  }
4182
4182
  },
4183
4183
  "bytecode": "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",
4184
- "debug_symbols": "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"
4184
+ "debug_symbols": "tZvdbhY5D4DvpcccxPlzzK2sVqsCZVWpKqgLn/QJce8b/8SedjXDy7ztCXnGZZzYsZ2faX/cfLr78P3vv+4fP3/55+b9Hz9uPjzdPzzc//3Xw5ePt9/uvzxO6Y+bxP9AHTfv4d0NNNS255v3mVvUFu0Z7XmAtV1bsmfS55yStc1a0haqtmXqq9x2bStYa8/Nnps99/le43Zoi8Va1JbHI23Xlmb/yG2zlqQtqViL2kK21p4zWDvfgzShpAVVf1JMUzVN1d5s9iaPmNtuz71ZO9+D6dqCdQH7fDqjjLJgSYglnWFK8uy+8sBzZWDJ/FGFsgDtRzkvYMmYwG4WqGlBW8AzQhNaNZA5F5ivlzmMirCgG4wlGUtCS8KuViCFluqCOeYyp6XxmBXQgB2u0BaQAXtcYUnqep2dXqZXW8sLloT9LYDT5Mq98+DrdEvjwSssCQ++doau0BMsIAMO2UoMwyCXBUtSlqQsSc0LuoGEtMAcYZsD6z0tqAuGAeebQjeQCBdYElqvE79eGUgBk0mQ41uBE2XOO3KQdGAYkopYsrWa2sip2AtDN2hpQV1ABn1JsEnhwFGlHUkTfCRN4AFgrT1ne872XDTBR9EEH7VYqwk+GlirCT66Jviw9Bpd03JgsVbTcoxsrT0TWNs0C4krlULV5COeeQFYEiBNR8pV05E4SDtLeNx9KiSecAXuiRVybGJhQAOpCfyj3g04w7AxdAN2oAIZcDHAwYAKkNi7Ri4Dl4HLpJwptUVc0YxmVwOEaBH73QgXse+N2iL2v1HIXAvPwihCY9FwGc+B0bR68FiALaIkhIvAZWwRsWbg8DVyWWmLqi47E+oCMmhFI3XSWMQVz6gvQnBy2bBVUZY3BlnHqsAwkKIgsCRlScqSVA1eyJxRCm0BGfSyYBighjBki2mQ1U6hLSADqgtMspY8kDWPlzKQVc+oa2SDrHxZZJySXWQFNKZBVj0l9ixVobGIfWvksu6y7jK2xKgvYluMeBqlD65sRtVpGFUJFaW+iMuLkctycmItJESLiss4c43EQzyYyibNiBYcjl2korMPRwwphnTkQHSkkJJLG686C7sjpMDmmEPKdi2UjtmKVkogOlYI7I4tpF1GNgTREUOKIR0hHSGlkJJLe8qBIYWQQkhzSHNIS0hLd1SDFEPaQtpC2lNgDSRHnULF4Rhm9jCzU3RB3gWmFNgCvQuEGuhdYC6B3gWGxRgWY1iMNbpo0XGLLlp03KOLHh3HxGJMLI7oYkTHFF1QdEzexUg10LsYUAK9ixFzLIu/YYFA72LUFBhd1Oi4RRctOo5QHhHKA6MLjI5HdDGi4xFdUHTMNQh4swDEVdWQa8/C7ihpatgcS0hLdZS6o8ibhoUh7SHt0QWGMgxlSI4jpCOkFEN3g7JsKRaio0RU1ZMc/99aGGU4hugoW0BFcSrvsCc2RwqpOLU2wbEQxKmGIYWQQkgljAzZJbxXzyBhZBhSiR1DcpTYUZRBghxQZZDAVmSdWEXxOveWdWIVm2MJaQlpDamMwXA4yhgM0VGnW1E65kFmnW7F5jhCOkJKIRVXG46FReNXER2lKht6x7I1WChdyMk9k6OGsuJwrDkQHaVAG4YyKdCGoayHMinQilKYAOXWQPQORokHw+6o06JYA4djjddqvKaDVAwp73SB90gT5YzAKVIl9RRlvTBER1kvchbsC5usF4Y1cDjKXBjGaxkCQ1pCWQllJZTVUFbjtRavtXhNEj0XuX0pgSKVOxmZgMzh2dQ2RZd2ta0LtkBylJQ2REe1TTFey/Ga2qYYUkknQdQCkgW9MKHksWF3lM2ToRSFKvdKNdCLDdYciI4tpC2kPaSSvIqSvFJsEL0akezwslxQ6WFzCJKj7AkUZU9g2B2lwvCtzbzq4vEWDk9dLwy7oyyAhuQoi0QBweEoi4ThkhZdJAzREUIq/uU7nyJnz4UhFf8akmMtgejYQoPUh1IEWyA5Sn0wREfZzhjGaxTKaCN1ZboOGboykDAqVbA5ynJguJGSo1qsuGaoQM2B3VESUlGihC+7Csi+unTBvlCuWBe2QOl4yFVmCRyOOaQ5pCWkJaQ1pLJuFr0aLYHo2CGwBcZrGK/JFltsy1IyC8lNawqsy6CiBglCSNUgQd0IyBWtZItiCaluBEDucCHQfVZqdNGiixZSKYOG0TGGVENOUENOMboYoUzTqf/8+e5mXcT/9e3p7o7v4Tc38/O+/uvt093jt5v3j98fHt7d/O/24bv8p3++3j5K++32af502nj3+Gm2U+Hn+4c7pp/v4u20/2otsN6u06euYJ52L1VRiI/YomIinVExd1RkKmZI7o+iHIxiLsh9DWOex9GVIFw8jAJLBe8xTlmCfGGnKpDKroq+r2LQmhFKzRUUulwB3+2ZgrGrYOwr4LvCNQa+LYwJmfc8z5TQwYTIAqfzMW8ZQsXAS8cxd7YeFgPG1Spy31VxFN+9LRVlHn53pxTKUWQNH0ZNmxyBFzrqwazMm/Q1sZNxN8L52LBrzNzcrQDl4g27So6sGbAGMvcnsG8NHuio4DHGu/ioXVifKxmv4RJ6Y5fM5dGL4Nyw7rqEzwO7Lpk3dF5/2jyM7LmEN+m7LpnfEdwlhNj3rMmH1nTuY5mzX0x/YQ5/ZTJz5oe/XXOO4rWuqamwSd92bmJwP1bzQawifwMQFVt/1nxuEOMg/Q+TDiPpUkRYez6MclDJ5tFxTcg8Om58Qc+reoGjlOseXZuK3MflGpoH+caM/2g4cAVGiM/rys3SUp/ve8pBNS0te2DFnM6D9uXenPfL7k3M+948WKrnDfQKrXnBHDVw7ufPBQbAbmAcrZI5e6bmTd15OYxyVEYTsb81yOepqu3VjHq01qZ5b+JKpmW7SuBoanuMpPW+q+QX5uSNOdv16cVIylGyUGTLpgDy5vLc9OLe9NaDIprJNzCb+Ch0+Rio+K6WGu2OAa+vPXVcW3sONVxUe1q6vvY0uLb2HHrzwtrTyhvXnm1g9N3AaEfBOY9Jscmn3WG0frS+lu6HjXlTvLvpaQc+5S9bsZccu8n6i4FkioG03b1kOzw5YYqj07xY3FPSjyppw1q8COKoJ87D89v7MqamlPYPs/loHNB9K9lgv6If7p8aguvYpP7L/VOvh6Fa/MAxl6rdGOlH29F5q+QjmddG9Vpr+tatv7EbLBAbdCi7q0Ifr3Dc6PQKxw1Mr3Dc+IU5lx03ML/lcWM7LxuXvpgXrG952khxIQd5d0OI/frVGvHa1fpQw0WrNdL1q/VI167Wh968cLUe+W1X62eB0epeYIx6/UlhtFc4KYz+CieFga9wUviFOZedFAa97Unh2fTub8YOVZRYrLc34C9UUL6+dFC5tnQcariodFC7vnRQv7Z0HHrzwtJB441LxzYwNnPyMrZSur52QIJXKB7zI8YrVI/5+eMVysevLLqsfkBq1xeQo2+BGVb9qPODxZnPXzPM/cQwb/X3v5Wk8QpHhqOB9OzfNfvmBPWfgcDRWT/7Riz2YeXiT4EQZ+P5rWM3/Y9VVFfR6zkVFEm3+fL0UgUcfXpqfqhtJZ1U4WtT3xTT3zEkl031yKdU9OEnwL75OPs7KjDOTHjoC3pjJfwrzV7VcZxUguhLA1I+qYT8GytQPjcz2Y3h33I8paIkv0faXnP+1ijiK21JpwypA/wEOdp2vb5UA4BfU8yEGmcGAVE/AcapbIPi+Qrb9f53VDQvwfOwgedU+HICbdA5QyI457e3cypqdRXtlCFYfSmp/YwC8osJaueMSH4xwX+wtZ/pBd8yuimtsKJ8zhEe2oTtSk+eU9DbqjN9c4Z++es1Rwp8RZ73vKcUjFCApxR4Wm1Xjt9QgBk9nstzBX/Ox9uP90/P/sb8J6t6ur/98HBnj5+/P37c/PTb/7+un6y/Uf/69OXj3afvT3esKf5Qff7zB85jBgL9+e6mzKc2717a6POJf5n2jzpDbN7e8SPwT+d8z/Lz508e2r8="
4185
4185
  },
4186
4186
  {
4187
4187
  "name": "sync_private_state",
@@ -4339,7 +4339,7 @@
4339
4339
  }
4340
4340
  },
4341
4341
  "bytecode": "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",
4342
- "debug_symbols": "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mnFeM85rxnnNOK8Z5zXjvGac14xzrxKa1UmSNKknjaSZZEErzi8qSTUpPXp69PTo6dHTo6dHT4+RHiM9RnqM9BjpMdJjpMdIjxXn86zFtKAV5xctj+5Uk1qSJGlSTxpJM8mCVpxflB6WHpYelh6WHpYelh6WHhYeXlR0UUmqSS1JkjSpJ42kmZQeJT1KepT0KOlR0qOkR0mPkh4lPUp61PSo6VHTo6ZHTY+aHjU9anrU9Kjp0dKjpUdLj5YeLT1aerT0aOnR0qOlh6SHpIekh6SHpIekh6SHpIekh6SHpoemh6aHpoemh6aHx/l0Gkkz6eFhZdGK84tKUk1qSZKkST1pJM2k9BjpMdJjpMdIj5EeIz1Geoz0GOkx0mOmx0yPmR4zPWZ6zPSY6THTY6bHTA9LD0sPSw9LD0sPSw9LD0sPSw8LDy9cuqgk1aSWJEma1JNG0kxKj5IeJT1KepT0KOlR0qOkR0mPkh4lPWp61PSo6VHTo6ZHTY+aHjU9anrU9Gjp0dKjpUdLj5YeLT1aerT0aOnR0kPSQ9JD0kPSQ9JD0kPSQ9JD0kPSQ9ND00PTQ9ND00PTQ9ND00PTI+NcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84147xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec9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"
4342
+ "debug_symbols": "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mnFeM85rxnnNOK8Z5zXjvGac14xzrxKa1UmSNKknjaSZZEErzi8qSTUpPXp69PTo6dHTo6dHT4+RHiM9RnqM9BjpMdJjpMdIjxXn86zFtKAV5xctj+5Uk1qSJGlSTxpJM8mCVpxflB6WHpYelh6WHpYelh6WHhYeXlR0UUmqSS1JkjSpJ42kmZQeJT1KepT0KOlR0qOkR0mPkh4lPUp61PSo6VHTo6ZHTY+aHjU9anrU9Kjp0dKjpUdLj5YeLT1aerT0aOnR0qOlh6SHpIekh6SHpIekh6SHpIekh6SHpoemh6aHpoemh6aHx/l0Gkkz6eFhZdGK84tKUk1qSZKkST1pJM2k9BjpMdJjpMdIj5EeIz1Geoz0GOkx0mOmx0yPmR4zPWZ6zPSY6THTY6bHTA9LD0sPSw9LD0sPSw9LD0sPSw8LDy9cuqgk1aSWJEma1JNG0kxKj5IeJT1KepT0KOlR0qOkR0mPkh4lPWp61PSo6VHTo6ZHTY+aHjU9anrU9Gjp0dKjpUdLj5YeLT1aerT0aOnR0kPSQ9JD0kPSQ9JD0kPSQ9JD0kPSQ9ND00PTQ9ND00PTQ9ND00PTI+NcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDLOJeNcMs4l41wyziXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84141wzzjXjXDPONeNcM84147xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec947xnnPeM855x3jPOe8Z5zzjvGec9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"
4343
4343
  }
4344
4344
  ],
4345
4345
  "outputs": {
@@ -4831,31 +4831,31 @@
4831
4831
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/state_vars/public_mutable.nr",
4832
4832
  "source": "use crate::context::{PublicContext, UtilityContext};\nuse crate::state_vars::state_variable::StateVariable;\nuse dep::protocol_types::traits::Packable;\n\n/// # PublicMutable\n///\n/// PublicMutable is a public state variable type for values that can be read\n/// and written within #[external(\"public\")] functions of your smart contract.\n///\n/// You can declare a state variable of type PublicMutable within your contract's\n/// #[storage] struct:\n///\n/// E.g.:\n/// `your_variable: PublicMutable<T, Context>`\n/// or:\n/// `your_mapping: Map<Field, PublicMutable<T, Context>>`\n///\n/// The methods of PublicMutable are:\n/// - `read`\n/// - `write`\n/// (see the methods' own doc comments for more info).\n///\n/// ## Example.\n///\n/// A voting contract's proposal count can be represented as a PublicMutable<u64>.\n/// The count can be read by anyone to see how many proposals exist, and incremented\n/// when new proposals are submitted.\n///\n/// # Generic Parameters:\n///\n/// * `T` - The type of value stored (must implement Packable).\n/// * `Context` - The execution context (PublicContext or UtilityContext).\n///\n/// # Advanced\n///\n/// Unlike private state variables which use notes, PublicMutable stores values\n/// directly in Aztec's public data tree. This enables direct read and write\n/// access to the current state during public function execution.\n///\n/// docs:start:public_mutable_struct\npub struct PublicMutable<T, Context> {\n context: Context,\n storage_slot: Field,\n}\n\nimpl<T, Context, let M: u32> StateVariable<M, Context> for PublicMutable<T, Context>\nwhere\n T: Packable<N = M>,\n{\n fn new(context: Context, storage_slot: Field) -> Self {\n assert(storage_slot != 0, \"Storage slot 0 not allowed. Storage slots must start from 1.\");\n PublicMutable { context, storage_slot }\n }\n\n fn get_storage_slot(self) -> Field {\n self.storage_slot\n }\n}\n\nimpl<T> PublicMutable<T, PublicContext> {\n /// Reads the current value stored in this PublicMutable state variable.\n ///\n /// # Returns\n ///\n /// * `T` - The current value stored in this PublicMutable.\n ///\n /// docs:start:public_mutable_struct_read\n pub fn read(self) -> T\n where\n T: Packable,\n {\n self.context.storage_read(self.storage_slot)\n }\n\n /// Writes a new value to this PublicMutable state variable.\n ///\n /// # Arguments\n ///\n /// * `value` - The new value to store in this PublicMutable.\n ///\n /// # Advanced\n ///\n /// This function updates the value stored in Aztec's public data tree.\n /// The new value becomes immediately available to subsequent reads within\n /// the same transaction.\n ///\n /// docs:start:public_mutable_struct_write\n pub fn write(self, value: T)\n where\n T: Packable,\n {\n self.context.storage_write(self.storage_slot, value);\n }\n}\n\nimpl<T> PublicMutable<T, UtilityContext> {\n /// Reads the current value stored in this PublicMutable state variable.\n ///\n /// Notice that this function is executable only within a UtilityContext, which\n /// is an unconstrained environment on the user's local device.\n ///\n /// # Returns\n ///\n /// * `T` - The current value stored in this PublicMutable.\n ///\n pub unconstrained fn read(self) -> T\n where\n T: Packable,\n {\n self.context.storage_read(self.storage_slot)\n }\n}\n"
4833
4833
  },
4834
- "228": {
4834
+ "230": {
4835
4835
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/append.nr",
4836
4836
  "source": "/// Appends the elements of the second `BoundedVec` to the end of the first one. The resulting `BoundedVec` can have any arbitrary maximum length, but it must be\n/// large enough to fit all of the elements of both the first and second vectors.\npub fn append<T, let ALen: u32, let BLen: u32, let DstLen: u32>(\n a: BoundedVec<T, ALen>,\n b: BoundedVec<T, BLen>,\n) -> BoundedVec<T, DstLen> {\n let mut dst = BoundedVec::new();\n\n dst.extend_from_bounded_vec(a);\n dst.extend_from_bounded_vec(b);\n\n dst\n}\n\nmod test {\n use super::append;\n\n #[test]\n unconstrained fn append_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::new();\n let b: BoundedVec<_, 14> = BoundedVec::new();\n\n let result: BoundedVec<Field, 5> = append(a, b);\n\n assert_eq(result.len(), 0);\n assert_eq(result.storage(), std::mem::zeroed());\n }\n\n #[test]\n unconstrained fn append_non_empty_vecs() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let result: BoundedVec<Field, 8> = append(a, b);\n\n assert_eq(result.len(), 6);\n assert_eq(result.storage(), [1, 2, 3, 4, 5, 6, std::mem::zeroed(), std::mem::zeroed()]);\n }\n\n #[test(should_fail_with = \"out of bounds\")]\n unconstrained fn append_non_empty_vecs_insufficient_max_len() {\n let a: BoundedVec<_, 3> = BoundedVec::from_array([1, 2, 3]);\n let b: BoundedVec<_, 14> = BoundedVec::from_array([4, 5, 6]);\n\n let _: BoundedVec<Field, 5> = append(a, b);\n }\n}\n"
4837
4837
  },
4838
- "231": {
4838
+ "233": {
4839
4839
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subarray.nr",
4840
4840
  "source": "/// Returns `DstLen` elements from a source array, starting at `offset`. `DstLen` must not be larger than the number\n/// of elements past `offset`.\n///\n/// Examples:\n/// ```\n/// let foo: [Field; 2] = subarray([1, 2, 3, 4, 5], 2);\n/// assert_eq(foo, [3, 4]);\n///\n/// let bar: [Field; 5] = subarray([1, 2, 3, 4, 5], 2); // fails - we can't return 5 elements since only 3 remain\n/// ```\npub fn subarray<T, let SrcLen: u32, let DstLen: u32>(src: [T; SrcLen], offset: u32) -> [T; DstLen] {\n assert(offset + DstLen <= SrcLen, \"DstLen too large for offset\");\n\n let mut dst: [T; DstLen] = std::mem::zeroed();\n for i in 0..DstLen {\n dst[i] = src[i + offset];\n }\n\n dst\n}\n\nmod test {\n use super::subarray;\n\n #[test]\n unconstrained fn subarray_into_empty() {\n // In all of these cases we're setting DstLen to be 0, so we always get back an empty array.\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 2), []);\n }\n\n #[test]\n unconstrained fn subarray_complete() {\n assert_eq(subarray::<Field, _, _>([], 0), []);\n assert_eq(subarray([1, 2, 3, 4, 5], 0), [1, 2, 3, 4, 5]);\n }\n\n #[test]\n unconstrained fn subarray_different_end_sizes() {\n // We implicitly select how many values to read in the size of the return array\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4, 5]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3, 4]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2, 3]);\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [2]);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subarray_offset_too_large() {\n // With an offset of 1 we can only request up to 4 elements\n let _: [_; 5] = subarray([1, 2, 3, 4, 5], 1);\n }\n\n #[test(should_fail)]\n unconstrained fn subarray_bad_return_value() {\n assert_eq(subarray([1, 2, 3, 4, 5], 1), [3, 3, 4, 5]);\n }\n}\n"
4841
4841
  },
4842
- "232": {
4842
+ "234": {
4843
4843
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/array/subbvec.nr",
4844
4844
  "source": "use crate::utils::array;\n\n/// Returns `DstMaxLen` elements from a source BoundedVec, starting at `offset`. `offset` must not be larger than the\n/// original length, and `DstLen` must not be larger than the total number of elements past `offset` (including the\n/// zeroed elements past `len()`).\n///\n/// Only elements at the beginning of the vector can be removed: it is not possible to also remove elements at the end\n/// of the vector by passing a value for `DstLen` that is smaller than `len() - offset`.\n///\n/// Examples:\n/// ```\n/// let foo = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n/// assert_eq(subbvec(foo, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n///\n/// let bar: BoundedVec<_, 1> = subbvec(foo, 2); // fails - we can't return just 1 element since 3 remain\n/// let baz: BoundedVec<_, 10> = subbvec(foo, 3); // fails - we can't return 10 elements since only 7 remain\n/// ```\npub fn subbvec<T, let SrcMaxLen: u32, let DstMaxLen: u32>(\n bvec: BoundedVec<T, SrcMaxLen>,\n offset: u32,\n) -> BoundedVec<T, DstMaxLen> {\n // from_parts_unchecked does not verify that the elements past len are zeroed, but that is not an issue in our case\n // because we're constructing the new storage array as a subarray of the original one (which should have zeroed\n // storage past len), guaranteeing correctness. This is because `subarray` does not allow extending arrays past\n // their original length.\n BoundedVec::from_parts_unchecked(array::subarray(bvec.storage(), offset), bvec.len() - offset)\n}\n\nmod test {\n use super::subbvec;\n\n #[test]\n unconstrained fn subbvec_empty() {\n let bvec = BoundedVec::<Field, 0>::from_array([]);\n assert_eq(subbvec(bvec, 0), bvec);\n }\n\n #[test]\n unconstrained fn subbvec_complete() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), bvec);\n\n let smaller_capacity = BoundedVec::<_, 5>::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 0), smaller_capacity);\n }\n\n #[test]\n unconstrained fn subbvec_partial() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 8>::from_array([3, 4, 5]));\n assert_eq(subbvec(bvec, 2), BoundedVec::<_, 3>::from_array([3, 4, 5]));\n }\n\n #[test]\n unconstrained fn subbvec_into_empty() {\n let bvec: BoundedVec<_, 10> = BoundedVec::from_array([1, 2, 3, 4, 5]);\n assert_eq(subbvec(bvec, 5), BoundedVec::<_, 5>::from_array([]));\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_offset_past_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n let _: BoundedVec<_, 1> = subbvec(bvec, 6);\n }\n\n #[test(should_fail)]\n unconstrained fn subbvec_insufficient_dst_len() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // We're not providing enough space to hold all of the items inside the original BoundedVec. subbvec can cause\n // for the capacity to reduce, but not the length (other than by len - offset).\n let _: BoundedVec<_, 1> = subbvec(bvec, 2);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_causes_enlarge() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // subbvec does not supprt capacity increases\n let _: BoundedVec<_, 11> = subbvec(bvec, 0);\n }\n\n #[test(should_fail_with = \"DstLen too large for offset\")]\n unconstrained fn subbvec_dst_len_too_large_for_offset() {\n let bvec = BoundedVec::<_, 10>::from_array([1, 2, 3, 4, 5]);\n\n // This effectively requests a capacity increase, since there'd be just one element plus the 5 empty slots,\n // which is less than 7.\n let _: BoundedVec<_, 7> = subbvec(bvec, 4);\n }\n}\n"
4845
4845
  },
4846
- "234": {
4846
+ "236": {
4847
4847
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/bytes_to_fields.nr",
4848
4848
  "source": "use std::static_assert;\n\n// These functions are used to facilitate the conversion of log ciphertext between byte and field representations.\n//\n// `bytes_to_fields` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `bytes_from_fields` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between bytes and fields when processing encrypted logs.\n\n/// Converts the input bytes into an array of fields. A Field is ~254 bits meaning that each field can store 31 whole\n/// bytes. Use `bytes_from_fields` to obtain the original bytes array.\n///\n/// The input bytes are chunked into chunks of 31 bytes. Each 31-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (31 bytes) is encoded as [1 * 256^30 + 10 * 256^29 + 3 * 256^28 + ... + 0]\n/// Note: N must be a multiple of 31 bytes\npub fn bytes_to_fields<let N: u32>(bytes: [u8; N]) -> [Field; N / 31] {\n // Assert that N is a multiple of 31\n static_assert(N % 31 == 0, \"N must be a multiple of 31\");\n\n let mut fields = [0; N / 31];\n\n // Since N is a multiple of 31, we can simply process all chunks fully\n for i in 0..N / 31 {\n let mut field = 0;\n for j in 0..31 {\n // Shift the existing value left by 8 bits and add the new byte\n field = field * 256 + bytes[i * 31 + j] as Field;\n }\n fields[i] = field;\n }\n\n fields\n}\n\n/// Converts an input BoundedVec of fields into a BoundedVec of bytes in big-endian order. Arbitrary Field arrays\n/// are not allowed: this is assumed to be an array obtained via `bytes_to_fields`, i.e. one that actually represents\n/// bytes. To convert a Field array into bytes, use `fields_to_bytes`.\n///\n/// Each input field must contain at most 31 bytes (this is constrained to be so).\n/// Each field is converted into 31 big-endian bytes, and the resulting 31-byte chunks are concatenated\n/// back together in the order of the original fields.\npub fn bytes_from_fields<let N: u32>(fields: BoundedVec<Field, N>) -> BoundedVec<u8, N * 31> {\n let mut bytes = BoundedVec::new();\n\n for i in 0..fields.len() {\n let field = fields.get(i);\n\n // We expect that the field contains at most 31 bytes of information.\n field.assert_max_bit_size::<248>();\n\n // Now we can safely convert the field to 31 bytes.\n let field_as_bytes: [u8; 31] = field.to_be_bytes();\n\n for j in 0..31 {\n bytes.push(field_as_bytes[j]);\n }\n }\n\n bytes\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{bytes_from_fields, bytes_to_fields};\n\n #[test]\n unconstrained fn random_bytes_to_fields_and_back(input: [u8; 93]) {\n let fields = bytes_to_fields(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `bytes_from_fields`\n // function.\n let fields_as_bounded_vec = BoundedVec::<_, 6>::from_array(fields);\n\n let bytes_back = bytes_from_fields(fields_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(bytes_back.len(), input.len());\n assert_eq(subarray(bytes_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"N must be a multiple of 31\")]\n unconstrained fn bytes_to_fields_input_length_not_multiple_of_31() {\n // Try to convert 32 bytes (not a multiple of 31) to fields\n let _fields = bytes_to_fields([0; 32]);\n }\n\n}\n"
4849
4849
  },
4850
- "235": {
4850
+ "237": {
4851
4851
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/conversion/fields_to_bytes.nr",
4852
4852
  "source": "// These functions are used to facilitate the conversion of log plaintext represented as fields into bytes and back.\n//\n// `fields_to_bytes` uses fixed-size arrays since encryption contexts have compile-time size information.\n// `fields_from_bytes` uses BoundedVec for flexibility in unconstrained contexts where sizes are dynamic.\n//\n// Together they provide bidirectional conversion between fields and bytes.\n\n/// Converts an input array of fields into a single array of bytes. Use `fields_from_bytes` to obtain the original\n/// field array.\n/// Each field is converted to a 32-byte big-endian array.\n///\n/// For example, if you have a field array [123, 456], it will be converted to a 64-byte array:\n/// [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,123, // First field (32 bytes)\n/// 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,200] // Second field (32 bytes)\n///\n/// Since a field is ~254 bits, you'll end up with a subtle 2-bit \"gap\" at the big end, every 32 bytes. Be careful\n/// that such a gap doesn't leak information! This could happen if you for example expected the output to be\n/// indistinguishable from random bytes.\npub fn fields_to_bytes<let N: u32>(fields: [Field; N]) -> [u8; 32 * N] {\n let mut bytes = [0; 32 * N];\n\n for i in 0..N {\n let field_as_bytes: [u8; 32] = fields[i].to_be_bytes();\n\n for j in 0..32 {\n bytes[i * 32 + j] = field_as_bytes[j];\n }\n }\n\n bytes\n}\n\n/// Converts an input BoundedVec of bytes into a BoundedVec of fields. Arbitrary byte arrays are not allowed: this\n/// is assumed to be an array obtained via `fields_to_bytes`, i.e. one that actually represents fields. To convert\n/// a byte array into Fields, use `bytes_to_fields`.\n///\n/// The input bytes are chunked into chunks of 32 bytes. Each 32-byte chunk is viewed as big-endian, and is converted\n/// into a Field.\n/// For example, [1, 10, 3, ..., 0] (32 bytes) is encoded as [1 * 256^31 + 10 * 256^30 + 3 * 256^29 + ... + 0]\n/// Note 1: N must be a multiple of 32 bytes\n/// Note 2: The max value check code was taken from std::field::to_be_bytes function.\npub fn fields_from_bytes<let N: u32>(bytes: BoundedVec<u8, N>) -> BoundedVec<Field, N / 32> {\n // Assert that input length is a multiple of 32\n assert(bytes.len() % 32 == 0, \"Input length must be a multiple of 32\");\n\n let mut fields = BoundedVec::new();\n\n let p = std::field::modulus_be_bytes();\n\n // Since input length is a multiple of 32, we can simply process all chunks fully\n for i in 0..bytes.len() / 32 {\n let mut field = 0;\n\n // Process each byte in the 32-byte chunk\n let mut ok = false;\n\n for j in 0..32 {\n let next_byte = bytes.get(i * 32 + j);\n field = field * 256 + next_byte as Field;\n\n if !ok {\n if next_byte != p[j] {\n assert(next_byte < p[j], \"Value does not fit in field\");\n ok = true;\n }\n }\n }\n assert(ok, \"Value does not fit in field\");\n\n fields.push(field);\n }\n\n fields\n}\n\nmod tests {\n use crate::utils::array::subarray;\n use super::{fields_from_bytes, fields_to_bytes};\n\n #[test]\n unconstrained fn random_fields_to_bytes_and_back(input: [Field; 3]) {\n // Convert to bytes\n let bytes = fields_to_bytes(input);\n\n // At this point in production, the log flies through the system and we get a BoundedVec on the other end.\n // So we need to convert the field array to a BoundedVec to be able to feed it to the `fields_from_bytes`\n // function.\n // 113 is an arbitrary max length that is larger than the input length of 96.\n let bytes_as_bounded_vec = BoundedVec::<_, 113>::from_array(bytes);\n\n // Convert back to fields\n let fields_back = fields_from_bytes(bytes_as_bounded_vec);\n\n // Compare the original input with the round-tripped result\n assert_eq(fields_back.len(), input.len());\n assert_eq(subarray(fields_back.storage(), 0), input);\n }\n\n #[test(should_fail_with = \"Input length must be a multiple of 32\")]\n unconstrained fn to_fields_assert() {\n // 143 is an arbitrary max length that is larger than 33\n let input = BoundedVec::<_, 143>::from_array([\n 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,\n ]);\n\n // This should fail since 33 is not a multiple of 32\n let _fields = fields_from_bytes(input);\n }\n\n #[test]\n unconstrained fn fields_from_bytes_max_value() {\n let max_field_as_bytes: [u8; 32] = (-1).to_be_bytes();\n let input = BoundedVec::<_, 32>::from_array(max_field_as_bytes);\n\n let fields = fields_from_bytes(input);\n\n // The result should be a largest value storable in a field (-1 since we are modulo-ing)\n assert_eq(fields.get(0), -1);\n }\n\n // In this test we verify that overflow check works by taking the max allowed value, bumping a random byte\n // and then feeding it to `fields_from_bytes` as input.\n #[test(should_fail_with = \"Value does not fit in field\")]\n unconstrained fn fields_from_bytes_overflow(random_value: u8) {\n let index_of_byte_to_bump = random_value % 32;\n\n // Obtain the byte representation of the maximum field value\n let max_field_value_as_bytes: [u8; 32] = (-1).to_be_bytes();\n\n let byte_to_bump = max_field_value_as_bytes[index_of_byte_to_bump as u32];\n\n // Skip test execution if the selected byte is already at maximum value (255).\n // This is acceptable since we are using fuzz testing to generate many test cases.\n if byte_to_bump != 255 {\n let mut input = BoundedVec::<_, 32>::from_array(max_field_value_as_bytes);\n\n // Increment the selected byte to exceed the field's maximum value\n input.set(index_of_byte_to_bump as u32, byte_to_bump + 1);\n\n // Attempt the conversion, which should fail due to the value exceeding the field's capacity\n let _fields = fields_from_bytes(input);\n }\n }\n\n}\n"
4853
4853
  },
4854
- "238": {
4854
+ "240": {
4855
4855
  "path": "/home/aztec-dev/aztec-packages/noir-projects/aztec-nr/aztec/src/utils/point.nr",
4856
4856
  "source": "use protocol_types::{point::Point, utils::field::sqrt};\n\n// I am storing the modulus minus 1 divided by 2 here because full modulus would throw \"String literal too large\" error\n// Full modulus is 21888242871839275222246405745257275088548364400416034343698204186575808495617\nglobal BN254_FR_MODULUS_DIV_2: Field =\n 10944121435919637611123202872628637544274182200208017171849102093287904247808;\n\n/// Converts a point to a byte array.\n///\n/// We don't serialize the point at infinity flag because this function is used in situations where we do not want\n/// to waste the extra byte (encrypted log).\npub fn point_to_bytes(p: Point) -> [u8; 32] {\n // Note that there is 1 more free bit in the 32 bytes (254 bits currently occupied by the x coordinate, 1 bit for\n // the \"sign\") so it's possible to use that last bit as an \"is_infinite\" flag if desired in the future.\n assert(!p.is_infinite, \"Cannot serialize point at infinity as bytes.\");\n\n let mut result: [u8; 32] = p.x.to_be_bytes();\n\n if get_sign_of_point(p) {\n // y is <= (modulus - 1) / 2 so we set the sign bit to 1\n // Here we leverage that field fits into 254 bits (log2(Fr.MODULUS) < 254) and given that we serialize Fr to 32\n // bytes and we use big-endian the 2 most significant bits are never populated. Hence we can use one of\n // the bits as a sign bit.\n result[0] += 128;\n }\n\n result\n}\n\n/**\n * Returns: true if p.y <= MOD_DIV_2, else false.\n */\npub fn get_sign_of_point(p: Point) -> bool {\n // We store only a \"sign\" of the y coordinate because the rest can be derived from the x coordinate. To get\n // the sign we check if the y coordinate is less or equal than the curve's order minus 1 divided by 2.\n // Ideally we'd do `y <= MOD_DIV_2`, but there's no `lte` function, so instead we do `!(y > MOD_DIV_2)`, which is\n // equivalent, and then rewrite that as `!(MOD_DIV_2 < y)`, since we also have no `gt` function.\n !BN254_FR_MODULUS_DIV_2.lt(p.y)\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there\n/// is no corresponding y value in the field that satisfies the curve equation), it may not be\n/// possible to reconstruct a `Point`. `Option::none()` is returned in such cases.\npub fn point_from_x_coord(x: Field) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n sqrt(rhs).map(|y| Point { x, y, is_infinite: false })\n}\n\n/// Returns a `Point` in the Grumpkin curve given its x coordinate and sign for the y coordinate.\n///\n/// Because not all values in the field are valid x coordinates of points in the curve (i.e. there\n/// is no corresponding y value in the field that satisfies the curve equation), it may not be\n/// possible to reconstruct a `Point`. `Option::none()` is returned in such cases.\n///\n/// @param x - The x coordinate of the point\n/// @param sign - The \"sign\" of the y coordinate - determines whether y <= (Fr.MODULUS - 1) / 2\npub fn point_from_x_coord_and_sign(x: Field, sign: bool) -> Option<Point> {\n // y ^ 2 = x ^ 3 - 17\n let rhs = x * x * x - 17;\n\n sqrt(rhs).map(|y| {\n // If there is a square root, we need to ensure it has the correct \"sign\"\n let y_is_positive = !BN254_FR_MODULUS_DIV_2.lt(y);\n let final_y = if y_is_positive == sign { y } else { -y };\n Point { x, y: final_y, is_infinite: false }\n })\n}\n\nmod test {\n use crate::utils::point::{point_from_x_coord, point_from_x_coord_and_sign, point_to_bytes};\n use dep::protocol_types::point::Point;\n use dep::protocol_types::utils::field::pow;\n\n #[test]\n unconstrained fn test_point_to_bytes_positive_sign() {\n let p = Point {\n x: 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73,\n y: 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_positive_sign = [\n 154, 244, 31, 93, 233, 100, 70, 220, 55, 118, 161, 235, 45, 152, 187, 149, 107, 122,\n 205, 153, 121, 166, 120, 84, 190, 198, 250, 124, 41, 115, 189, 115,\n ];\n assert_eq(expected_compressed_point_positive_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_to_bytes_negative_sign() {\n let p = Point {\n x: 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5,\n y: 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0,\n is_infinite: false,\n };\n\n let compressed_point = point_to_bytes(p);\n\n let expected_compressed_point_negative_sign = [\n 36, 115, 113, 101, 46, 85, 221, 116, 201, 175, 141, 190, 159, 180, 73, 49, 186, 41, 169,\n 34, 153, 148, 56, 75, 215, 7, 119, 150, 193, 78, 226, 181,\n ];\n\n assert_eq(expected_compressed_point_negative_sign, compressed_point);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_and_sign() {\n // Test positive y coordinate\n let x = 0x1af41f5de96446dc3776a1eb2d98bb956b7acd9979a67854bec6fa7c2973bd73;\n let sign = true;\n let p = point_from_x_coord_and_sign(x, sign).unwrap();\n\n assert_eq(p.x, x);\n assert_eq(p.y, 0x07fc22c7f2c7057571f137fe46ea9c95114282bc95d37d71ec4bfb88de457d4a);\n assert_eq(p.is_infinite, false);\n\n // Test negative y coordinate\n let x2 = 0x247371652e55dd74c9af8dbe9fb44931ba29a9229994384bd7077796c14ee2b5;\n let sign2 = false;\n let p2 = point_from_x_coord_and_sign(x2, sign2).unwrap();\n\n assert_eq(p2.x, x2);\n assert_eq(p2.y, 0x26441aec112e1ae4cee374f42556932001507ad46e255ffb27369c7e3766e5c0);\n assert_eq(p2.is_infinite, false);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_valid() {\n // x = 8 is a known quadratic residue - should give a valid point\n let result = point_from_x_coord(Field::from(8));\n assert(result.is_some());\n\n let point = result.unwrap();\n assert_eq(point.x, Field::from(8));\n // Check curve equation y^2 = x^3 - 17\n assert_eq(pow(point.y, 2), pow(point.x, 3) - 17);\n }\n\n #[test]\n unconstrained fn test_point_from_x_coord_invalid() {\n // x = 3 is a non-residue for this curve - should give None\n let x = Field::from(3);\n let maybe_point = point_from_x_coord(x);\n assert(maybe_point.is_none());\n }\n\n}\n"
4857
4857
  },
4858
- "249": {
4858
+ "251": {
4859
4859
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/poseidon/v0.1.1/src/poseidon2.nr",
4860
4860
  "source": "use std::default::Default;\nuse std::hash::Hasher;\n\ncomptime global RATE: u32 = 3;\n\npub struct Poseidon2 {\n cache: [Field; 3],\n state: [Field; 4],\n cache_size: u32,\n squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2 {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2 {\n let mut result =\n Poseidon2 { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = crate::poseidon2_permutation(self.state, 4);\n }\n\n fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let two_pow_64 = 18446744073709551616;\n let iv: Field = (in_len as Field) * two_pow_64;\n let mut sponge = Poseidon2::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n\npub struct Poseidon2Hasher {\n _state: [Field],\n}\n\nimpl Hasher for Poseidon2Hasher {\n fn finish(self) -> Field {\n let iv: Field = (self._state.len() as Field) * 18446744073709551616; // iv = (self._state.len() << 64)\n let mut sponge = Poseidon2::new(iv);\n for i in 0..self._state.len() {\n sponge.absorb(self._state[i]);\n }\n sponge.squeeze()\n }\n\n fn write(&mut self, input: Field) {\n self._state = self._state.push_back(input);\n }\n}\n\nimpl Default for Poseidon2Hasher {\n fn default() -> Self {\n Poseidon2Hasher { _state: &[] }\n }\n}\n"
4861
4861
  },
@@ -4863,43 +4863,43 @@
4863
4863
  "path": "std/array/mod.nr",
4864
4864
  "source": "use crate::cmp::{Eq, Ord};\nuse crate::convert::From;\nuse crate::runtime::is_unconstrained;\n\nmod check_shuffle;\nmod quicksort;\n\nimpl<T, let N: u32> [T; N] {\n /// Returns the length of this array.\n ///\n /// ```noir\n /// fn len(self) -> Field\n /// ```\n ///\n /// example\n ///\n /// ```noir\n /// fn main() {\n /// let array = [42, 42];\n /// assert(array.len() == 2);\n /// }\n /// ```\n #[builtin(array_len)]\n pub fn len(self) -> u32 {}\n\n /// Returns this array as a slice.\n ///\n /// ```noir\n /// let array = [1, 2];\n /// let slice = array.as_slice();\n /// assert_eq(slice, &[1, 2]);\n /// ```\n #[builtin(as_slice)]\n pub fn as_slice(self) -> [T] {}\n\n /// Applies a function to each element of this array, returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.map(|a| a * 2);\n /// assert_eq(b, [2, 4, 6]);\n /// ```\n pub fn map<U, Env>(self, f: fn[Env](T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array along with its index,\n /// returning a new array containing the mapped elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let b = a.mapi(|i, a| i + a * 2);\n /// assert_eq(b, [2, 5, 8]);\n /// ```\n pub fn mapi<U, Env>(self, f: fn[Env](u32, T) -> U) -> [U; N] {\n let uninitialized = crate::mem::zeroed();\n let mut ret = [uninitialized; N];\n\n for i in 0..self.len() {\n ret[i] = f(i, self[i]);\n }\n\n ret\n }\n\n /// Applies a function to each element of this array.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// let mut i = 0;\n /// a.for_each(|x| {\n /// b[i] = x;\n /// i += 1;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_each<Env>(self, f: fn[Env](T) -> ()) {\n for i in 0..self.len() {\n f(self[i]);\n }\n }\n\n /// Applies a function to each element of this array along with its index.\n ///\n /// Example:\n ///\n /// ```rust\n /// let a = [1, 2, 3];\n /// let mut b = [0; 3];\n /// a.for_eachi(|i, x| {\n /// b[i] = x;\n /// });\n /// assert_eq(a, b);\n /// ```\n pub fn for_eachi<Env>(self, f: fn[Env](u32, T) -> ()) {\n for i in 0..self.len() {\n f(i, self[i]);\n }\n }\n\n /// Applies a function to each element of the array, returning the final accumulated value. The first\n /// parameter is the initial value.\n ///\n /// This is a left fold, so the given function will be applied to the accumulator and first element of\n /// the array, then the second, and so on. For a given call the expected result would be equivalent to:\n ///\n /// ```rust\n /// let a1 = [1];\n /// let a2 = [1, 2];\n /// let a3 = [1, 2, 3];\n ///\n /// let f = |a, b| a - b;\n /// a1.fold(10, f); //=> f(10, 1)\n /// a2.fold(10, f); //=> f(f(10, 1), 2)\n /// a3.fold(10, f); //=> f(f(f(10, 1), 2), 3)\n ///\n /// assert_eq(a3.fold(10, f), 10 - 1 - 2 - 3);\n /// ```\n pub fn fold<U, Env>(self, mut accumulator: U, f: fn[Env](U, T) -> U) -> U {\n for elem in self {\n accumulator = f(accumulator, elem);\n }\n accumulator\n }\n\n /// Same as fold, but uses the first element as the starting element.\n ///\n /// Requires the input array to be non-empty.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [1, 2, 3, 4];\n /// let reduced = arr.reduce(|a, b| a + b);\n /// assert(reduced == 10);\n /// }\n /// ```\n pub fn reduce<Env>(self, f: fn[Env](T, T) -> T) -> T {\n let mut accumulator = self[0];\n for i in 1..self.len() {\n accumulator = f(accumulator, self[i]);\n }\n accumulator\n }\n\n /// Returns true if all the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 2];\n /// let all = arr.all(|a| a == 2);\n /// assert(all);\n /// }\n /// ```\n pub fn all<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = true;\n for elem in self {\n ret &= predicate(elem);\n }\n ret\n }\n\n /// Returns true if any of the elements in this array satisfy the given predicate.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr = [2, 2, 2, 2, 5];\n /// let any = arr.any(|a| a == 5);\n /// assert(any);\n /// }\n /// ```\n pub fn any<Env>(self, predicate: fn[Env](T) -> bool) -> bool {\n let mut ret = false;\n for elem in self {\n ret |= predicate(elem);\n }\n ret\n }\n\n /// Concatenates this array with another array.\n ///\n /// Example:\n ///\n /// ```noir\n /// fn main() {\n /// let arr1 = [1, 2, 3, 4];\n /// let arr2 = [6, 7, 8, 9, 10, 11];\n /// let concatenated_arr = arr1.concat(arr2);\n /// assert(concatenated_arr == [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n /// }\n /// ```\n pub fn concat<let M: u32>(self, array2: [T; M]) -> [T; N + M] {\n let mut result = [crate::mem::zeroed(); N + M];\n for i in 0..N {\n result[i] = self[i];\n }\n for i in 0..M {\n result[i + N] = array2[i];\n }\n result\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Ord + Eq,\n{\n /// Returns a new sorted array. The original array remains untouched. Notice that this function will\n /// only work for arrays of fields or integers, not for any arbitrary type. This is because the sorting\n /// logic it uses internally is optimized specifically for these values. If you need a sort function to\n /// sort any type, you should use the [`Self::sort_via`] function.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32];\n /// let sorted = arr.sort();\n /// assert(sorted == [32, 42]);\n /// }\n /// ```\n pub fn sort(self) -> Self {\n self.sort_via(|a, b| a <= b)\n }\n}\n\nimpl<T, let N: u32> [T; N]\nwhere\n T: Eq,\n{\n /// Returns a new sorted array by sorting it with a custom comparison function.\n /// The original array remains untouched.\n /// The ordering function must return true if the first argument should be sorted to be before the second argument or is equal to the second argument.\n ///\n /// Using this method with an operator like `<` that does not return `true` for equal values will result in an assertion failure for arrays with equal elements.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let arr = [42, 32]\n /// let sorted_ascending = arr.sort_via(|a, b| a <= b);\n /// assert(sorted_ascending == [32, 42]); // verifies\n ///\n /// let sorted_descending = arr.sort_via(|a, b| a >= b);\n /// assert(sorted_descending == [32, 42]); // does not verify\n /// }\n /// ```\n pub fn sort_via<Env>(self, ordering: fn[Env](T, T) -> bool) -> Self {\n // Safety: `sorted` array is checked to be:\n // a. a permutation of `input`'s elements\n // b. satisfying the predicate `ordering`\n let sorted = unsafe { quicksort::quicksort(self, ordering) };\n\n if !is_unconstrained() {\n for i in 0..N - 1 {\n assert(\n ordering(sorted[i], sorted[i + 1]),\n \"Array has not been sorted correctly according to `ordering`.\",\n );\n }\n check_shuffle::check_shuffle(self, sorted);\n }\n sorted\n }\n}\n\nimpl<let N: u32> [u8; N] {\n /// Converts a byte array of type `[u8; N]` to a string. Note that this performs no UTF-8 validation -\n /// the given array is interpreted as-is as a string.\n ///\n /// Example:\n ///\n /// ```rust\n /// fn main() {\n /// let hi = [104, 105].as_str_unchecked();\n /// assert_eq(hi, \"hi\");\n /// }\n /// ```\n #[builtin(array_as_str_unchecked)]\n pub fn as_str_unchecked(self) -> str<N> {}\n}\n\nimpl<let N: u32> From<str<N>> for [u8; N] {\n /// Returns an array of the string bytes.\n fn from(s: str<N>) -> Self {\n s.as_bytes()\n }\n}\n\nmod test {\n #[test]\n fn map_empty() {\n assert_eq([].map(|x| x + 1), []);\n }\n\n global arr_with_100_values: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2, 54,\n 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41, 19, 98,\n 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21, 43, 86, 35,\n 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15, 127, 81, 30, 8,\n 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n global expected_with_100_values: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30, 32,\n 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58, 61, 62,\n 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82, 84, 84, 86,\n 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114, 114, 116, 118,\n 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n fn sort_u32(a: u32, b: u32) -> bool {\n a <= b\n }\n\n #[test]\n fn test_sort() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort();\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort();\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_100_values_comptime() {\n let sorted = arr_with_100_values.sort();\n assert(sorted == expected_with_100_values);\n }\n\n #[test]\n fn test_sort_via() {\n let mut arr: [u32; 7] = [3, 6, 8, 10, 1, 2, 1];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 7] = [1, 1, 2, 3, 6, 8, 10];\n assert(sorted == expected);\n }\n\n #[test]\n fn test_sort_via_100_values() {\n let mut arr: [u32; 100] = [\n 42, 123, 87, 93, 48, 80, 50, 5, 104, 84, 70, 47, 119, 66, 71, 121, 3, 29, 42, 118, 2,\n 54, 89, 44, 81, 0, 26, 106, 68, 96, 84, 48, 95, 54, 45, 32, 89, 100, 109, 19, 37, 41,\n 19, 98, 53, 114, 107, 66, 6, 74, 13, 19, 105, 64, 123, 28, 44, 50, 89, 58, 123, 126, 21,\n 43, 86, 35, 21, 62, 82, 0, 108, 120, 72, 72, 62, 80, 12, 71, 70, 86, 116, 73, 38, 15,\n 127, 81, 30, 8, 125, 28, 26, 69, 114, 63, 27, 28, 61, 42, 13, 32,\n ];\n\n let sorted = arr.sort_via(sort_u32);\n\n let expected: [u32; 100] = [\n 0, 0, 2, 3, 5, 6, 8, 12, 13, 13, 15, 19, 19, 19, 21, 21, 26, 26, 27, 28, 28, 28, 29, 30,\n 32, 32, 35, 37, 38, 41, 42, 42, 42, 43, 44, 44, 45, 47, 48, 48, 50, 50, 53, 54, 54, 58,\n 61, 62, 62, 63, 64, 66, 66, 68, 69, 70, 70, 71, 71, 72, 72, 73, 74, 80, 80, 81, 81, 82,\n 84, 84, 86, 86, 87, 89, 89, 89, 93, 95, 96, 98, 100, 104, 105, 106, 107, 108, 109, 114,\n 114, 116, 118, 119, 120, 121, 123, 123, 123, 125, 126, 127,\n ];\n assert(sorted == expected);\n }\n\n #[test]\n fn mapi_empty() {\n assert_eq([].mapi(|i, x| i * x + 1), []);\n }\n\n #[test]\n fn for_each_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_each(|_x| assert(false));\n }\n\n #[test]\n fn for_eachi_empty() {\n let empty_array: [Field; 0] = [];\n empty_array.for_eachi(|_i, _x| assert(false));\n }\n\n #[test]\n fn map_example() {\n let a = [1, 2, 3];\n let b = a.map(|a| a * 2);\n assert_eq(b, [2, 4, 6]);\n }\n\n #[test]\n fn mapi_example() {\n let a = [1, 2, 3];\n let b = a.mapi(|i, a| i + a * 2);\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn for_each_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n let mut i = 0;\n let i_ref = &mut i;\n a.for_each(|x| {\n b_ref[*i_ref] = x * 2;\n *i_ref += 1;\n });\n assert_eq(b, [2, 4, 6]);\n assert_eq(i, 3);\n }\n\n #[test]\n fn for_eachi_example() {\n let a = [1, 2, 3];\n let mut b = [0, 0, 0];\n let b_ref = &mut b;\n a.for_eachi(|i, a| { b_ref[i] = i + a * 2; });\n assert_eq(b, [2, 5, 8]);\n }\n\n #[test]\n fn concat() {\n let arr1 = [1, 2, 3, 4];\n let arr2 = [6, 7, 8, 9, 10, 11];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1, 2, 3, 4, 6, 7, 8, 9, 10, 11]);\n }\n\n #[test]\n fn concat_zero_length_with_something() {\n let arr1 = [];\n let arr2 = [1];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_something_with_zero_length() {\n let arr1 = [1];\n let arr2 = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, [1]);\n }\n\n #[test]\n fn concat_zero_lengths() {\n let arr1: [Field; 0] = [];\n let arr2: [Field; 0] = [];\n let concatenated_arr = arr1.concat(arr2);\n assert_eq(concatenated_arr, []);\n }\n}\n"
4865
4865
  },
4866
- "328": {
4866
+ "330": {
4867
4867
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/debug_log.nr",
4868
4868
  "source": "// TODO: Expose other wrapped functions than debug (info, warn)\n// ['silent', 'fatal', 'error', 'warn', 'info', 'verbose', 'debug', 'trace']\n\npub global SILENT_LOG_LEVEL: u8 = 0;\npub global FATAL_LOG_LEVEL: u8 = 1;\npub global ERROR_LOG_LEVEL: u8 = 2;\npub global WARN_LOG_LEVEL: u8 = 3;\npub global INFO_LOG_LEVEL: u8 = 4;\npub global VERBOSE_LOG_LEVEL: u8 = 5;\npub global DEBUG_LOG_LEVEL: u8 = 6;\npub global TRACE_LOG_LEVEL: u8 = 7;\n\n/// 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/// Same as debug_log, but allows to customize the log level.\n/// Consider changing just to 'log'\npub fn debug_log_with_level<let N: u32>(log_level: u8, msg: str<N>) {\n debug_log_format_with_level(log_level, 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 // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(DEBUG_LOG_LEVEL, msg, args) };\n}\n\n/// Same as debug_log_format, but allows to customize the log level.\n/// Consider changing just to 'log_format'\npub fn debug_log_format_with_level<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_array_oracle_wrapper(log_level, msg, args) };\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` slice.\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 slice: {}\", [e1, e2, e3, e4]);\npub fn debug_log_format_slice<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {\n // Safety: This oracle call returns nothing: we only call it for its side effects. It is therefore always safe\n // to call.\n unsafe { debug_log_slice_oracle_wrapper(log_level, msg, args) };\n}\n\n// We provide two versions of the debug log oracle: one that takes args as a slice and another one that takes args as an array.\n// We do this since conversion from array to slice generates overhead in public functions, since opcodes need to be emitted for the conversion.\n// By exposing the two flavors, we avoid conversions since the AVM is able to handle both arrays an slices in this oracle.\n\nunconstrained fn debug_log_slice_oracle_wrapper<let M: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field],\n) {\n debug_log_slice_oracle(log_level, msg, args);\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(utilityDebugLog)]\nunconstrained fn debug_log_slice_oracle<let M: u32>(log_level: u8, msg: str<M>, args: [Field]) {}\n\nunconstrained fn debug_log_array_oracle_wrapper<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n args: [Field; N],\n) {\n debug_log_array_oracle(log_level, msg, N, args);\n}\n\n#[oracle(utilityDebugLog)]\nunconstrained fn debug_log_array_oracle<let M: u32, let N: u32>(\n log_level: u8,\n msg: str<M>,\n length: u32,\n args: [Field; N],\n) {}\n"
4869
4869
  },
4870
- "338": {
4870
+ "340": {
4871
4871
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/hash.nr",
4872
4872
  "source": "mod poseidon2_chunks;\n\nuse crate::{\n abis::{\n contract_class_function_leaf_preimage::ContractClassFunctionLeafPreimage,\n function_selector::FunctionSelector,\n note_hash::NoteHash,\n nullifier::Nullifier,\n private_log::{PrivateLog, PrivateLogData},\n transaction::tx_request::TxRequest,\n },\n address::{AztecAddress, EthAddress},\n constants::{\n CONTRACT_CLASS_LOG_SIZE_IN_FIELDS, FUNCTION_TREE_HEIGHT, GENERATOR_INDEX__NOTE_HASH_NONCE,\n GENERATOR_INDEX__OUTER_NULLIFIER, GENERATOR_INDEX__SILOED_NOTE_HASH,\n GENERATOR_INDEX__UNIQUE_NOTE_HASH, NULL_MSG_SENDER_CONTRACT_ADDRESS, TWO_POW_64,\n },\n merkle_tree::root_from_sibling_path,\n messaging::l2_to_l1_message::L2ToL1Message,\n poseidon2::Poseidon2Sponge,\n side_effect::{Counted, Scoped},\n traits::{FromField, Hash, ToField},\n utils::field::{field_from_bytes, field_from_bytes_32_trunc},\n};\n\npub use poseidon2_chunks::poseidon2_absorb_in_chunks_existing_sponge;\nuse poseidon2_chunks::poseidon2_absorb_in_chunks;\nuse std::embedded_curve_ops::EmbeddedCurveScalar;\n\npub fn sha256_to_field<let N: u32>(bytes_to_hash: [u8; N]) -> Field {\n let sha256_hashed = sha256::digest(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\npub fn compute_note_hash_nonce(first_nullifier_in_tx: Field, note_index_in_tx: u32) -> Field {\n // Hashing the first nullifier with note index in tx is guaranteed to be unique (because all nullifiers are also\n // unique).\n poseidon2_hash_with_separator(\n [first_nullifier_in_tx, note_index_in_tx as Field],\n GENERATOR_INDEX__NOTE_HASH_NONCE,\n )\n}\n\npub fn compute_unique_note_hash(note_nonce: Field, siloed_note_hash: Field) -> Field {\n let inputs = [note_nonce, siloed_note_hash];\n poseidon2_hash_with_separator(inputs, GENERATOR_INDEX__UNIQUE_NOTE_HASH)\n}\n\npub fn compute_nonce_and_unique_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n let note_nonce = compute_note_hash_nonce(first_nullifier, note_index_in_tx);\n compute_unique_note_hash(note_nonce, siloed_note_hash)\n}\n\npub fn compute_siloed_note_hash(app: AztecAddress, note_hash: Field) -> Field {\n poseidon2_hash_with_separator(\n [app.to_field(), note_hash],\n GENERATOR_INDEX__SILOED_NOTE_HASH,\n )\n}\n\n/// Computes unique note hashes from siloed note hashes\npub fn compute_unique_siloed_note_hash(\n siloed_note_hash: Field,\n first_nullifier: Field,\n note_index_in_tx: u32,\n) -> Field {\n if siloed_note_hash == 0 {\n 0\n } else {\n compute_nonce_and_unique_note_hash(siloed_note_hash, first_nullifier, note_index_in_tx)\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: Scoped<Counted<NoteHash>>) -> Field {\n if note_hash.contract_address.is_zero() {\n 0\n } else {\n compute_siloed_note_hash(note_hash.contract_address, note_hash.innermost())\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: Scoped<Counted<Nullifier>>) -> Field {\n let value = nullifier.innermost().value;\n // Q: shouldn't we be checking whether the _whole_ nullifier is empty?\n // A: We don't have to. The init and inner circuits add contract address to non-empty nullifiers.\n // So we know we should silo it if the contract address is not empty.\n if nullifier.contract_address.is_zero() {\n value // Return `value` instead of 0 because an already-siloed nullifier's contract address is zero.\n } else {\n compute_siloed_nullifier(nullifier.contract_address, value)\n }\n}\n\npub fn create_protocol_nullifier(tx_request: TxRequest) -> Scoped<Counted<Nullifier>> {\n Nullifier { value: tx_request.hash(), note_hash: 0 }.count(1).scope(\n NULL_MSG_SENDER_CONTRACT_ADDRESS,\n )\n}\n\npub fn compute_siloed_private_log_field(contract_address: AztecAddress, field: Field) -> Field {\n poseidon2_hash([contract_address.to_field(), field])\n}\n\npub fn silo_private_log(private_log: Scoped<Counted<PrivateLogData>>) -> PrivateLog {\n let log = private_log.innermost().log;\n if private_log.contract_address.is_zero() {\n log\n } else {\n let mut fields = log.fields;\n fields[0] = compute_siloed_private_log_field(private_log.contract_address, fields[0]);\n PrivateLog::new(fields, log.length)\n }\n}\n\npub fn compute_contract_class_log_hash(log: [Field; CONTRACT_CLASS_LOG_SIZE_IN_FIELDS]) -> Field {\n poseidon2_hash(log)\n}\n\npub fn compute_app_secret_key(\n master_secret_key: EmbeddedCurveScalar,\n app_address: AztecAddress,\n app_secret_generator: Field,\n) -> Field {\n poseidon2_hash_with_separator(\n [master_secret_key.hi, master_secret_key.lo, app_address.to_field()],\n app_secret_generator,\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 contract_address_bytes: [u8; 32] = contract_address.to_field().to_be_bytes();\n let recipient_bytes: [u8; 20] = recipient.to_be_bytes();\n let content_bytes: [u8; 32] = content.to_be_bytes();\n let rollup_version_id_bytes: [u8; 32] = rollup_version_id.to_be_bytes();\n let chain_id_bytes: [u8; 32] = chain_id.to_be_bytes();\n\n let mut bytes: [u8; 148] = std::mem::zeroed();\n for i in 0..32 {\n bytes[i] = contract_address_bytes[i];\n bytes[i + 32] = rollup_version_id_bytes[i];\n // 64 - 84 are for recipient.\n bytes[i + 84] = chain_id_bytes[i];\n bytes[i + 116] = content_bytes[i];\n }\n\n for i in 0..20 {\n bytes[64 + i] = recipient_bytes[i];\n }\n\n sha256_to_field(bytes)\n}\n\npub fn silo_l2_to_l1_message(\n msg: Scoped<L2ToL1Message>,\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.inner.recipient,\n msg.inner.content,\n rollup_version_id,\n chain_id,\n )\n }\n}\n\n/// Computes sha256 hash of 2 input fields.\n///\n/// @returns A truncated field (i.e., the first byte is always 0).\npub fn accumulate_sha256(v0: Field, v1: Field) -> Field {\n // Concatenate two fields into 32 x 2 = 64 bytes\n let v0_as_bytes: [u8; 32] = v0.to_be_bytes();\n let v1_as_bytes: [u8; 32] = v1.to_be_bytes();\n let hash_input_flattened = v0_as_bytes.concat(v1_as_bytes);\n\n sha256_to_field(hash_input_flattened)\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 poseidon::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 let inputs_with_separator = [separator.to_field()].concat(inputs);\n poseidon2_hash(inputs_with_separator)\n}\n\n/// Computes a Poseidon2 hash over a dynamic-length subarray of the given input.\n/// Only the first `in_len` fields of `input` are absorbed; any remaining fields are ignored.\n/// The caller is responsible for ensuring that the input is padded with zeros if required.\n#[no_predicates]\npub fn poseidon2_hash_subarray<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n sponge.squeeze()\n}\n\n// NB the below is the same as poseidon::poseidon2::Poseidon2::hash(), but replacing a range check with a bit check,\n// and absorbing in chunks of 3 below.\n#[no_predicates]\npub fn poseidon2_cheaper_variable_hash<let N: u32>(input: [Field; N], in_len: u32) -> Field {\n let mut sponge = poseidon2_absorb_in_chunks(input, in_len);\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if in_len != N {\n sponge.absorb(1);\n }\n sponge.squeeze()\n}\n\n// This function is unconstrained because it is intended to be used in unconstrained context only as\n// in constrained contexts it would be too inefficient.\npub unconstrained fn poseidon2_hash_with_separator_bounded_vec<let N: u32, T>(\n inputs: BoundedVec<Field, N>,\n separator: T,\n) -> Field\nwhere\n T: ToField,\n{\n let in_len = inputs.len() + 1;\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n sponge.absorb(separator.to_field());\n\n for i in 0..inputs.len() {\n sponge.absorb(inputs.get(i));\n }\n\n sponge.squeeze()\n}\n\n#[no_predicates]\npub fn poseidon2_hash_bytes<let N: u32>(inputs: [u8; N]) -> Field {\n let mut fields = [0; (N + 30) / 31];\n let mut field_index = 0;\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 fields[field_index] = field_from_bytes(current_field, false);\n current_field = [0; 31];\n field_index += 1;\n }\n }\n if field_index != fields.len() {\n fields[field_index] = field_from_bytes(current_field, false);\n }\n poseidon2_hash(fields)\n}\n\n#[test]\nfn poseidon_chunks_matches_fixed() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n let mut fixed_input = [3; 501];\n assert(in_len == fixed_input.len()); // sanity check\n for i in 0..in_len {\n input[i] = 3;\n }\n let sub_chunk_hash = poseidon2_hash_subarray(input, in_len);\n let fixed_len_hash = poseidon::poseidon2::Poseidon2::hash(fixed_input, fixed_input.len());\n assert(sub_chunk_hash == fixed_len_hash);\n}\n\n#[test]\nfn poseidon_chunks_matches_variable() {\n let in_len = 501;\n let mut input: [Field; 4096] = [0; 4096];\n for i in 0..in_len {\n input[i] = 3;\n }\n let variable_chunk_hash = poseidon2_cheaper_variable_hash(input, in_len);\n let variable_len_hash = poseidon::poseidon2::Poseidon2::hash(input, in_len);\n assert(variable_chunk_hash == variable_len_hash);\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 = sha256::digest(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 == 0x3b18c58c739716e76429634a61375c45b3b5cd470c22ab6d3e14cee23dd992);\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 == 0xaab2a5828156782b12a1dc6f336e2bc627eb1b9514b02d511f66296990c050);\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 L2ToL1Message { recipient: EthAddress::from_field(1), content: 2 }.scope(\n AztecAddress::from_field(3),\n ),\n version,\n chainId,\n );\n\n // The following value was generated by `yarn-project/stdlib/src/hash/hash.test.ts`\n let hash_from_typescript = 0x0081edf209e087ad31b3fd24263698723d57190bd1d6e9fe056fc0c0a68ee661;\n\n assert_eq(hash, hash_from_typescript);\n}\n\n#[test]\nunconstrained fn poseidon2_hash_with_separator_bounded_vec_matches_non_bounded_vec_version() {\n let inputs = BoundedVec::<Field, 4>::from_array([1, 2, 3]);\n let separator = 42;\n\n // Hash using bounded vec version\n let bounded_result = poseidon2_hash_with_separator_bounded_vec(inputs, separator);\n\n // Hash using regular version\n let regular_result = poseidon2_hash_with_separator([1, 2, 3], separator);\n\n // Results should match\n assert_eq(bounded_result, regular_result);\n}\n"
4873
4873
  },
4874
- "347": {
4874
+ "349": {
4875
4875
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/merkle_tree/root.nr",
4876
4876
  "source": "use crate::{hash::merkle_hash, merkle_tree::merkle_tree::MerkleTree};\n\n// Calculate the Merkle tree root from the sibling path and leaf.\n//\n// The leaf is hashed with its sibling, and then the result is hashed\n// with the next sibling etc in the path. The last hash is the root.\n//\n// TODO(David/Someone): The cpp code is using a uint256, whereas its\n// TODO a bit simpler in Noir to just have a bit array.\n// TODO: I'd generally like to avoid u256 for algorithms like\n// this because it means we never even need to consider cases where\n// the index is greater than p.\npub fn root_from_sibling_path<let N: u32>(\n leaf: Field,\n leaf_index: Field,\n sibling_path: [Field; N],\n) -> Field {\n let mut node = leaf;\n let indices: [u1; N] = leaf_index.to_le_bits();\n\n for i in 0..N {\n let (hash_left, hash_right) = if indices[i] == 1 {\n (sibling_path[i], node)\n } else {\n (node, sibling_path[i])\n };\n node = merkle_hash(hash_left, hash_right);\n }\n node\n}\n\npub fn calculate_tree_root<let N: u32>(leaves: [Field; N]) -> Field {\n MerkleTree::new(leaves).get_root()\n}\n\n/// These values are precomputed and we run tests to ensure that they are correct.\npub fn calculate_empty_tree_root(depth: u32) -> Field {\n if depth == 0 {\n 0\n } else if depth == 1 {\n 0x0b63a53787021a4a962a452c2921b3663aff1ffd8d5510540f8e659e782956f1\n } else if depth == 2 {\n 0x0e34ac2c09f45a503d2908bcb12f1cbae5fa4065759c88d501c097506a8b2290\n } else if depth == 3 {\n 0x21f9172d72fdcdafc312eee05cf5092980dda821da5b760a9fb8dbdf607c8a20\n } else if depth == 4 {\n 0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e\n } else if depth == 5 {\n 0x120157cfaaa49ce3da30f8b47879114977c24b266d58b0ac18b325d878aafddf\n } else if depth == 6 {\n 0x01c28fe1059ae0237b72334700697bdf465e03df03986fe05200cadeda66bd76\n } else if depth == 7 {\n 0x2d78ed82f93b61ba718b17c2dfe5b52375b4d37cbbed6f1fc98b47614b0cf21b\n } else if depth == 8 {\n 0x067243231eddf4222f3911defbba7705aff06ed45960b27f6f91319196ef97e1\n } else if depth == 9 {\n 0x1849b85f3c693693e732dfc4577217acc18295193bede09ce8b97ad910310972\n } else if depth == 10 {\n 0x2a775ea761d20435b31fa2c33ff07663e24542ffb9e7b293dfce3042eb104686\n } else {\n panic(f\"depth should be between 0 and 10\")\n }\n}\n\n#[test]\nfn test_merkle_root_interop_test() {\n // This is a test to ensure that we match the cpp implementation.\n // You can grep for `TEST_F(root_rollup_tests, noir_interop_test)`\n // to find the test that matches this.\n let root = calculate_tree_root([1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4]);\n assert(0x1a09d935ae110b4c861fcec8f9099ec30b4485022aeb3d3cf9d7168e38fdc231 == root);\n\n let empty_root = calculate_tree_root([0; 16]);\n assert(0x2373ea368857ec7af97e7b470d705848e2bf93ed7bef142a490f2119bcf82d8e == empty_root);\n}\n\n#[test]\nfn test_empty_subroot() {\n assert(calculate_empty_tree_root(0) == 0);\n\n let expected_empty_root_2 = calculate_tree_root([0; 2]);\n assert(calculate_empty_tree_root(1) == expected_empty_root_2);\n\n let expected_empty_root_4 = calculate_tree_root([0; 4]);\n assert(calculate_empty_tree_root(2) == expected_empty_root_4);\n\n let expected_empty_root_8 = calculate_tree_root([0; 8]);\n assert(calculate_empty_tree_root(3) == expected_empty_root_8);\n\n let expected_empty_root_16 = calculate_tree_root([0; 16]);\n assert(calculate_empty_tree_root(4) == expected_empty_root_16);\n\n let expected_empty_root_32 = calculate_tree_root([0; 32]);\n assert(calculate_empty_tree_root(5) == expected_empty_root_32);\n\n let expected_empty_root_64 = calculate_tree_root([0; 64]);\n assert(calculate_empty_tree_root(6) == expected_empty_root_64);\n\n let expected_empty_root_128 = calculate_tree_root([0; 128]);\n assert(calculate_empty_tree_root(7) == expected_empty_root_128);\n\n let expected_empty_root_256 = calculate_tree_root([0; 256]);\n assert(calculate_empty_tree_root(8) == expected_empty_root_256);\n\n let expected_empty_root_512 = calculate_tree_root([0; 512]);\n assert(calculate_empty_tree_root(9) == expected_empty_root_512);\n\n let expected_empty_root_1024 = calculate_tree_root([0; 1024]);\n assert(calculate_empty_tree_root(10) == expected_empty_root_1024);\n}\n"
4877
4877
  },
4878
- "351": {
4878
+ "353": {
4879
4879
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/mod.nr",
4880
4880
  "source": "use utils::derive_serialization_quotes;\n\npub mod utils;\n\n/// Generates the generic parameter declarations for a struct's trait implementation.\n///\n/// This function takes a struct type definition and generates the generic parameter declarations\n/// that go after the `impl` keyword. For example, given a struct with generics `N: u32` and `T`,\n/// it generates `<let N: u32, T>`.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate generic declarations for\n///\n/// # Returns\n/// A quoted code block containing the generic parameter declarations, or an empty quote if the struct\n/// has no generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// This function generates:\n/// ```\n/// <let N: u32, T>\n/// ```\ncomptime fn get_generics_declarations(s: TypeDefinition) -> Quoted {\n let generics = s.generics();\n\n if generics.len() > 0 {\n let generics_declarations_items = generics\n .map(|(name, maybe_integer_typ)| {\n // The second item in the generics tuple is an Option of an integer type that is Some only if\n // the generic is numeric.\n if maybe_integer_typ.is_some() {\n // The generic is numeric, so we return a quote defined as e.g. \"let N: u32\"\n let integer_type = maybe_integer_typ.unwrap();\n quote {let $name: $integer_type}\n } else {\n // The generic is not numeric, so we return a quote containing the name of the generic (e.g. \"T\")\n quote {$name}\n }\n })\n .join(quote {,});\n quote {<$generics_declarations_items>}\n } else {\n // The struct doesn't have any generics defined, so we just return an empty quote.\n quote {}\n }\n}\n\n/// Generates the `where` clause for a trait implementation that constrains non-numeric generic type parameters.\n///\n/// This function takes a struct type definition and a trait name, and generates a `where` clause that\n/// requires all non-numeric generic type parameters to implement the specified trait.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the where clause for\n/// - `trait_name`: The name of the trait that non-numeric generic parameters must implement\n///\n/// # Returns\n/// A quoted code block containing the where clause, or an empty quote if the struct has no non-numeric\n/// generic parameters\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Container<T, let N: u32> {\n/// items: [T; N],\n/// count: u32\n/// }\n/// ```\n///\n/// And trait name \"Serialize\", this function generates:\n/// ```\n/// where T: Serialize\n/// ```\ncomptime fn get_where_trait_clause(s: TypeDefinition, trait_name: Quoted) -> Quoted {\n let generics = s.generics();\n\n // The second item in the generics tuple is an Option of an integer type that is Some only if the generic is\n // numeric.\n let non_numeric_generics =\n generics.filter(|(_, maybe_integer_typ)| maybe_integer_typ.is_none());\n\n if non_numeric_generics.len() > 0 {\n let non_numeric_generics_declarations =\n non_numeric_generics.map(|(name, _)| quote {$name: $trait_name}).join(quote {,});\n quote {where $non_numeric_generics_declarations}\n } else {\n // There are no non-numeric generics, so we return an empty quote.\n quote {}\n }\n}\n\n/// Generates a `Serialize` trait implementation for a struct type.\n///\n/// # Parameters\n/// - `s`: The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A quoted code block containing the trait implementation\n///\n/// # Example\n/// For a struct defined as:\n/// ```\n/// struct Log<N> {\n/// fields: [Field; N],\n/// length: u32\n/// }\n/// ```\n///\n/// This function generates code equivalent to:\n/// ```\n/// impl<let N: u32> Serialize for Log<N> {\n/// let N: u32 = <[Field; N] as Serialize>::N + <u32 as Serialize>::N;\n///\n/// #[inline_always]\n/// fn serialize(self) -> [Field; Self::N] {\n/// let mut serialized_params = [0; _];\n/// let mut offset = 0;\n///\n/// let serialized_member = Serialize::serialize(self.fields);\n/// let serialized_member_len = <[Field; N] as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// let serialized_member = Serialize::serialize(self.length);\n/// let serialized_member_len = <u32 as Serialize>::N;\n/// for i in 0..serialized_member_len {\n/// serialized_params[i + offset] = serialized_member[i];\n/// }\n/// offset += serialized_member_len;\n///\n/// serialized_params\n/// }\n/// }\n/// ```\npub comptime fn derive_serialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n\n // We care only about the name and type so we drop the last item of the tuple\n let params = nested_struct.0.fields(nested_struct.1).map(|(name, typ, _)| (name, typ));\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Serialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_serialize_clause = get_where_trait_clause(s, quote {Serialize});\n\n let (function_body, params_len_quote, serialized_params_name) =\n derive_serialization_quotes(params, true);\n\n quote {\n impl$generics_declarations $crate::traits::Serialize for $typ\n $where_serialize_clause\n {\n let N: u32 = $params_len_quote;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n $function_body\n\n $serialized_params_name\n }\n }\n }\n}\n\n/// Generates a `Deserialize` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Deserialize` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Deserialize for MyStruct {\n/// let N: u32 = <AztecAddress as Deserialize>::N + <Field as Deserialize>::N;\n///\n/// fn deserialize(serialized: [Field; Self::N]) -> Self {\n/// let mut offset = 0;\n/// let mut member_fields = [0; <AztecAddress as Deserialize>::N];\n/// for i in 0..<AztecAddress as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let x = <AztecAddress as Deserialize>::deserialize(member_fields);\n/// offset += <AztecAddress as Deserialize>::N;\n///\n/// let mut member_fields = [0; <Field as Deserialize>::N];\n/// for i in 0..<Field as Deserialize>::N {\n/// member_fields[i] = serialized[i + offset];\n/// }\n/// let y = <Field as Deserialize>::deserialize(member_fields);\n/// offset += <Field as Deserialize>::N;\n///\n/// Self { x, y }\n/// }\n/// }\n/// ```\npub(crate) comptime fn derive_deserialize(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Deserialize` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_deserialize_clause = get_where_trait_clause(s, quote {Deserialize});\n\n // The following will give us:\n // <type_of_struct_member_1 as Deserialize>::N + <type_of_struct_member_2 as Deserialize>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Deserialize>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly deserializing the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let function_body = if params.len() > 1 {\n // This generates deserialization code for each struct member and concatenates them together.\n let deserialization_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as Deserialize>::N];\n for i in 0..<$param_type as Deserialize>::N {\n member_fields[i] = serialized[i + offset];\n }\n let $param_name = <$param_type as Deserialize>::deserialize(member_fields);\n offset += <$param_type as Deserialize>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n // This will give us e.g. `a, b, c` for a struct with three fields named `a`, `b`, and `c`.\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n\n $deserialization_of_struct_members\n\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Deserialize::deserialize(serialized) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Deserialize for $typ\n $where_deserialize_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn deserialize(serialized: [Field; Self::N]) -> Self {\n $function_body\n }\n }\n }\n}\n\n/// Generates a `Packable` trait implementation for a given struct `s`.\n///\n/// # Arguments\n/// * `s` - The struct type definition to generate the implementation for\n///\n/// # Returns\n/// A `Quoted` block containing the generated trait implementation\n///\n/// # Requirements\n/// Each struct member type must implement the `Packable` trait (it gets used in the generated code).\n///\n/// # Example\n/// For a struct like:\n/// ```\n/// struct MyStruct {\n/// x: AztecAddress,\n/// y: Field,\n/// }\n/// ```\n///\n/// This generates:\n/// ```\n/// impl Packable for MyStruct {\n/// let N: u32 = 2;\n///\n/// fn pack(self) -> [Field; 2] {\n/// let mut result: [Field; 2] = [0_Field; 2];\n/// let mut offset: u32 = 0_u32;\n/// let packed_member: [Field; 1] = self.x.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// let packed_member: [Field; 1] = self.y.pack();\n/// let packed_member_len: u32 = <Field as Packable>::N;\n/// for i in 0_u32..packed_member_len {\n/// {\n/// result[i + offset] = packed_member[i];\n/// }\n/// }\n/// offset = offset + packed_member_len;\n/// result\n/// }\n///\n/// fn unpack(packed: [Field; 2]) -> Self {\n/// let mut offset: u32 = 0_u32;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<AztecAddress as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let x: AztecAddress = <AztecAddress as Packable>::unpack(member_fields);\n/// offset = offset + <AztecAddress as Packable>::N;\n/// let mut member_fields: [Field; 1] = [0_Field; 1];\n/// for i in 0_u32..<Field as Packable>::N {\n/// member_fields[i] = packed[i + offset];\n/// }\n/// let y: Field = <Field as Packable>::unpack(member_fields);\n/// offset = offset + <Field as Packable>::N;\n/// Self { x: x, y: y }\n/// }\n/// }\n/// ```\npub comptime fn derive_packable(s: TypeDefinition) -> Quoted {\n let typ = s.as_type();\n let nested_struct = typ.as_data_type().unwrap();\n let params = nested_struct.0.fields(nested_struct.1);\n\n // Generates the generic parameter declarations (to be placed after the `impl` keyword) and the `where` clause\n // for the `Packable` trait.\n let generics_declarations = get_generics_declarations(s);\n let where_packable_clause = get_where_trait_clause(s, quote {Packable});\n\n // The following will give us:\n // <type_of_struct_member_1 as Packable>::N + <type_of_struct_member_2 as Packable>::N + ...\n // (or 0 if the struct has no members)\n let right_hand_side_of_definition_of_n = if params.len() > 0 {\n params\n .map(|(_, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n <$param_type as $crate::traits::Packable>::N\n }\n })\n .join(quote {+})\n } else {\n quote {0}\n };\n\n // For structs containing a single member, we can enhance performance by directly returning the packed member,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let pack_function_body = if params.len() > 1 {\n // For multiple struct members, generate packing code that:\n // 1. Packs each member\n // 2. Copies the packed fields into the result array at the correct offset\n // 3. Updates the offset for the next member\n let packing_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let packed_member = $crate::traits::Packable::pack(self.$param_name);\n let packed_member_len = <$param_type as $crate::traits::Packable>::N;\n for i in 0..packed_member_len {\n result[i + offset] = packed_member[i];\n }\n offset += packed_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut result = [0; Self::N];\n let mut offset = 0;\n\n $packing_of_struct_members\n\n result\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n $crate::traits::Packable::pack(self.$param_name)\n }\n } else {\n quote {\n [0; Self::N]\n }\n };\n\n // For structs containing a single member, we can enhance performance by directly unpacking the input array,\n // bypassing the need for loop-based array construction. While this optimization yields significant benefits in\n // Brillig where the loops are expected to not be optimized, it is not relevant in ACIR where the loops are\n // expected to be optimized away.\n let unpack_function_body = if params.len() > 1 {\n // For multiple struct members, generate unpacking code that:\n // 1. Unpacks each member\n // 2. Copies packed fields into member array at correct offset\n // 3. Updates offset for next member\n let unpacking_of_struct_members = params\n .map(|(param_name, param_type, _): (Quoted, Type, Quoted)| {\n quote {\n let mut member_fields = [0; <$param_type as $crate::traits::Packable>::N];\n for i in 0..<$param_type as $crate::traits::Packable>::N {\n member_fields[i] = packed[i + offset];\n }\n let $param_name = <$param_type as $crate::traits::Packable>::unpack(member_fields);\n offset += <$param_type as $crate::traits::Packable>::N;\n }\n })\n .join(quote {});\n\n // We join the struct member names with a comma to be used in the `Self { ... }` syntax\n let struct_members = params\n .map(|(param_name, _, _): (Quoted, Type, Quoted)| quote { $param_name })\n .join(quote {,});\n\n quote {\n let mut offset = 0;\n $unpacking_of_struct_members\n Self { $struct_members }\n }\n } else if params.len() == 1 {\n let param_name = params[0].0;\n quote {\n Self { $param_name: $crate::traits::Packable::unpack(packed) }\n }\n } else {\n quote {\n Self {}\n }\n };\n\n quote {\n impl$generics_declarations $crate::traits::Packable for $typ\n $where_packable_clause\n {\n let N: u32 = $right_hand_side_of_definition_of_n;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n $pack_function_body\n }\n\n #[inline_always]\n fn unpack(packed: [Field; Self::N]) -> Self {\n $unpack_function_body\n }\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Packable, Serialize};\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Empty {}\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct Smol {\n a: Field,\n b: Field,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct HasArray {\n a: [Field; 2],\n b: bool,\n }\n\n #[derive(Deserialize, Eq, Serialize)]\n pub struct Fancier {\n a: Smol,\n b: [Field; 2],\n c: [u8; 3],\n d: str<16>,\n }\n\n #[derive(Deserialize, Eq, Packable, Serialize)]\n pub struct HasArrayWithGenerics<T, let N: u32> {\n pub fields: [T; N],\n pub length: u32,\n }\n\n #[test]\n fn serde_on_empty() {\n let original = Empty {};\n let serialized = original.serialize();\n assert_eq(serialized, [], \"Serialized does not match empty array\");\n let deserialized = Empty::deserialize(serialized);\n assert_eq(deserialized, original, \"Deserialized does not match original\");\n }\n\n #[test]\n fn packable_on_empty() {\n let original = Empty {};\n let packed = original.pack();\n assert_eq(packed, [], \"Packed does not match empty array\");\n let unpacked = Empty::unpack(packed);\n assert_eq(unpacked, original, \"Unpacked does not match original\");\n }\n\n #[test]\n fn serde_on_smol() {\n let smol = Smol { a: 1, b: 2 };\n let serialized = smol.serialize();\n assert(serialized == [1, 2], serialized);\n let deserialized = Smol::deserialize(serialized);\n assert(deserialized == smol);\n\n // None of the struct members implements the `Packable` trait so the packed and serialized data should be the same\n let packed = smol.pack();\n assert_eq(packed, serialized, \"Packed does not match serialized\");\n }\n\n #[test]\n fn serde_on_has_array() {\n let has_array = HasArray { a: [1, 2], b: true };\n let serialized = has_array.serialize();\n assert(serialized == [1, 2, 1], serialized);\n let deserialized = HasArray::deserialize(serialized);\n assert(deserialized == has_array);\n }\n\n #[test]\n fn serde_on_fancier() {\n let fancier =\n Fancier { a: Smol { a: 1, b: 2 }, b: [0, 1], c: [1, 2, 3], d: \"metaprogramming!\" };\n let serialized = fancier.serialize();\n assert(\n serialized\n == [\n 1, 2, 0, 1, 1, 2, 3, 0x6d, 0x65, 0x74, 0x61, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61,\n 0x6d, 0x6d, 0x69, 0x6e, 0x67, 0x21,\n ],\n serialized,\n );\n let deserialized = Fancier::deserialize(serialized);\n assert(deserialized == fancier);\n }\n\n #[test]\n fn serde_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let serialized = struct_with_array_of_generics.serialize();\n assert(serialized == [1, 2, 3, 3], serialized);\n let deserialized = HasArrayWithGenerics::deserialize(serialized);\n assert(deserialized == struct_with_array_of_generics);\n }\n\n #[test]\n fn packable_on_contains_array_with_generics() {\n let struct_with_array_of_generics = HasArrayWithGenerics { fields: [1, 2, 3], length: 3 };\n let packed = struct_with_array_of_generics.pack();\n assert(packed == [1, 2, 3, 3], packed);\n\n let unpacked = HasArrayWithGenerics::unpack(packed);\n assert(unpacked == struct_with_array_of_generics);\n }\n\n}\n"
4881
4881
  },
4882
- "352": {
4882
+ "354": {
4883
4883
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/meta/utils.nr",
4884
4884
  "source": "/// Generates serialization code for a list of parameters and the total length of the serialized array\n///\n/// # Parameters\n/// - `params`: A list of (name, type) tuples to serialize\n/// - `use_self_prefix`: If true, parameters are accessed as `self.$param_name` (for struct members).\n/// If false, parameters are accessed directly as `$param_name` (for function parameters).\n///\n/// # Returns\n/// A tuple containing:\n/// - Quoted code that serializes the parameters into an array named `serialized_params`\n/// - Quoted code that evaluates to the total length of the serialized array\n/// - Quoted code containing the name of the serialized array\npub comptime fn derive_serialization_quotes(\n params: [(Quoted, Type)],\n use_self_prefix: bool,\n) -> (Quoted, Quoted, Quoted) {\n let prefix_quote = if use_self_prefix {\n quote { self. }\n } else {\n quote {}\n };\n\n let params_len_quote = get_params_len_quote(params);\n let serialized_params_name = quote { serialized_params };\n\n let body = if params.len() == 0 {\n quote {\n let $serialized_params_name: [Field; 0] = [];\n }\n } else if params.len() == 1 {\n // When we have only a single parameter on the input, we can enhance performance by directly returning\n // the serialized member, bypassing the need for loop-based array construction. While this optimization yields\n // significant benefits in Brillig where the loops are expected to not be optimized, it is not relevant in ACIR\n // where the loops are expected to be optimized away.\n\n let param_name = params[0].0;\n quote {\n let $serialized_params_name = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n }\n } else {\n // For multiple struct members, generate serialization code that:\n // 1. Serializes each member\n // 2. Copies the serialized fields into the serialize array at the correct offset\n // 3. Updates the offset for the next member\n let serialization_of_struct_members = params\n .map(|(param_name, param_type): (Quoted, Type)| {\n quote {\n let serialized_member = $crate::traits::Serialize::serialize($prefix_quote$param_name);\n let serialized_member_len = <$param_type as $crate::traits::Serialize>::N;\n for i in 0..serialized_member_len {\n $serialized_params_name[i + offset] = serialized_member[i];\n }\n offset += serialized_member_len;\n }\n })\n .join(quote {});\n\n quote {\n let mut $serialized_params_name = [0; $params_len_quote];\n let mut offset = 0;\n\n $serialization_of_struct_members\n }\n };\n\n (body, params_len_quote, serialized_params_name)\n}\n\n/// Generates a quoted expression that computes the total serialized length of function parameters.\n///\n/// # Parameters\n/// * `params` - An array of tuples where each tuple contains a quoted parameter name and its Type. The type needs\n/// to implement the Serialize trait.\n///\n/// # Returns\n/// A quoted expression that evaluates to:\n/// * `0` if there are no parameters\n/// * `(<type1 as Serialize>::N + <type2 as Serialize>::N + ...)` for one or more parameters\npub comptime fn get_params_len_quote(params: [(Quoted, Type)]) -> Quoted {\n if params.len() == 0 {\n quote { 0 }\n } else {\n let params_quote_without_parentheses = params\n .map(|(_, param_type): (Quoted, Type)| {\n quote {\n <$param_type as $crate::traits::Serialize>::N\n }\n })\n .join(quote {+});\n quote { ($params_quote_without_parentheses) }\n }\n}\n"
4885
4885
  },
4886
- "354": {
4886
+ "356": {
4887
4887
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/poseidon2.nr",
4888
4888
  "source": "use crate::constants::TWO_POW_64;\nuse crate::traits::{Deserialize, Serialize};\nuse std::meta::derive;\n// NB: This is a clone of noir/noir-repo/noir_stdlib/src/hash/poseidon2.nr\n// It exists as we sometimes need to perform custom absorption, but the stdlib version\n// has a private absorb() method (it's also designed to just be a hasher)\n// Can be removed when standalone noir poseidon lib exists: See noir#6679\n\ncomptime global RATE: u32 = 3;\n\n#[derive(Deserialize, Eq, Serialize)]\npub struct Poseidon2Sponge {\n pub cache: [Field; 3],\n pub state: [Field; 4],\n pub cache_size: u32,\n pub squeeze_mode: bool, // 0 => absorb, 1 => squeeze\n}\n\nimpl Poseidon2Sponge {\n #[no_predicates]\n pub fn hash<let N: u32>(input: [Field; N], message_size: u32) -> Field {\n Poseidon2Sponge::hash_internal(input, message_size, message_size != N)\n }\n\n pub(crate) fn new(iv: Field) -> Poseidon2Sponge {\n let mut result =\n Poseidon2Sponge { cache: [0; 3], state: [0; 4], cache_size: 0, squeeze_mode: false };\n result.state[RATE] = iv;\n result\n }\n\n fn perform_duplex(&mut self) {\n // add the cache into sponge state\n for i in 0..RATE {\n // We effectively zero-pad the cache by only adding to the state\n // cache that is less than the specified `cache_size`\n if i < self.cache_size {\n self.state[i] += self.cache[i];\n }\n }\n self.state = std::hash::poseidon2_permutation(self.state, 4);\n }\n\n pub fn absorb(&mut self, input: Field) {\n assert(!self.squeeze_mode);\n if self.cache_size == RATE {\n // If we're absorbing, and the cache is full, apply the sponge permutation to compress the cache\n self.perform_duplex();\n self.cache[0] = input;\n self.cache_size = 1;\n } else {\n // If we're absorbing, and the cache is not full, add the input into the cache\n self.cache[self.cache_size] = input;\n self.cache_size += 1;\n }\n }\n\n pub fn squeeze(&mut self) -> Field {\n assert(!self.squeeze_mode);\n // If we're in absorb mode, apply sponge permutation to compress the cache.\n self.perform_duplex();\n self.squeeze_mode = true;\n\n // Pop one item off the top of the permutation and return it.\n self.state[0]\n }\n\n fn hash_internal<let N: u32>(\n input: [Field; N],\n in_len: u32,\n is_variable_length: bool,\n ) -> Field {\n let iv: Field = (in_len as Field) * TWO_POW_64;\n let mut sponge = Poseidon2Sponge::new(iv);\n for i in 0..input.len() {\n if i < in_len {\n sponge.absorb(input[i]);\n }\n }\n\n // In the case where the hash preimage is variable-length, we append `1` to the end of the input, to distinguish\n // from fixed-length hashes. (the combination of this additional field element + the hash IV ensures\n // fixed-length and variable-length hashes do not collide)\n if is_variable_length {\n sponge.absorb(1);\n }\n sponge.squeeze()\n }\n}\n"
4889
4889
  },
4890
- "366": {
4890
+ "368": {
4891
4891
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/storage/map.nr",
4892
4892
  "source": "use crate::{hash::poseidon2_hash, traits::ToField};\n\npub fn derive_storage_slot_in_map<K>(storage_slot: Field, key: K) -> Field\nwhere\n K: ToField,\n{\n poseidon2_hash([storage_slot, key.to_field()])\n}\n\nmod test {\n use crate::{address::AztecAddress, storage::map::derive_storage_slot_in_map, traits::FromField};\n\n #[test]\n fn test_derive_storage_slot_in_map_matches_typescript() {\n let map_slot = 0x132258fb6962c4387ba659d9556521102d227549a386d39f0b22d1890d59c2b5;\n let key = AztecAddress::from_field(\n 0x302dbc2f9b50a73283d5fb2f35bc01eae8935615817a0b4219a057b2ba8a5a3f,\n );\n\n let slot = derive_storage_slot_in_map(map_slot, key);\n\n // The following value was generated by `map_slot.test.ts`\n let slot_from_typescript =\n 0x15b9fe39449affd8b377461263e9d2b610b9ad40580553500b4e41d9cbd887ac;\n\n assert_eq(slot, slot_from_typescript);\n }\n}\n"
4893
4893
  },
4894
- "382": {
4894
+ "384": {
4895
4895
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/traits.nr",
4896
4896
  "source": "use crate::meta::{derive_deserialize, derive_packable, derive_serialize};\nuse crate::utils::field::field_from_bytes;\n\n// Trait: is_empty\n//\n// The general is_empty trait checks if a data type is is empty,\n// and it defines empty for the basic data types as 0.\n//\n// If a Field is equal to zero, then it is regarded as zero.\n// We will go with this definition for now, however it can be problematic\n// if a value can actually be zero. In a future refactor, we can\n// use the optional type for safety. Doing it now would lead to a worse devex\n// and would make it harder to sync up with the cpp code.\n// Preferred over Default trait to convey intent, as default doesn't necessarily mean empty.\npub trait Empty: Eq {\n fn empty() -> Self;\n\n fn is_empty(self) -> bool {\n self.eq(Self::empty())\n }\n\n // Requires this Noir fix: https://github.com/noir-lang/noir/issues/9002\n // fn assert_not_empty<let U: u32>(self, msg: str<U>) { // This msg version was failing with weird compiler errors.\n // // We provide a default impl but it's likely inefficient.\n // // The reason we include this function is because there's a lot of\n // // opportunity for optimisation on a per-struct basis.\n // // You only need to show one element is not empty to know that the whole thing\n // // is not empty.\n // // If you know an element of your struct which should always be nonempty,\n // // you can write an impl that solely checks that that element is nonempty.\n // assert(!self.is_empty(), msg);\n // }\n\n // This default impl is overwritten by types like arrays, because there's a much\n // more efficient approach.\n fn assert_empty<let S: u32>(self, msg: str<S>) {\n assert(self.is_empty(), msg);\n }\n}\n\nimpl Empty for Field {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl Empty for bool {\n #[inline_always]\n fn empty() -> Self {\n false\n }\n}\n\nimpl Empty for u1 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u8 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u16 {\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u32 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u64 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\nimpl Empty for u128 {\n #[inline_always]\n fn empty() -> Self {\n 0\n }\n}\n\nimpl<T, let N: u32> Empty for [T; N]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty(); N]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\n\nimpl<T> Empty for [T]\nwhere\n T: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n [T::empty()]\n }\n\n fn is_empty(self) -> bool {\n self.all(|elem| elem.is_empty())\n }\n\n fn assert_empty<let S: u32>(self, msg: str<S>) -> () {\n self.for_each(|elem| elem.assert_empty(msg))\n }\n}\nimpl<A, B> Empty for (A, B)\nwhere\n A: Empty,\n B: Empty,\n{\n #[inline_always]\n fn empty() -> Self {\n (A::empty(), B::empty())\n }\n}\n\nimpl<T> Empty for Option<T>\nwhere\n T: Eq,\n{\n #[inline_always]\n fn empty() -> Self {\n Option::none()\n }\n}\n\n// pub fn is_empty<T>(item: T) -> bool\n// where\n// T: Empty,\n// {\n// item.eq(T::empty())\n// }\n\n// pub fn is_empty_array<T, let N: u32>(array: [T; N]) -> bool\n// where\n// T: Empty,\n// {\n// array.all(|elem| is_empty(elem))\n// }\n\n// pub fn assert_empty<T>(item: T) -> ()\n// where\n// T: Empty,\n// {\n// assert(item.eq(T::empty()))\n// }\n\n// pub fn assert_empty_array<T, let N: u32>(array: [T; N]) -> ()\n// where\n// T: Empty,\n// {\n// // A cheaper option than `is_empty_array` for if you don't need to gracefully\n// // handle a bool result.\n// // Avoids the `&` operator of `is_empty_array`'s `.all()` call.\n// for i in 0..N {\n// assert(is_empty(array[i]));\n// }\n// }\n\npub trait Hash {\n fn hash(self) -> Field;\n}\n\npub trait ToField {\n fn to_field(self) -> Field;\n}\n\nimpl ToField for Field {\n #[inline_always]\n fn to_field(self) -> Field {\n self\n }\n}\n\nimpl ToField for bool {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u1 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u8 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u16 {\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u32 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u64 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl ToField for u128 {\n #[inline_always]\n fn to_field(self) -> Field {\n self as Field\n }\n}\nimpl<let N: u32> ToField for str<N> {\n #[inline_always]\n fn to_field(self) -> Field {\n assert(N < 32, \"String doesn't fit in a field, consider using Serialize instead\");\n field_from_bytes(self.as_bytes(), true)\n }\n}\n\npub trait FromField {\n fn from_field(value: Field) -> Self;\n}\n\nimpl FromField for Field {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value\n }\n}\n\nimpl FromField for bool {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value != 0\n }\n}\nimpl FromField for u1 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u1\n }\n}\nimpl FromField for u8 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u8\n }\n}\nimpl FromField for u16 {\n fn from_field(value: Field) -> Self {\n value as u16\n }\n}\nimpl FromField for u32 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u32\n }\n}\nimpl FromField for u64 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u64\n }\n}\nimpl FromField for u128 {\n #[inline_always]\n fn from_field(value: Field) -> Self {\n value as u128\n }\n}\n\n// docs:start:serialize\n/// Trait for serializing Noir types into arrays of Fields.\n///\n/// An implementation of the Serialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait (and Deserialize) are\n/// typically used to communicate between Noir and TypeScript (via oracles and function arguments).\n///\n/// # On Following Noir's Intrinsic Serialization\n/// When calling a Noir function from TypeScript (TS), first the function arguments are serialized into an array\n/// of fields. This array is then included in the initial witness. Noir's intrinsic serialization is then used\n/// to deserialize the arguments from the witness. When the same Noir function is called from Noir this Serialize trait\n/// is used instead of the serialization in TS. For this reason we need to have a match between TS serialization,\n/// Noir's intrinsic serialization and the implementation of this trait. If there is a mismatch, the function calls\n/// fail with an arguments hash mismatch error message.\n///\n/// # Associated Constants\n/// * `N` - The length of the output Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let N: u32> Serialize for str<N> {\n/// let N: u32 = N;\n///\n/// fn serialize(self) -> [Field; Self::N] {\n/// let bytes = self.as_bytes();\n/// let mut fields = [0; Self::N];\n/// for i in 0..bytes.len() {\n/// fields[i] = bytes[i] as Field; // Each byte gets its own Field\n/// }\n/// fields\n/// }\n/// }\n/// ```\n#[derive_via(derive_serialize)]\npub trait Serialize {\n let N: u32;\n\n fn serialize(self) -> [Field; N];\n}\n// docs:end:serialize\n\nimpl<let M: u32> Serialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let bytes = self.as_bytes();\n let mut fields = [0; Self::N];\n for i in 0..bytes.len() {\n fields[i] = bytes[i] as Field;\n }\n fields\n }\n}\n\n/// Implementation of Deserialize for BoundedVec.\n///\n/// This implementation deserializes a BoundedVec from an array of Fields. The array contains:\n/// 1. The serialized items, each taking up T::N Fields\n/// 2. The length of the BoundedVec as the last Field\n///\n/// # Type Parameters\n/// * `T` - The type of items stored in the BoundedVec, must implement Deserialize\n/// * `M` - The maximum length of the BoundedVec\n///\n/// # Fields Array Layout\n/// [item1_field1, item1_field2, ..., item2_field1, item2_field2, ..., length]\n/// Where:\n/// - itemN_fieldM: The M-th Field of the N-th item (T::N Fields per item)\n/// - length: The number of items in the BoundedVec (1 Field)\n///\n/// Total length N = T::N * M + 1, where:\n/// - T::N is the number of Fields needed to deserialize one item\n/// - M is the maximum length of the BoundedVec\n/// - +1 is for storing the length\n///\n/// # Note\n/// Not deriving this because it's not supported to call derive_deserialize on a \"remote\" struct (and it will never\n/// be supported).\nimpl<T, let M: u32> Deserialize for BoundedVec<T, M>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut new_bounded_vec: BoundedVec<T, M> = BoundedVec::new();\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n let len = fields[<T as Deserialize>::N * M] as u32;\n\n for i in 0..len {\n let mut nested_fields = [0; <T as Deserialize>::N];\n for j in 0..<T as Deserialize>::N {\n nested_fields[j] = fields[i * <T as Deserialize>::N + j];\n }\n\n let item = T::deserialize(nested_fields);\n new_bounded_vec.push(item);\n }\n\n new_bounded_vec\n }\n}\n\n// This may cause issues if used as program input, because noir disallows empty arrays for program input.\n// I think this is okay because I don't foresee a unit type being used as input. But leaving this comment as a hint\n// if someone does run into this in the future.\nimpl Deserialize for () {\n let N: u32 = 0;\n\n fn deserialize(_fields: [Field; Self::N]) -> Self {\n ()\n }\n}\n\n// Note: Not deriving this because it's not supported to call derive_serialize on a \"remote\" struct (and it will never\n// be supported).\nimpl<T, let M: u32> Serialize for BoundedVec<T, M>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M + 1; // +1 for the length of the BoundedVec\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut fields = [0; Self::N];\n\n let storage = self.storage();\n\n for i in 0..M {\n let serialized_item = storage[i].serialize();\n\n for j in 0..<T as Serialize>::N {\n fields[i * <T as Serialize>::N + j] = serialized_item[j];\n }\n }\n\n // Length is stored in the last field as we need to match intrinsic Noir serialization and the `len` struct\n // field is after `storage` struct field (see `bounded_vec.nr` in noir-stdlib)\n fields[<T as Serialize>::N * M] = self.len() as Field;\n\n fields\n }\n}\n\n// docs:start:deserialize\n/// Trait for deserializing Noir types from arrays of Fields.\n///\n/// An implementation of the Deserialize trait has to follow Noir's intrinsic serialization (each member of a struct\n/// converted directly into one or more Fields without any packing or compression). This trait is typically used when\n/// deserializing return values from function calls in Noir. Since the same function could be called from TypeScript\n/// (TS), in which case the TS deserialization would get used, we need to have a match between the 2.\n///\n/// # Associated Constants\n/// * `N` - The length of the input Field array, known at compile time\n///\n/// # Example\n/// ```\n/// impl<let M: u32> Deserialize for str<M> {\n/// let N: u32 = M;\n///\n/// #[inline_always]\n/// fn deserialize(fields: [Field; Self::N]) -> Self {\n/// str::<Self::N>::from(fields.map(|value| value as u8))\n/// }\n/// }\n/// ```\n#[derive_via(derive_deserialize)]\npub trait Deserialize {\n let N: u32;\n\n fn deserialize(fields: [Field; N]) -> Self;\n}\n// docs:end:deserialize\n\nimpl<let M: u32> Deserialize for str<M> {\n let N: u32 = M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n str::<Self::N>::from(fields.map(|value| value as u8))\n }\n}\n\n/// Trait for efficiently packing and unpacking Noir types into and from arrays of Fields.\n///\n/// The `Packable` trait allows types to be serialized and deserialized with a focus on minimizing the size of\n/// the resulting Field array. This trait is used when storage efficiency is critical (e.g. when storing data\n/// in the contract's public storage).\n///\n/// # Associated Constants\n/// * `N` - The length of the Field array, known at compile time\n#[derive_via(derive_packable)]\npub trait Packable {\n let N: u32;\n\n /// Packs the current value into a compact array of `Field` elements.\n fn pack(self) -> [Field; N];\n\n /// Unpacks a compact array of `Field` elements into the original value.\n fn unpack(fields: [Field; N]) -> Self;\n}\n\n#[test]\nunconstrained fn bounded_vec_serialization() {\n // Test empty BoundedVec\n let empty_vec: BoundedVec<Field, 3> = BoundedVec::from_array([]);\n let serialized = empty_vec.serialize();\n let deserialized = BoundedVec::<Field, 3>::deserialize(serialized);\n assert_eq(empty_vec, deserialized);\n assert_eq(deserialized.len(), 0);\n\n // Test partially filled BoundedVec\n let partial_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2]]);\n let serialized = partial_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(partial_vec, deserialized);\n assert_eq(deserialized.len(), 1);\n assert_eq(deserialized.get(0), [1, 2]);\n\n // Test full BoundedVec\n let full_vec: BoundedVec<[u32; 2], 3> = BoundedVec::from_array([[1, 2], [3, 4], [5, 6]]);\n let serialized = full_vec.serialize();\n let deserialized = BoundedVec::<[u32; 2], 3>::deserialize(serialized);\n assert_eq(full_vec, deserialized);\n assert_eq(deserialized.len(), 3);\n assert_eq(deserialized.get(0), [1, 2]);\n assert_eq(deserialized.get(1), [3, 4]);\n assert_eq(deserialized.get(2), [5, 6]);\n}\n"
4897
4897
  },
4898
- "384": {
4898
+ "386": {
4899
4899
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_packing.nr",
4900
4900
  "source": "use crate::traits::Packable;\n\nglobal BOOL_PACKED_LEN: u32 = 1;\nglobal U8_PACKED_LEN: u32 = 1;\nglobal U16_PACKED_LEN: u32 = 1;\nglobal U32_PACKED_LEN: u32 = 1;\nglobal U64_PACKED_LEN: u32 = 1;\nglobal U128_PACKED_LEN: u32 = 1;\nglobal FIELD_PACKED_LEN: u32 = 1;\nglobal I8_PACKED_LEN: u32 = 1;\nglobal I16_PACKED_LEN: u32 = 1;\nglobal I32_PACKED_LEN: u32 = 1;\nglobal I64_PACKED_LEN: u32 = 1;\n\nimpl Packable for bool {\n let N: u32 = BOOL_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> bool {\n (fields[0] as u1) != 0\n }\n}\n\nimpl Packable for u8 {\n let N: u32 = U8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Packable for u16 {\n let N: u32 = U16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Packable for u32 {\n let N: u32 = U32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Packable for u64 {\n let N: u32 = U64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Packable for u128 {\n let N: u32 = U128_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Packable for Field {\n let N: u32 = FIELD_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Packable for i8 {\n let N: u32 = I8_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Packable for i16 {\n let N: u32 = I16_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Packable for i32 {\n let N: u32 = I32_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Packable for i64 {\n let N: u32 = I64_PACKED_LEN;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Packable for [T; M]\nwhere\n T: Packable,\n{\n let N: u32 = M * <T as Packable>::N;\n\n #[inline_always]\n fn pack(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n for i in 0..M {\n let serialized = self[i].pack();\n for j in 0..<T as Packable>::N {\n result[i * <T as Packable>::N + j] = serialized[j];\n }\n }\n result\n }\n\n #[inline_always]\n fn unpack(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Packable>::N, M>(Packable::unpack, result)\n }\n}\n\n#[test]\nfn test_u16_packing() {\n let a: u16 = 10;\n assert_eq(a, u16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i8_packing() {\n let a: i8 = -10;\n assert_eq(a, i8::unpack(a.pack()));\n}\n\n#[test]\nfn test_i16_packing() {\n let a: i16 = -10;\n assert_eq(a, i16::unpack(a.pack()));\n}\n\n#[test]\nfn test_i32_packing() {\n let a: i32 = -10;\n assert_eq(a, i32::unpack(a.pack()));\n}\n\n#[test]\nfn test_i64_packing() {\n let a: i64 = -10;\n assert_eq(a, i64::unpack(a.pack()));\n}\n"
4901
4901
  },
4902
- "385": {
4902
+ "387": {
4903
4903
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/type_serialization.nr",
4904
4904
  "source": "use crate::traits::{Deserialize, Serialize};\n\nglobal U1_SERIALIZED_LEN: u32 = 1;\nglobal BOOL_SERIALIZED_LEN: u32 = 1;\nglobal U8_SERIALIZED_LEN: u32 = 1;\nglobal U16_SERIALIZED_LEN: u32 = 1;\nglobal U32_SERIALIZED_LEN: u32 = 1;\nglobal U64_SERIALIZED_LEN: u32 = 1;\nglobal U128_SERIALIZED_LEN: u32 = 1;\nglobal FIELD_SERIALIZED_LEN: u32 = 1;\nglobal I8_SERIALIZED_LEN: u32 = 1;\nglobal I16_SERIALIZED_LEN: u32 = 1;\nglobal I32_SERIALIZED_LEN: u32 = 1;\nglobal I64_SERIALIZED_LEN: u32 = 1;\n\nimpl Serialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for bool {\n let N: u32 = BOOL_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> bool {\n fields[0] != 0\n }\n}\n\nimpl Serialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u1 {\n let N: u32 = U1_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u1\n }\n}\n\nimpl Serialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u8 {\n let N: u32 = U8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8\n }\n}\n\nimpl Serialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u16 {\n let N: u32 = U16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16\n }\n}\n\nimpl Serialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u32 {\n let N: u32 = U32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32\n }\n}\n\nimpl Serialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u64 {\n let N: u32 = U64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64\n }\n}\n\nimpl Serialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as Field]\n }\n}\n\nimpl Deserialize for u128 {\n let N: u32 = U128_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u128\n }\n}\n\nimpl Serialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self]\n }\n}\n\nimpl Deserialize for Field {\n let N: u32 = FIELD_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0]\n }\n}\n\nimpl Serialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u8 as Field]\n }\n}\n\nimpl Deserialize for i8 {\n let N: u32 = I8_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u8 as i8\n }\n}\n\nimpl Serialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u16 as Field]\n }\n}\n\nimpl Deserialize for i16 {\n let N: u32 = I16_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u16 as i16\n }\n}\n\nimpl Serialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u32 as Field]\n }\n}\n\nimpl Deserialize for i32 {\n let N: u32 = I32_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u32 as i32\n }\n}\n\nimpl Serialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n [self as u64 as Field]\n }\n}\n\nimpl Deserialize for i64 {\n let N: u32 = I64_SERIALIZED_LEN;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n fields[0] as u64 as i64\n }\n}\n\nimpl<T, let M: u32> Serialize for [T; M]\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N * M;\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; _] = std::mem::zeroed();\n for i in 0..M {\n let serialized_t = self[i].serialize();\n for j in 0..<T as Serialize>::N {\n result[i * <T as Serialize>::N + j] = serialized_t[j];\n }\n }\n result\n }\n}\n\nimpl<T, let M: u32> Deserialize for [T; M]\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N * M;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n let mut reader = crate::utils::reader::Reader::new(fields);\n let mut result: [T; M] = std::mem::zeroed();\n reader.read_struct_array::<T, <T as Deserialize>::N, M>(Deserialize::deserialize, result)\n }\n}\n\nimpl<T> Serialize for Option<T>\nwhere\n T: Serialize,\n{\n let N: u32 = <T as Serialize>::N + 1;\n\n #[inline_always]\n fn serialize(self) -> [Field; Self::N] {\n let mut result: [Field; Self::N] = std::mem::zeroed();\n\n result[0] = if self.is_some() { 1 } else { 0 };\n\n let value_serialized = self.unwrap_unchecked().serialize();\n for i in 0..<T as Serialize>::N {\n result[1 + i] = value_serialized[i];\n }\n\n result\n }\n}\n\nimpl<T> Deserialize for Option<T>\nwhere\n T: Deserialize,\n{\n let N: u32 = <T as Deserialize>::N + 1;\n\n #[inline_always]\n fn deserialize(fields: [Field; Self::N]) -> Self {\n if fields[0] == 1 {\n let mut value_fields = [0; <T as Deserialize>::N];\n for i in 0..<T as Deserialize>::N {\n value_fields[i] = fields[1 + i];\n }\n\n Option::some(T::deserialize(value_fields))\n } else {\n Option::none()\n }\n }\n}\n\nmod test {\n use crate::traits::{Deserialize, Serialize};\n\n #[test]\n fn u16_serialization() {\n let a: u16 = 10;\n assert_eq(a, u16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i8_serialization() {\n let a: i8 = -10;\n assert_eq(a, i8::deserialize(a.serialize()));\n }\n\n #[test]\n fn i16_serialization() {\n let a: i16 = -10;\n assert_eq(a, i16::deserialize(a.serialize()));\n }\n\n #[test]\n fn i32_serialization() {\n let a: i32 = -10;\n assert_eq(a, i32::deserialize(a.serialize()));\n }\n\n #[test]\n fn i64_serialization() {\n let a: i64 = -10;\n assert_eq(a, i64::deserialize(a.serialize()));\n }\n\n #[test]\n fn option_field_serialization() {\n let opt_some = Option::some(5);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n\n #[test]\n fn array_serialization() {\n let array = [1, 2, 3, 4];\n\n let serialized: [Field; 4] = array.serialize();\n let deserialized: [Field; 4] = Deserialize::deserialize(serialized);\n assert_eq(deserialized, array);\n }\n\n #[test]\n fn nested_array_serialization() {\n let nested_array = [[1, 2, 3, 4], [5, 6, 7, 8]];\n\n let serialized: [Field; 8] = nested_array.serialize();\n let deserialized: [[Field; 4]; 2] = Deserialize::deserialize(serialized);\n\n assert_eq(deserialized, nested_array);\n }\n\n #[test]\n fn option_array_serialization() {\n let opt_some = Option::some([2, 5]);\n assert_eq(Option::<_>::deserialize(opt_some.serialize()), opt_some);\n\n let opt_none = Option::none();\n assert_eq(Option::<Field>::deserialize(opt_none.serialize()), opt_none);\n }\n}\n"
4905
4905
  },
@@ -4907,15 +4907,15 @@
4907
4907
  "path": "std/ops/arith.nr",
4908
4908
  "source": "use crate::convert::AsPrimitive;\n\n// docs:start:add-trait\npub trait Add {\n fn add(self, other: Self) -> Self;\n}\n// docs:end:add-trait\n\nimpl Add for Field {\n fn add(self, other: Field) -> Field {\n self + other\n }\n}\n\nimpl Add for u128 {\n fn add(self, other: u128) -> u128 {\n self + other\n }\n}\nimpl Add for u64 {\n fn add(self, other: u64) -> u64 {\n self + other\n }\n}\nimpl Add for u32 {\n fn add(self, other: u32) -> u32 {\n self + other\n }\n}\nimpl Add for u16 {\n fn add(self, other: u16) -> u16 {\n self + other\n }\n}\nimpl Add for u8 {\n fn add(self, other: u8) -> u8 {\n self + other\n }\n}\nimpl Add for u1 {\n fn add(self, other: u1) -> u1 {\n self + other\n }\n}\n\nimpl Add for i8 {\n fn add(self, other: i8) -> i8 {\n self + other\n }\n}\nimpl Add for i16 {\n fn add(self, other: i16) -> i16 {\n self + other\n }\n}\nimpl Add for i32 {\n fn add(self, other: i32) -> i32 {\n self + other\n }\n}\nimpl Add for i64 {\n fn add(self, other: i64) -> i64 {\n self + other\n }\n}\n\n// docs:start:sub-trait\npub trait Sub {\n fn sub(self, other: Self) -> Self;\n}\n// docs:end:sub-trait\n\nimpl Sub for Field {\n fn sub(self, other: Field) -> Field {\n self - other\n }\n}\n\nimpl Sub for u128 {\n fn sub(self, other: u128) -> u128 {\n self - other\n }\n}\nimpl Sub for u64 {\n fn sub(self, other: u64) -> u64 {\n self - other\n }\n}\nimpl Sub for u32 {\n fn sub(self, other: u32) -> u32 {\n self - other\n }\n}\nimpl Sub for u16 {\n fn sub(self, other: u16) -> u16 {\n self - other\n }\n}\nimpl Sub for u8 {\n fn sub(self, other: u8) -> u8 {\n self - other\n }\n}\nimpl Sub for u1 {\n fn sub(self, other: u1) -> u1 {\n self - other\n }\n}\n\nimpl Sub for i8 {\n fn sub(self, other: i8) -> i8 {\n self - other\n }\n}\nimpl Sub for i16 {\n fn sub(self, other: i16) -> i16 {\n self - other\n }\n}\nimpl Sub for i32 {\n fn sub(self, other: i32) -> i32 {\n self - other\n }\n}\nimpl Sub for i64 {\n fn sub(self, other: i64) -> i64 {\n self - other\n }\n}\n\n// docs:start:mul-trait\npub trait Mul {\n fn mul(self, other: Self) -> Self;\n}\n// docs:end:mul-trait\n\nimpl Mul for Field {\n fn mul(self, other: Field) -> Field {\n self * other\n }\n}\n\nimpl Mul for u128 {\n fn mul(self, other: u128) -> u128 {\n self * other\n }\n}\nimpl Mul for u64 {\n fn mul(self, other: u64) -> u64 {\n self * other\n }\n}\nimpl Mul for u32 {\n fn mul(self, other: u32) -> u32 {\n self * other\n }\n}\nimpl Mul for u16 {\n fn mul(self, other: u16) -> u16 {\n self * other\n }\n}\nimpl Mul for u8 {\n fn mul(self, other: u8) -> u8 {\n self * other\n }\n}\nimpl Mul for u1 {\n fn mul(self, other: u1) -> u1 {\n self * other\n }\n}\n\nimpl Mul for i8 {\n fn mul(self, other: i8) -> i8 {\n self * other\n }\n}\nimpl Mul for i16 {\n fn mul(self, other: i16) -> i16 {\n self * other\n }\n}\nimpl Mul for i32 {\n fn mul(self, other: i32) -> i32 {\n self * other\n }\n}\nimpl Mul for i64 {\n fn mul(self, other: i64) -> i64 {\n self * other\n }\n}\n\n// docs:start:div-trait\npub trait Div {\n fn div(self, other: Self) -> Self;\n}\n// docs:end:div-trait\n\nimpl Div for Field {\n fn div(self, other: Field) -> Field {\n self / other\n }\n}\n\nimpl Div for u128 {\n fn div(self, other: u128) -> u128 {\n self / other\n }\n}\nimpl Div for u64 {\n fn div(self, other: u64) -> u64 {\n self / other\n }\n}\nimpl Div for u32 {\n fn div(self, other: u32) -> u32 {\n self / other\n }\n}\nimpl Div for u16 {\n fn div(self, other: u16) -> u16 {\n self / other\n }\n}\nimpl Div for u8 {\n fn div(self, other: u8) -> u8 {\n self / other\n }\n}\nimpl Div for u1 {\n fn div(self, other: u1) -> u1 {\n self / other\n }\n}\n\nimpl Div for i8 {\n fn div(self, other: i8) -> i8 {\n self / other\n }\n}\nimpl Div for i16 {\n fn div(self, other: i16) -> i16 {\n self / other\n }\n}\nimpl Div for i32 {\n fn div(self, other: i32) -> i32 {\n self / other\n }\n}\nimpl Div for i64 {\n fn div(self, other: i64) -> i64 {\n self / other\n }\n}\n\n// docs:start:rem-trait\npub trait Rem {\n fn rem(self, other: Self) -> Self;\n}\n// docs:end:rem-trait\n\nimpl Rem for u128 {\n fn rem(self, other: u128) -> u128 {\n self % other\n }\n}\nimpl Rem for u64 {\n fn rem(self, other: u64) -> u64 {\n self % other\n }\n}\nimpl Rem for u32 {\n fn rem(self, other: u32) -> u32 {\n self % other\n }\n}\nimpl Rem for u16 {\n fn rem(self, other: u16) -> u16 {\n self % other\n }\n}\nimpl Rem for u8 {\n fn rem(self, other: u8) -> u8 {\n self % other\n }\n}\nimpl Rem for u1 {\n fn rem(self, other: u1) -> u1 {\n self % other\n }\n}\n\nimpl Rem for i8 {\n fn rem(self, other: i8) -> i8 {\n self % other\n }\n}\nimpl Rem for i16 {\n fn rem(self, other: i16) -> i16 {\n self % other\n }\n}\nimpl Rem for i32 {\n fn rem(self, other: i32) -> i32 {\n self % other\n }\n}\nimpl Rem for i64 {\n fn rem(self, other: i64) -> i64 {\n self % other\n }\n}\n\n// docs:start:neg-trait\npub trait Neg {\n fn neg(self) -> Self;\n}\n// docs:end:neg-trait\n\n// docs:start:neg-trait-impls\nimpl Neg for Field {\n fn neg(self) -> Field {\n -self\n }\n}\n\nimpl Neg for i8 {\n fn neg(self) -> i8 {\n -self\n }\n}\nimpl Neg for i16 {\n fn neg(self) -> i16 {\n -self\n }\n}\nimpl Neg for i32 {\n fn neg(self) -> i32 {\n -self\n }\n}\nimpl Neg for i64 {\n fn neg(self) -> i64 {\n -self\n }\n}\n// docs:end:neg-trait-impls\n\n// docs:start:wrapping-add-trait\npub trait WrappingAdd {\n fn wrapping_add(self, y: Self) -> Self;\n}\n// docs:end:wrapping-add-trait\n\nimpl WrappingAdd for u1 {\n fn wrapping_add(self: u1, y: u1) -> u1 {\n self ^ y\n }\n}\n\nimpl WrappingAdd for u8 {\n fn wrapping_add(self: u8, y: u8) -> u8 {\n wrapping_add_hlp(self, y)\n }\n}\n\nimpl WrappingAdd for u16 {\n fn wrapping_add(self: u16, y: u16) -> u16 {\n wrapping_add_hlp(self, y)\n }\n}\n\nimpl WrappingAdd for u32 {\n fn wrapping_add(self: u32, y: u32) -> u32 {\n wrapping_add_hlp(self, y)\n }\n}\n\nimpl WrappingAdd for u64 {\n fn wrapping_add(self: u64, y: u64) -> u64 {\n wrapping_add_hlp(self, y)\n }\n}\n\nimpl WrappingAdd for u128 {\n fn wrapping_add(self: u128, y: u128) -> u128 {\n wrapping_add_hlp(self, y)\n }\n}\n\nimpl WrappingAdd for i8 {\n fn wrapping_add(self: i8, y: i8) -> i8 {\n let x = self as u8;\n x.wrapping_add(y as u8) as i8\n }\n}\n\nimpl WrappingAdd for i16 {\n fn wrapping_add(self: i16, y: i16) -> i16 {\n let x = self as u16;\n x.wrapping_add(y as u16) as i16\n }\n}\n\nimpl WrappingAdd for i32 {\n fn wrapping_add(self: i32, y: i32) -> i32 {\n let x = self as u32;\n x.wrapping_add(y as u32) as i32\n }\n}\n\nimpl WrappingAdd for i64 {\n fn wrapping_add(self: i64, y: i64) -> i64 {\n let x = self as u64;\n x.wrapping_add(y as u64) as i64\n }\n}\nimpl WrappingAdd for Field {\n fn wrapping_add(self: Field, y: Field) -> Field {\n self + y\n }\n}\n\n// docs:start:wrapping-sub-trait\npub trait WrappingSub {\n fn wrapping_sub(self, y: Self) -> Self;\n}\n// docs:start:wrapping-sub-trait\n\nimpl WrappingSub for u1 {\n fn wrapping_sub(self: u1, y: u1) -> u1 {\n self ^ y\n }\n}\n\nimpl WrappingSub for u8 {\n fn wrapping_sub(self: u8, y: u8) -> u8 {\n wrapping_sub_hlp(self, y) as u8\n }\n}\n\nimpl WrappingSub for u16 {\n fn wrapping_sub(self: u16, y: u16) -> u16 {\n wrapping_sub_hlp(self, y) as u16\n }\n}\n\nimpl WrappingSub for u32 {\n fn wrapping_sub(self: u32, y: u32) -> u32 {\n wrapping_sub_hlp(self, y) as u32\n }\n}\nimpl WrappingSub for u64 {\n fn wrapping_sub(self: u64, y: u64) -> u64 {\n wrapping_sub_hlp(self, y) as u64\n }\n}\nimpl WrappingSub for u128 {\n fn wrapping_sub(self: u128, y: u128) -> u128 {\n wrapping_sub_hlp(self, y) as u128\n }\n}\n\nimpl WrappingSub for i8 {\n fn wrapping_sub(self: i8, y: i8) -> i8 {\n let x = self as u8;\n x.wrapping_sub(y as u8) as i8\n }\n}\n\nimpl WrappingSub for i16 {\n fn wrapping_sub(self: i16, y: i16) -> i16 {\n let x = self as u16;\n x.wrapping_sub(y as u16) as i16\n }\n}\n\nimpl WrappingSub for i32 {\n fn wrapping_sub(self: i32, y: i32) -> i32 {\n let x = self as u32;\n x.wrapping_sub(y as u32) as i32\n }\n}\nimpl WrappingSub for i64 {\n fn wrapping_sub(self: i64, y: i64) -> i64 {\n let x = self as u64;\n x.wrapping_sub(y as u64) as i64\n }\n}\nimpl WrappingSub for Field {\n fn wrapping_sub(self: Field, y: Field) -> Field {\n self - y\n }\n}\n\n// docs:start:wrapping-mul-trait\npub trait WrappingMul {\n fn wrapping_mul(self, y: Self) -> Self;\n}\n// docs:start:wrapping-mul-trait\n\nimpl WrappingMul for u1 {\n fn wrapping_mul(self: u1, y: u1) -> u1 {\n self & y\n }\n}\n\nimpl WrappingMul for u8 {\n fn wrapping_mul(self: u8, y: u8) -> u8 {\n wrapping_mul_hlp(self, y)\n }\n}\n\nimpl WrappingMul for u16 {\n fn wrapping_mul(self: u16, y: u16) -> u16 {\n wrapping_mul_hlp(self, y)\n }\n}\n\nimpl WrappingMul for u32 {\n fn wrapping_mul(self: u32, y: u32) -> u32 {\n wrapping_mul_hlp(self, y)\n }\n}\nimpl WrappingMul for u64 {\n fn wrapping_mul(self: u64, y: u64) -> u64 {\n wrapping_mul_hlp(self, y)\n }\n}\n\nimpl WrappingMul for i8 {\n fn wrapping_mul(self: i8, y: i8) -> i8 {\n let x = self as u8;\n x.wrapping_mul(y as u8) as i8\n }\n}\n\nimpl WrappingMul for i16 {\n fn wrapping_mul(self: i16, y: i16) -> i16 {\n let x = self as u16;\n x.wrapping_mul(y as u16) as i16\n }\n}\n\nimpl WrappingMul for i32 {\n fn wrapping_mul(self: i32, y: i32) -> i32 {\n let x = self as u32;\n x.wrapping_mul(y as u32) as i32\n }\n}\n\nimpl WrappingMul for i64 {\n fn wrapping_mul(self: i64, y: i64) -> i64 {\n let x = self as u64;\n x.wrapping_mul(y as u64) as i64\n }\n}\n\nimpl WrappingMul for u128 {\n fn wrapping_mul(self: u128, y: u128) -> u128 {\n wrapping_mul128_hlp(self, y)\n }\n}\nimpl WrappingMul for Field {\n fn wrapping_mul(self: Field, y: Field) -> Field {\n self * y\n }\n}\n\nfn wrapping_add_hlp<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() + y.as_())\n}\n\nfn wrapping_sub_hlp<T>(x: T, y: T) -> Field\nwhere\n T: AsPrimitive<Field>,\n{\n //340282366920938463463374607431768211456 is 2^128, it is used to avoid underflow\n x.as_() + 340282366920938463463374607431768211456 - y.as_()\n}\n\nfn wrapping_mul_hlp<T>(x: T, y: T) -> T\nwhere\n T: AsPrimitive<Field>,\n Field: AsPrimitive<T>,\n{\n AsPrimitive::as_(x.as_() * y.as_())\n}\n\nglobal two_pow_64: u128 = 0x10000000000000000;\n/// Splits a 128 bits number into two 64 bits limbs\nunconstrained fn split64(x: u128) -> (u64, u64) {\n let lo = x as u64;\n let hi = (x / two_pow_64) as u64;\n (lo, hi)\n}\n\n/// Split a 128 bits number into two 64 bits limbs\n/// It will fail if the number is more than 128 bits\nfn split_into_64_bit_limbs(x: u128) -> (u64, u64) {\n // Safety: the limbs are constrained below\n let (x_lo, x_hi) = unsafe { split64(x) };\n assert(x as Field == x_lo as Field + x_hi as Field * two_pow_64 as Field);\n (x_lo, x_hi)\n}\n\n#[field(bn254)]\nfn wrapping_mul128_hlp(x: u128, y: u128) -> u128 {\n let (x_lo, x_hi) = split_into_64_bit_limbs(x);\n let (y_lo, y_hi) = split_into_64_bit_limbs(y);\n // Multiplication using the limbs:(x_lo + 2**64*x_hi)*(y_lo + 2**64*y_hi)=x_lo*y_lo+...\n // and skipping the terms over 2**128\n // Working with u64 limbs ensures that we cannot overflow the field modulus.\n let low = x_lo as Field * y_lo as Field;\n let lo = low as u64 as Field;\n let carry = (low - lo) / two_pow_64 as Field;\n let high = x_lo as Field * y_hi as Field + x_hi as Field * y_lo as Field + carry;\n let hi = high as u64 as Field;\n (lo + two_pow_64 as Field * hi) as u128\n}\n\nmod tests {\n #[test(should_fail_with = \"custom message\")]\n fn test_static_assert_custom_message() {\n crate::static_assert(1 == 2, \"custom message\");\n }\n\n mod arithmetic {\n use crate::ops::arith::{Add, Div, Mul, Neg, Rem, Sub};\n #[test]\n fn test_basic_arithmetic_traits() {\n // add\n assert_eq(5.add(3), 8);\n assert_eq(0u8.add(255u8), 255u8);\n assert_eq(42.add(58), 100);\n\n // sub\n assert_eq(10.sub(3), 7);\n assert_eq(100.sub(42), 58);\n\n // mul\n assert_eq(6.mul(7), 42);\n\n // div\n assert_eq(15.div(3), 5);\n assert_eq(10u8.div(3u8), 3u8);\n assert_eq(15.div(3), 5);\n\n // rem\n assert_eq(17.rem(5), 2);\n assert_eq(10u8.rem(3u8), 1u8);\n\n // neg\n assert_eq(42.neg(), -42);\n assert_eq((-10).neg(), 10);\n assert_eq(42.neg(), -42);\n }\n\n #[test]\n fn test_division() {\n // test division by one\n assert_eq(42.div(1), 42);\n assert_eq(0.div(1), 0);\n assert_eq(255u8.div(1u8), 255u8);\n\n // test division by self\n assert_eq(42.div(42), 1);\n assert_eq(1.div(1), 1);\n\n // test remainder\n assert_eq(42.rem(42), 0);\n assert_eq(0.rem(42), 0);\n assert_eq(1.rem(42), 1);\n }\n\n #[test(should_fail)]\n fn test_u8_sub_overflow_failure() {\n let _ = 0u8.sub(1u8);\n }\n\n #[test(should_fail)]\n fn test_u8_add_overflow_failure() {\n let _ = 255u8.add(1u8);\n }\n\n #[test(should_fail)]\n fn test_u8_mul_overflow_failure() {\n let _ = 255u8.mul(2u8);\n }\n\n #[test(should_fail)]\n fn test_u16_sub_overflow_failure() {\n let _ = 0u16.sub(1u16);\n }\n\n #[test(should_fail)]\n fn test_u16_add_overflow_failure() {\n let _ = 65535u16.add(1u16);\n }\n\n #[test(should_fail)]\n fn test_u16_mul_overflow_failure() {\n let _ = 65535u16.mul(2u16);\n }\n\n #[test(should_fail)]\n fn test_signed_sub_overflow_failure() {\n let val: i8 = -128;\n let _ = val.sub(1i8);\n }\n\n #[test(should_fail)]\n fn test_signed_overflow_failure() {\n let _ = 127i8.add(1i8);\n }\n\n #[test]\n fn test_field() {\n let zero: Field = 0;\n let one: Field = 1;\n\n // test Field basic operations\n assert_eq(zero.add(one), one);\n assert_eq(one.add(zero), one);\n assert_eq(one.sub(one), zero);\n assert_eq(one.mul(one), one);\n assert_eq(one.div(one), one);\n assert_eq(zero.neg(), zero);\n assert_eq(one.neg(), -one);\n }\n\n }\n\n mod wrapping_arithmetic {\n use crate::ops::arith::{Add, Div, Mul, Neg, Sub, WrappingAdd, WrappingMul, WrappingSub};\n #[test]\n fn test_wrapping_add() {\n assert_eq(255u8.wrapping_add(1u8), 0u8);\n assert_eq(255u8.wrapping_add(255u8), 254u8);\n assert_eq(0u8.wrapping_add(0u8), 0u8);\n assert_eq(128u8.wrapping_add(128u8), 0u8);\n\n // test u16 wrapping add\n assert_eq(65535u16.wrapping_add(1u16), 0u16);\n assert_eq(65535u16.wrapping_add(65535u16), 65534u16);\n\n // test u32 wrapping add\n assert_eq(0xffffffffu32.wrapping_add(1u32), 0u32);\n assert_eq(0xffffffffu32.wrapping_add(0xffffffffu32), 0xfffffffeu32);\n\n // test u64 wrapping add\n assert_eq(0xffffffffffffffffu64.wrapping_add(1u64), 0u64);\n assert_eq(\n 0xffffffffffffffffu64.wrapping_add(0xffffffffffffffffu64),\n 0xfffffffffffffffeu64,\n );\n\n // test u128 wrapping add\n assert_eq(0xffffffffffffffffffffffffffffffffu128.wrapping_add(1u128), 0u128);\n\n // test signed types\n assert_eq(127i8.wrapping_add(1i8), -128i8);\n let val: i8 = -128;\n assert_eq(val.wrapping_add(-1i8), 127i8);\n\n // test Field wrapping add\n let forty_two: Field = 42;\n let fifty_eight: Field = 58;\n let hundred: Field = 100;\n let neg_two: Field = -2;\n let two: Field = 2;\n let zero: Field = 0;\n let neg_two_hundred: Field = -200;\n let neg_one_ninety_eight: Field = -198;\n assert_eq(forty_two.wrapping_add(fifty_eight), hundred);\n assert_eq(neg_two.wrapping_add(two), zero);\n assert_eq(neg_two_hundred.wrapping_add(two), neg_one_ninety_eight);\n }\n\n #[test]\n fn test_wrapping_sub() {\n assert_eq(0u8.wrapping_sub(1u8), 255u8);\n assert_eq(255u8.wrapping_sub(255u8), 0u8);\n assert_eq(0u8.wrapping_sub(0u8), 0u8);\n assert_eq(1u8.wrapping_sub(2u8), 255u8);\n\n // test u16 wrapping sub\n assert_eq(0u16.wrapping_sub(1u16), 65535u16);\n assert_eq(65535u16.wrapping_sub(65535u16), 0u16);\n\n // test u32 wrapping sub\n assert_eq(0u32.wrapping_sub(1u32), 0xffffffffu32);\n assert_eq(0xffffffffu32.wrapping_sub(0xffffffffu32), 0u32);\n\n // test u64 wrapping sub\n assert_eq(0u64.wrapping_sub(1u64), 0xffffffffffffffffu64);\n assert_eq(0xffffffffffffffffu64.wrapping_sub(0xffffffffffffffffu64), 0u64);\n\n // test u128 wrapping sub\n assert_eq(0u128.wrapping_sub(1u128), 0xffffffffffffffffffffffffffffffffu128);\n\n // test signed types\n let val: i8 = -128;\n assert_eq(val.wrapping_sub(1i8), 127i8);\n assert_eq(127i8.wrapping_sub(-1i8), -128i8);\n\n // test Field wrapping sub\n let forty_two: Field = 42;\n let fifty_eight: Field = 58;\n let neg_sixteen: Field = -16;\n assert_eq(forty_two.wrapping_sub(fifty_eight), neg_sixteen);\n }\n\n #[test]\n fn test_wrapping_mul() {\n let zero: u128 = 0;\n let one: u128 = 1;\n let two_pow_64: u128 = 0x10000000000000000;\n let u128_max: u128 = 0xffffffffffffffffffffffffffffffff;\n\n assert_eq(zero, zero.wrapping_mul(one));\n assert_eq(zero, one.wrapping_mul(zero));\n assert_eq(one, one.wrapping_mul(one));\n assert_eq(zero, zero.wrapping_mul(two_pow_64));\n assert_eq(zero, two_pow_64.wrapping_mul(zero));\n assert_eq(two_pow_64, two_pow_64.wrapping_mul(one));\n assert_eq(two_pow_64, one.wrapping_mul(two_pow_64));\n assert_eq(zero, two_pow_64.wrapping_mul(two_pow_64));\n assert_eq(one, u128_max.wrapping_mul(u128_max));\n\n // test u8 wrapping mul\n assert_eq(255u8.wrapping_mul(2u8), 254u8);\n assert_eq(255u8.wrapping_mul(255u8), 1u8);\n assert_eq(128u8.wrapping_mul(2u8), 0u8);\n\n // test u16 wrapping mul\n assert_eq(65535u16.wrapping_mul(2u16), 65534u16);\n assert_eq(65535u16.wrapping_mul(65535u16), 1u16);\n\n // test u32 wrapping mul\n assert_eq(0xffffffffu32.wrapping_mul(2u32), 0xfffffffeu32);\n assert_eq(0xffffffffu32.wrapping_mul(0xffffffffu32), 1u32);\n\n // test u64 wrapping mul\n // 0xffffffffffffffffu64 is 2^64 - 1\n assert_eq(0xffffffffffffffffu64.wrapping_mul(2u64), 0xfffffffffffffffeu64);\n assert_eq(0xffffffffffffffffu64.wrapping_mul(0xffffffffffffffffu64), 1u64);\n\n // test signed types\n assert_eq(127i8.wrapping_mul(2i8), -2i8);\n let val: i8 = -128;\n assert_eq(val.wrapping_mul(-1i8), -128i8);\n\n // test Field wrapping mul\n let six: Field = 6;\n let seven: Field = 7;\n let forty_two: Field = 42;\n let neg_two: Field = -2;\n let two: Field = 2;\n let neg_four: Field = -4;\n assert_eq(six.wrapping_mul(seven), forty_two);\n assert_eq(neg_two.wrapping_mul(two), neg_four);\n }\n\n #[test]\n fn test_u1_behavior() {\n // u1 wrapping add is XOR\n assert_eq(0u1.wrapping_add(0u1), 0u1);\n assert_eq(0u1.wrapping_add(1u1), 1u1);\n assert_eq(1u1.wrapping_add(0u1), 1u1);\n assert_eq(1u1.wrapping_add(1u1), 0u1);\n\n // u1 wrapping sub is XOR\n assert_eq(0u1.wrapping_sub(0u1), 0u1);\n assert_eq(0u1.wrapping_sub(1u1), 1u1);\n assert_eq(1u1.wrapping_sub(0u1), 1u1);\n assert_eq(1u1.wrapping_sub(1u1), 0u1);\n\n // u1 wrapping mul is AND\n assert_eq(0u1.wrapping_mul(0u1), 0u1);\n assert_eq(0u1.wrapping_mul(1u1), 0u1);\n assert_eq(1u1.wrapping_mul(0u1), 0u1);\n assert_eq(1u1.wrapping_mul(1u1), 1u1);\n }\n\n // test wrapping operations is the same as the regular operations\n #[test]\n fn test_wrapping_vs_regular() {\n let u64_large = 0x123456789abcdef0u64;\n let u128_large = 0x123456789abcdef0123456789abcdef0u128;\n\n assert_eq(u64_large.wrapping_add(1u64), u64_large + 1u64);\n assert_eq(u64_large.wrapping_sub(1u64), u64_large - 1u64);\n assert_eq(u64_large.wrapping_mul(2u64), u64_large * 2u64);\n\n assert_eq(u128_large.wrapping_add(1u128), u128_large + 1u128);\n assert_eq(u128_large.wrapping_sub(1u128), u128_large - 1u128);\n assert_eq(u128_large.wrapping_mul(2u128), u128_large * 2u128);\n }\n\n #[test]\n fn test_field_wrapping_operations() {\n let zero: Field = 0;\n let one: Field = 1;\n let large_val = 0xffffffffffffffff;\n\n // test Field wrapping operations\n assert_eq(zero.wrapping_add(one), one);\n assert_eq(one.wrapping_add(large_val), one + large_val);\n assert_eq(zero.wrapping_sub(one), -one);\n assert_eq(one.wrapping_sub(large_val), one - large_val);\n assert_eq(zero.wrapping_mul(one), zero);\n assert_eq(one.wrapping_mul(large_val), large_val);\n\n // test Field basic operations\n assert_eq(zero.add(one), one);\n assert_eq(one.add(zero), one);\n assert_eq(one.sub(one), zero);\n assert_eq(one.mul(one), one);\n assert_eq(one.div(one), one);\n assert_eq(zero.neg(), zero);\n assert_eq(one.neg(), -one);\n }\n\n }\n\n mod split_functions {\n\n use crate::ops::arith::{split64, split_into_64_bit_limbs};\n\n // test split64 and split_into_64_bit_limbs functions\n #[test]\n fn test_split_functions() {\n let small_val = 0x123456789abcdefu128;\n let large_val = 0x123456789abcdef0123456789abcdef0u128;\n let max_val = 0xffffffffffffffffffffffffffffffffu128;\n\n // test split64 (unconstrained)\n // Safety: testing\n unsafe {\n let (lo, hi) = split64(small_val);\n assert_eq(lo, 0x123456789abcdefu64);\n assert_eq(hi, 0u64);\n\n let (lo2, hi2) = split64(large_val);\n assert_eq(lo2, 0x123456789abcdef0u64);\n assert_eq(hi2, 0x123456789abcdef0u64);\n }\n\n // test split_into_64_bit_limbs (constrained)\n let (lo3, hi3) = split_into_64_bit_limbs(small_val);\n assert_eq(lo3, 0x123456789abcdefu64);\n assert_eq(hi3, 0u64);\n\n let (lo4, hi4) = split_into_64_bit_limbs(large_val);\n assert_eq(lo4, 0x123456789abcdef0u64);\n assert_eq(hi4, 0x123456789abcdef0u64);\n\n let (lo5, hi5) = split_into_64_bit_limbs(max_val);\n assert_eq(lo5, 0xffffffffffffffffu64);\n assert_eq(hi5, 0xffffffffffffffffu64);\n }\n }\n}\n"
4909
4909
  },
4910
- "390": {
4910
+ "392": {
4911
4911
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/field.nr",
4912
4912
  "source": "global KNOWN_NON_RESIDUE: Field = 5; // This is a non-residue in Noir's native Field.\n\npub fn field_from_bytes<let N: u32>(bytes: [u8; N], big_endian: bool) -> Field {\n assert(bytes.len() < 32, \"field_from_bytes: N must be less than 32\");\n let mut as_field = 0;\n let mut offset = 1;\n for i in 0..N {\n let mut index = i;\n if big_endian {\n index = N - i - 1;\n }\n as_field += (bytes[index] as Field) * offset;\n offset *= 256;\n }\n\n as_field\n}\n\n// Convert a 32 byte array to a field element by truncating the final byte\npub fn field_from_bytes_32_trunc(bytes32: [u8; 32]) -> Field {\n // Convert it to a field element\n let mut v = 1;\n let mut high = 0 as Field;\n let mut low = 0 as Field;\n\n for i in 0..15 {\n // covers bytes 16..30 (31 is truncated and ignored)\n low = low + (bytes32[15 + 15 - i] as Field) * v;\n v = v * 256;\n // covers bytes 0..14\n high = high + (bytes32[14 - i] as Field) * v;\n }\n // covers byte 15\n low = low + (bytes32[15] as Field) * v;\n\n low + high * v\n}\n\n// TODO to radix returns u8, so we cannot use bigger radixes. It'd be ideal to use a radix of the maximum range-constrained integer noir supports\npub fn full_field_less_than(lhs: Field, rhs: Field) -> bool {\n lhs.lt(rhs)\n}\n\npub fn full_field_greater_than(lhs: Field, rhs: Field) -> bool {\n rhs.lt(lhs)\n}\n\npub fn min(f1: Field, f2: Field) -> Field {\n if f1.lt(f2) {\n f1\n } else {\n f2\n }\n}\n\nglobal C1: u32 = 28;\nglobal C3: Field = 40770029410420498293352137776570907027550720424234931066070132305055;\nglobal C5: Field = 19103219067921713944291392827692070036145651957329286315305642004821462161904;\n\npub fn pow(x: Field, y: Field) -> Field {\n let mut r = 1 as Field;\n let b: [u1; 254] = y.to_le_bits();\n\n for i in 0..254 {\n r *= r;\n r *= (b[254 - 1 - i] as Field) * x + (1 - b[254 - 1 - i] as Field);\n }\n\n r\n}\n\n/// Returns Option::some(sqrt) if there is a square root, and Option::none() if there isn't.\npub fn sqrt(x: Field) -> Option<Field> {\n // Safety: if the hint returns the square root of x, then we simply square it\n // check the result equals x. If x is not square, we return a value that\n // enables us to prove that fact (see the `else` clause below).\n let (is_sq, maybe_sqrt) = unsafe { __sqrt(x) };\n\n if is_sq {\n let sqrt = maybe_sqrt;\n validate_sqrt_hint(x, sqrt);\n Option::some(sqrt)\n } else {\n let not_sqrt_hint = maybe_sqrt;\n validate_not_sqrt_hint(x, not_sqrt_hint);\n Option::none()\n }\n}\n\n// Boolean indicating whether Field element is a square, i.e. whether there exists a y in Field s.t. x = y*y.\nunconstrained fn is_square(x: Field) -> bool {\n let v = pow(x, -1 / 2);\n v * (v - 1) == 0\n}\n\n// Tonelli-Shanks algorithm for computing the square root of a Field element.\n// Requires C1 = max{c: 2^c divides (p-1)}, where p is the order of Field\n// as well as C3 = (C2 - 1)/2, where C2 = (p-1)/(2^c1),\n// and C5 = ZETA^C2, where ZETA is a non-square element of Field.\n// These are pre-computed above as globals.\nunconstrained fn tonelli_shanks_sqrt(x: Field) -> Field {\n let mut z = pow(x, C3);\n let mut t = z * z * x;\n z *= x;\n let mut b = t;\n let mut c = C5;\n\n for i in 0..(C1 - 1) {\n for _j in 1..(C1 - i - 1) {\n b *= b;\n }\n\n z *= if b == 1 { 1 } else { c };\n\n c *= c;\n\n t *= if b == 1 { 1 } else { c };\n\n b = t;\n }\n\n z\n}\n\n// NB: this doesn't return an option, because in the case of there _not_ being a square root, we still want to return a field element that allows us to then assert in the _constrained_ sqrt function that there is no sqrt.\nunconstrained fn __sqrt(x: Field) -> (bool, Field) {\n let is_sq = is_square(x);\n if is_sq {\n let sqrt = tonelli_shanks_sqrt(x);\n (true, sqrt)\n } else {\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // sq * sq = sq // 1 * 1 = 1\n // non-sq * non-sq = sq // -1 * -1 = 1\n // sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n let not_sqrt = tonelli_shanks_sqrt(demo_x_not_square);\n (false, not_sqrt)\n }\n}\n\nfn validate_sqrt_hint(x: Field, hint: Field) {\n assert(hint * hint == x, f\"The claimed_sqrt {hint} is not the sqrt of x {x}\");\n}\n\nfn validate_not_sqrt_hint(x: Field, hint: Field) {\n // We need this assertion, because x = 0 would pass the other assertions in this\n // function, and we don't want people to be able to prove that 0 is not square!\n assert(x != 0, \"0 has a square root; you cannot claim it is not square\");\n // Demonstrate that x is not a square (a.k.a. a \"quadratic non-residue\").\n //\n // Facts:\n // The Legendre symbol (\"LS\") of x, is x^((p-1)/2) (mod p).\n // - If x is a square, LS(x) = 1\n // - If x is not a square, LS(x) = -1\n // - If x = 0, LS(x) = 0.\n //\n // Hence:\n // 1. sq * sq = sq // 1 * 1 = 1\n // 2. non-sq * non-sq = sq // -1 * -1 = 1\n // 3. sq * non-sq = non-sq // -1 * 1 = -1\n //\n // See: https://en.wikipedia.org/wiki/Legendre_symbol\n //\n // We want to demonstrate that this below multiplication falls under bullet-point (2):\n let demo_x_not_square = x * KNOWN_NON_RESIDUE;\n // I.e. we want to demonstrate that `demo_x_not_square` has Legendre symbol 1\n // (i.e. that it is a square), so we prove that it is square below.\n // Why do we want to prove that it has LS 1?\n // Well, since it was computed with a known-non-residue, its squareness implies we're\n // in case 2 (something multiplied by a known-non-residue yielding a result which\n // has a LS of 1), which implies that x must be a non-square. The unconstrained\n // function gave us the sqrt of demo_x_not_square, so all we need to do is\n // assert its squareness:\n assert(\n hint * hint == demo_x_not_square,\n f\"The hint {hint} does not demonstrate that {x} is not a square\",\n );\n}\n\n#[test]\nunconstrained fn bytes_field_test() {\n // Tests correctness of field_from_bytes_32_trunc against existing methods\n // Bytes representing 0x543e0a6642ffeb8039296861765a53407bba62bd1c97ca43374de950bbe0a7\n let inputs = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167,\n ];\n let field = field_from_bytes(inputs, true);\n let return_bytes: [u8; 31] = field.to_be_bytes();\n assert_eq(inputs, return_bytes);\n // 32 bytes - we remove the final byte, and check it matches the field\n let inputs2 = [\n 84, 62, 10, 102, 66, 255, 235, 128, 57, 41, 104, 97, 118, 90, 83, 64, 123, 186, 98, 189, 28,\n 151, 202, 67, 55, 77, 233, 80, 187, 224, 167, 158,\n ];\n let field2 = field_from_bytes_32_trunc(inputs2);\n let return_bytes2: [u8; 31] = field.to_be_bytes();\n\n assert_eq(return_bytes2, return_bytes);\n assert_eq(field2, field);\n}\n\n#[test]\nunconstrained fn max_field_test() {\n // Tests the hardcoded value in constants.nr vs underlying modulus\n // NB: We can't use 0-1 in constants.nr as it will be transpiled incorrectly to ts and sol constants files\n let max_value = crate::constants::MAX_FIELD_VALUE;\n assert_eq(max_value, 0 - 1);\n // modulus == 0 is tested elsewhere, so below is more of a sanity check\n let max_bytes: [u8; 32] = max_value.to_be_bytes();\n let mod_bytes = std::field::modulus_be_bytes();\n for i in 0..31 {\n assert_eq(max_bytes[i], mod_bytes[i]);\n }\n assert_eq(max_bytes[31], mod_bytes[31] - 1);\n}\n\n#[test]\nunconstrained fn sqrt_valid_test() {\n let x = 16; // examples: 16, 9, 25, 81\n let result = sqrt(x);\n assert(result.is_some());\n assert_eq(result.unwrap() * result.unwrap(), x);\n}\n\n#[test]\nunconstrained fn sqrt_invalid_test() {\n let x = KNOWN_NON_RESIDUE; // has no square root in the field\n let result = sqrt(x);\n assert(result.is_none());\n}\n"
4913
4913
  },
4914
- "394": {
4914
+ "396": {
4915
4915
  "path": "/home/aztec-dev/aztec-packages/noir-projects/noir-protocol-circuits/crates/types/src/utils/reader.nr",
4916
4916
  "source": "pub struct Reader<let N: u32> {\n data: [Field; N],\n offset: u32,\n}\n\nimpl<let N: u32> Reader<N> {\n pub fn new(data: [Field; N]) -> Self {\n Self { data, offset: 0 }\n }\n\n pub fn read(&mut self) -> Field {\n let result = self.data[self.offset];\n self.offset += 1;\n result\n }\n\n pub fn read_u32(&mut self) -> u32 {\n self.read() as u32\n }\n\n pub fn read_u64(&mut self) -> u64 {\n self.read() as u64\n }\n\n pub fn read_bool(&mut self) -> bool {\n self.read() != 0\n }\n\n pub fn read_array<let K: u32>(&mut self) -> [Field; K] {\n let mut result = [0; K];\n for i in 0..K {\n result[i] = self.data[self.offset + i];\n }\n self.offset += K;\n result\n }\n\n pub fn read_struct<T, let K: u32>(&mut self, deserialise: fn([Field; K]) -> T) -> T {\n let result = deserialise(self.read_array());\n result\n }\n\n pub fn read_struct_array<T, let K: u32, let C: u32>(\n &mut self,\n deserialise: fn([Field; K]) -> T,\n mut result: [T; C],\n ) -> [T; C] {\n for i in 0..C {\n result[i] = self.read_struct(deserialise);\n }\n result\n }\n\n pub fn finish(self) {\n assert_eq(self.offset, self.data.len(), \"Reader did not read all data\");\n }\n}\n"
4917
4917
  },
4918
- "405": {
4918
+ "407": {
4919
4919
  "path": "/home/aztec-dev/nargo/github.com/noir-lang/sha256/v0.3.0/src/sha256.nr",
4920
4920
  "source": "use std::hash::sha256_compression;\nuse std::runtime::is_unconstrained;\n\nuse constants::{\n BLOCK_BYTE_PTR, BLOCK_SIZE, HASH, INITIAL_STATE, INT_BLOCK_SIZE, INT_SIZE, INT_SIZE_PTR,\n MSG_BLOCK, MSG_SIZE_PTR, STATE, TWO_POW_16, TWO_POW_24, TWO_POW_32, TWO_POW_8,\n};\n\npub(crate) mod constants;\nmod tests;\nmod oracle_tests;\n\n// Implementation of SHA-256 mapping a byte array of variable length to\n// 32 bytes.\n\n// Deprecated in favour of `sha256_var`\n// docs:start:sha256\npub fn sha256<let N: u32>(input: [u8; N]) -> HASH\n// docs:end:sha256\n{\n digest(input)\n}\n\n// SHA-256 hash function\n#[no_predicates]\npub fn digest<let N: u32>(msg: [u8; N]) -> HASH {\n sha256_var(msg, N)\n}\n\n// Variable size SHA-256 hash\npub fn sha256_var<let N: u32>(msg: [u8; N], message_size: u32) -> HASH {\n assert(message_size <= N);\n\n let (h, msg_block) = process_full_blocks(msg, message_size, INITIAL_STATE);\n\n finalize_sha256_blocks(message_size, h, msg_block)\n}\n\n/// Returns the first partially filled message block along with the internal state prior to its compression.\npub(crate) fn process_full_blocks<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n initial_state: STATE,\n) -> (STATE, MSG_BLOCK) {\n if std::runtime::is_unconstrained() {\n let num_full_blocks = message_size / BLOCK_SIZE;\n // Intermediate hash, starting with the canonical initial value\n let mut h: STATE = initial_state;\n // Pointer into msg_block on a 64 byte scale\n for i in 0..num_full_blocks {\n let msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * i);\n h = sha256_compression(msg_block, h);\n }\n\n // We now build the final un-filled block.\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n let msg_block: MSG_BLOCK = if msg_byte_ptr != 0 {\n let num_full_blocks = message_size / BLOCK_SIZE;\n let msg_start = BLOCK_SIZE * num_full_blocks;\n build_msg_block(msg, message_size, msg_start)\n } else {\n // If the message size is a multiple of the block size (i.e. `msg_byte_ptr == 0`) then this block will be empty,\n // so we short-circuit in this case.\n [0; 16]\n };\n\n (h, msg_block)\n } else {\n let num_blocks = N / BLOCK_SIZE;\n\n // We store the intermediate hash states and message blocks in these two arrays which allows us to select the correct state\n // for the given message size with a lookup.\n //\n // These can be reasoned about as followed:\n // Consider a message with an unknown number of bytes, `msg_size. It can be seen that this will have `msg_size / BLOCK_SIZE` full blocks.\n // - `states[i]` should then be the state after processing the first `i` blocks.\n // - `blocks[i]` should then be the next message block after processing the first `i` blocks.\n // blocks[first_partially_filled_block_index] is the last block that is partially filled or all 0 if the message is a multiple of the block size.\n //\n // In other words:\n //\n // blocks = [block 1, block 2, ..., block N / BLOCK_SIZE, block N / BLOCK_SIZE + 1]\n // states = [INITIAL_STATE, state after block 1, state after block 2, ..., state after block N / BLOCK_SIZE]\n //\n // We place the initial state in `states[0]` as in the case where the `message_size < BLOCK_SIZE` then there are no full blocks to process and no compressions should occur.\n let mut blocks: [MSG_BLOCK; N / BLOCK_SIZE + 1] = std::mem::zeroed();\n let mut states: [STATE; N / BLOCK_SIZE + 1] = [initial_state; N / BLOCK_SIZE + 1];\n\n // Optimization for small messages. If the largest possible message is smaller than a block then we know that the first block is partially filled\n // no matter the value of `message_size`.\n //\n // Note that the condition `N >= BLOCK_SIZE` is known during monomorphization so this has no runtime cost.\n let first_partially_filled_block_index = if N >= BLOCK_SIZE {\n message_size / BLOCK_SIZE\n } else {\n 0\n };\n\n for i in 0..num_blocks {\n let msg_start = BLOCK_SIZE * i;\n let new_msg_block = build_msg_block(msg, message_size, msg_start);\n\n blocks[i] = new_msg_block;\n states[i + 1] = sha256_compression(new_msg_block, states[i]);\n }\n // If message_size/BLOCK_SIZE == N/BLOCK_SIZE, and there is a remainder, we need to process the last block.\n if N % BLOCK_SIZE != 0 {\n let new_msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * num_blocks);\n\n blocks[num_blocks] = new_msg_block;\n }\n\n (states[first_partially_filled_block_index], blocks[first_partially_filled_block_index])\n }\n}\n\n// Take `BLOCK_SIZE` number of bytes from `msg` starting at `msg_start` and pack them into a `MSG_BLOCK`.\npub(crate) unconstrained fn build_msg_block_helper<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n msg_start: u32,\n) -> MSG_BLOCK {\n let mut msg_block: MSG_BLOCK = [0; INT_BLOCK_SIZE];\n\n // We insert `BLOCK_SIZE` bytes (or up to the end of the message)\n let block_input = if message_size < msg_start {\n // This function is sometimes called with `msg_start` past the end of the message.\n // In this case we return an empty block and zero pointer to signal that the result should be ignored.\n 0\n } else if message_size < msg_start + BLOCK_SIZE {\n message_size - msg_start\n } else {\n BLOCK_SIZE\n };\n\n // Figure out the number of items in the int array that we have to pack.\n // e.g. if the input is [0,1,2,3,4,5] then we need to pack it as 2 items: [0123, 4500]\n let int_input = (block_input + INT_SIZE - 1) / INT_SIZE;\n\n for i in 0..int_input {\n let mut msg_item: u32 = 0;\n // Always construct the integer as 4 bytes, even if it means going beyond the input.\n for j in 0..INT_SIZE {\n let k = i * INT_SIZE + j;\n let msg_byte = if k < block_input {\n msg[msg_start + k]\n } else {\n 0\n };\n msg_item = (msg_item << 8) + msg_byte as u32;\n }\n msg_block[i] = msg_item;\n }\n\n // Returning the index as if it was a 64 byte array.\n // We have to project it down to 16 items and bit shifting to get a byte back if we need it.\n msg_block\n}\n\n// Build a message block from the input message starting at `msg_start`.\n//\n// If `message_size` is less than `msg_start` then this is called with the old non-empty block;\n// in that case we can skip verification, ie. no need to check that everything is zero.\nfn build_msg_block<let N: u32>(msg: [u8; N], message_size: u32, msg_start: u32) -> MSG_BLOCK {\n let msg_block =\n // Safety: We constrain the block below by reconstructing each `u32` word from the input bytes.\n unsafe { build_msg_block_helper(msg, message_size, msg_start) };\n\n if !is_unconstrained() {\n let mut msg_end = msg_start + BLOCK_SIZE;\n\n let max_read_index = std::cmp::min(message_size, msg_end);\n\n // Reconstructed packed item\n let mut msg_item: Field = 0;\n\n // Inclusive at the end so that we can compare the last item.\n for k in msg_start..=msg_end {\n if (k != msg_start) & (k % INT_SIZE == 0) {\n // If we consumed some input we can compare against the block.\n let msg_block_index = (k - msg_start) / INT_SIZE - 1;\n assert_eq(msg_block[msg_block_index] as Field, msg_item);\n\n msg_item = 0;\n }\n\n // If we have input to consume, add it at the rightmost position.\n let msg_byte = if k < max_read_index { msg[k] } else { 0 };\n msg_item = msg_item * (TWO_POW_8 as Field) + msg_byte as Field;\n }\n }\n msg_block\n}\n\n// Encode `8 * message_size` into two `u32` limbs.\nunconstrained fn encode_len(message_size: u32) -> (u32, u32) {\n let len = 8 * message_size as u64;\n let lo = len & 0xFFFFFFFF;\n let hi = (len >> 32) & 0xFFFFFFFF;\n (lo as u32, hi as u32)\n}\n\n// Write the length into the last 8 bytes of the block.\nfn attach_len_to_msg_block(mut msg_block: MSG_BLOCK, message_size: u32) -> MSG_BLOCK {\n // Safety: We assert the correctness of the decomposition below.\n // 2 `u32` limbs cannot overflow the field modulus so performing the check as `Field`s is safe.\n let (lo, hi) = unsafe { encode_len(message_size) };\n assert_eq(8 * (message_size as Field), lo as Field + hi as Field * TWO_POW_32);\n\n msg_block[INT_SIZE_PTR] = hi;\n msg_block[INT_SIZE_PTR + 1] = lo;\n msg_block\n}\n\n// Perform the final compression, then transform the `STATE` into `HASH`.\nfn hash_final_block(msg_block: MSG_BLOCK, mut state: STATE) -> HASH {\n // Hash final padded block\n state = sha256_compression(msg_block, state);\n\n // Return final hash as byte array\n let mut out_h: HASH = [0; 32]; // Digest as sequence of bytes\n for j in 0..8 {\n let h_bytes: [u8; 4] = (state[j] as Field).to_be_bytes();\n for k in 0..4 {\n out_h[4 * j + k] = h_bytes[k];\n }\n }\n\n out_h\n}\n\n/// Lookup table for the position of the padding bit within one of the `u32` words in the final message block.\nglobal PADDING_BIT_TABLE: [u32; 4] =\n [(1 << 7) * TWO_POW_24, (1 << 7) * TWO_POW_16, (1 << 7) * TWO_POW_8, (1 << 7)];\n\n/// Add 1 bit padding to end of message and compress the block if there's not enough room for the 8-byte length.\n/// Returns the updated hash state and message block that will be used to write the message size.\n///\n/// # Assumptions:\n///\n/// - `msg_block[i] == 0` for all `i > msg_byte_ptr / INT_SIZE`\n/// - `msg_block[msg_byte_ptr / INT_SIZE] & ((1 << 7) * (msg_byte_ptr % INT_SIZE)) == 0`\nfn add_padding_byte_and_compress_if_needed(\n mut msg_block: MSG_BLOCK,\n msg_byte_ptr: BLOCK_BYTE_PTR,\n h: STATE,\n) -> (STATE, MSG_BLOCK) {\n // Pad the rest such that we have a [u32; 2] block at the end representing the length\n // of the message, and a block of 1 0 ... 0 following the message (i.e. [1 << 7, 0, ..., 0]).\n // Here we rely on the fact that everything beyond the available input is set to 0.\n let index = msg_byte_ptr / INT_SIZE;\n\n // Lookup the position of the padding bit and insert it into the message block.\n msg_block[index] += PADDING_BIT_TABLE[msg_byte_ptr % INT_SIZE];\n\n // If we don't have room to write the size, compress the block and reset it.\n if msg_byte_ptr >= MSG_SIZE_PTR {\n let h = sha256_compression(msg_block, h);\n\n // In this case, the final block consists of all zeros with the last 8 bytes containing the length.\n // We set msg_block to all zeros and attach_len_to_msg_block will add the length to the last 8 bytes.\n let msg_block = [0; INT_BLOCK_SIZE];\n (h, msg_block)\n } else {\n (h, msg_block)\n }\n}\n\npub(crate) fn finalize_sha256_blocks(\n message_size: u32,\n mut h: STATE,\n mut msg_block: MSG_BLOCK,\n) -> HASH {\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n\n let (h, mut msg_block) = add_padding_byte_and_compress_if_needed(msg_block, msg_byte_ptr, h);\n\n msg_block = attach_len_to_msg_block(msg_block, message_size);\n\n hash_final_block(msg_block, h)\n}\n\n/**\n * Given some state of a partially computed sha256 hash and part of the preimage, continue hashing\n * @notice used for complex/ recursive offloading of post-partial hashing\n *\n * @param N - the maximum length of the message to hash\n * @param h - the intermediate hash state\n * @param msg - the preimage to hash\n * @param message_size - the actual length of the preimage to hash\n * @return the intermediate hash state after compressing in msg to h\n */\npub fn partial_sha256_var_interstitial<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n) -> [u32; 8] {\n assert(message_size % BLOCK_SIZE == 0, \"Message size must be a multiple of the block size\");\n if std::runtime::is_unconstrained() {\n // Safety: running as an unconstrained function\n unsafe {\n __sha_partial_var_interstitial(h, msg, message_size)\n }\n } else {\n let (h, _) = process_full_blocks(msg, message_size, h);\n\n h\n }\n}\n\n/**\n * Given some state of a partially computed sha256 hash and remaining preimage, complete the hash\n * @notice used for traditional partial hashing\n *\n * @param N - the maximum length of the message to hash\n * @param h - the intermediate hash state\n * @param msg - the remaining preimage to hash\n * @param message_size - the size of the current chunk\n * @param real_message_size - the total size of the original preimage\n * @return finalized sha256 hash\n */\npub fn partial_sha256_var_end<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n real_message_size: u32,\n) -> [u8; 32] {\n assert(message_size % BLOCK_SIZE == 0, \"Message size must be a multiple of the block size\");\n if std::runtime::is_unconstrained() {\n // Safety: running as an unconstrained function\n unsafe {\n h = __sha_partial_var_interstitial(h, msg, message_size);\n\n // Handle setup of the final msg block.\n // This case is only hit if the msg is less than the block size,\n // or our message cannot be evenly split into blocks.\n\n finalize_last_sha256_block(h, real_message_size, msg)\n }\n } else {\n let (h, msg_block) = process_full_blocks(msg, message_size, h);\n finalize_sha256_blocks(real_message_size, h, msg_block)\n }\n}\n\nunconstrained fn __sha_partial_var_interstitial<let N: u32>(\n mut h: [u32; 8],\n msg: [u8; N],\n message_size: u32,\n) -> [u32; 8] {\n let num_full_blocks = message_size / BLOCK_SIZE;\n // Intermediate hash, starting with the canonical initial value\n // Pointer into msg_block on a 64 byte scale\n for i in 0..num_full_blocks {\n let msg_block = build_msg_block(msg, message_size, BLOCK_SIZE * i);\n h = sha256_compression(msg_block, h);\n }\n h\n}\n\n// Helper function to finalize the message block with padding and length\nunconstrained fn finalize_last_sha256_block<let N: u32>(\n mut h: STATE,\n message_size: u32,\n msg: [u8; N],\n) -> HASH {\n let msg_byte_ptr = message_size % BLOCK_SIZE;\n\n // We now build the final un-filled block.\n let msg_block: MSG_BLOCK = if msg_byte_ptr != 0 {\n let num_full_blocks = message_size / BLOCK_SIZE;\n let msg_start = BLOCK_SIZE * num_full_blocks;\n build_msg_block(msg, message_size, msg_start)\n } else {\n // If the message size is a multiple of the block size (i.e. `msg_byte_ptr == 0`) then this block will be empty,\n // so we short-circuit in this case.\n [0; 16]\n };\n\n // Once built, we need to add the necessary padding bytes and encoded length\n let (h, mut msg_block) = add_padding_byte_and_compress_if_needed(msg_block, msg_byte_ptr, h);\n msg_block = attach_len_to_msg_block(msg_block, message_size);\n\n hash_final_block(msg_block, h)\n}\n\nmod test_process_full_blocks {\n\n /// Wrapper to force an unconstrained runtime on process_full_blocks.\n unconstrained fn unconstrained_process_full_blocks<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n h: super::STATE,\n ) -> (super::STATE, super::MSG_BLOCK) {\n super::process_full_blocks(msg, message_size, h)\n }\n\n #[test]\n fn test_implementations_agree(msg: [u8; 100], message_size: u32) {\n let message_size = message_size % 100;\n // Safety: test function\n let unconstrained_state =\n unsafe { unconstrained_process_full_blocks(msg, message_size, super::INITIAL_STATE) };\n let state = super::process_full_blocks(msg, message_size, super::INITIAL_STATE);\n assert_eq(state, unconstrained_state);\n }\n}\n\nmod test_sha256_var {\n\n /// Wrapper to force an unconstrained runtime on sha256.\n unconstrained fn unconstrained_sha256<let N: u32>(\n msg: [u8; N],\n message_size: u32,\n ) -> super::HASH {\n super::sha256_var(msg, message_size)\n }\n\n #[test]\n fn test_implementations_agree(msg: [u8; 100], message_size: u32) {\n let message_size = message_size % 100;\n // Safety: test function\n let unconstrained_sha = unsafe { unconstrained_sha256(msg, message_size) };\n let sha = super::sha256_var(msg, message_size);\n assert_eq(sha, unconstrained_sha);\n }\n\n}\n"
4921
4921
  },