Official AKADATA documentation · v0.0.5

PHP canonical CLI/reference

The self-contained canonical reference. Native embedded compressed chunk data; it reconstructs the canonical JSON byte-for-byte for OpenPGP verification.

Purpose

The self-contained canonical reference. Native embedded compressed chunk data; it reconstructs the canonical JSON byte-for-byte for OpenPGP verification.

Why this version exists

It exists as the readable specification implementation and command-line picker against which every port can be compared.

Canonical validation

It validates the embedded chunk counts, raw lengths, per-chunk SHA-256 checksums, total word count and the global checksum before generation.

Wordlist data handling

Native embedded compressed chunk data. The embedded chunk field named “words” holds compressed base64 raw-DEFLATE token streams, not decoded words. It inflates the embedded chunks in memory; nothing is read from an external wordlist file at runtime.

Cryptographic randomness

PHP random_int() drives Fisher–Yates selection and per-character case decisions.

OpenPGP verification

The implementation reconstructs the canonical JSON (SHA-256 ea0be8d452c422f154358b386c0c5bfc1f4e8e0670f9cd4ddf1a662cb3c96ec8) so wordlist.json can be verified externally with gpg against the AKADATA signing key.

Use this implementation

File location
aip-56-reference.php
Dependencies
PHP 8; gpg and the expected public key are required only for optional OpenPGP verification of the canonical JSON.
Check
./aip-56-reference.php --check
Run
./aip-56-reference.php

Published source

Download source637 lines
#!/usr/bin/env php<?php/** * AIP-56 self-contained signed reference picker. * * Contains the compressed, checksummed, OpenPGP-signed wordlist inside this file. * Verifies the embedded detached PGP signature when GPG and the public key are available. * Validates each a-z chunk. * Validates the global checksum. * Picks 2 distinct words from each letter group. * Shuffles the 52-word pool. * Takes 15 words. * Applies random per-character mixed case. */declare(strict_types=1);/* * AIP-56 Human Recovery Key reference implementation. * Copyright (c) 2026 AKADATA LIMITED. * Released under the MIT License; see LICENSE.md. *//* BEGIN GENERATED AIP56 PAYLOAD */$wordlist = [    'version' => 'AIP-56-WORDLIST-CHUNKS-1',    'created_at' => '2026-07-18T20:10:52+00:00',    'word_length' => 5,    'token_width' => 7,    'encoding' => 'base64-standard-trim-final-equals',    'codec' => 'deflate-base64',    'selection' => [        'pick_per_letter' => 2,        'candidate_count' => 52,        'final_count' => 15,        'case_sensitive' => true,        'case_entropy_bits' => 75,    ],    'chunks' => [        'a' => [            'count' => 521,            'raw_length' => 3647,            'words' => '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',            'checksum' => 'b612a14a1554e6f50172fca68e2e182c1c497e9a04dc97405286ef84c67357b6',        ],        'b' => [            'count' => 667,            'raw_length' => 4669,            'words' => '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',            'checksum' => 'e816cb5954ec2ef00016c4edd7598f518228d58c06b3ed46c39aecf55ded7138',        ],        'c' => [            'count' => 700,            'raw_length' => 4900,            'words' => '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',            'checksum' => '1a9a1b70a84befb60b031564da9db09ac6cdc2a1f3d4ac8da3d52a257d56296d',        ],        'd' => [            'count' => 483,            'raw_length' => 3381,            'words' => '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',            'checksum' => 'fdb7eb76eea6f303471145a9c70bd83d53002e1bbd6f960ab44f696ffc78d60e',        ],        'e' => [            'count' => 198,            'raw_length' => 1386,            'words' => 'LVTLbuMwEPsly1kDu8cGaNI1UAM10EjWzbKKKvUjbtH6ka/fIWdPgiyJwyE59rbKGvviXTL+/OrdcXl76r0tMu/+yjIE++hd9cXdlsIoN4ehOzzLg9QcXrw97fH87u2fe2t/YRemZzxv5Z3dBl4xH96+ejtz58rdSz275cB0aQly5tLq7eqdH7qpFxJzIxVsbZpc3plr4+RjaSKgpQIIbnMUunbriXIyLXrAc1DKPLgUPyHvAN04OavuQLHDV8hxlpTLwqbTGlDvdCdYmTop66os5M/ADILp6gN7KPqIZZjaJz7nzTTHJ7lZ3xr0UN/eZLH15J1gmm+P6mlscSY83YOn5CsUDA5CrvGMnQmCKRVIYpjD2EHBYHsqQbpzk4uscVLp1njolTUKUTrsoMTJoIJIFw6dflwhnSrPj25IsNEWphv/iwyLBy+Y7nIPuTzYFppqrrT/lPN5PZNL/dGeYZUKCZUAtnSjJMfPGo0pwCOz0CpzjeDpR6IUech7sEakaCqU+GAKjkuTv4sBO/wT8qquSCfPN0Owy94yNnM468Ie5k5IuDhwSXMHZlWmpuY0oNzDAeruLTqKE5s2a5RICWtCiwE6D92oTcMjnxAUW15VwaVj2YwqmQRo+62OFSM0Q3oOD3JlYPhK08HbjWeIBiXoaY7QhViD+p6ybnzEAypYZDR142xiGjEI1RWYtrhCAlvdkF132bkkykMJ0NHSYoAqtconiuxnLGKO+j6ot6pS0gGKyePm8QaxxHCKfJR4v2uuoaeO9jz7828dZtj/GZDIjYa7owk4K5LKem9xZlTBQpj1nIAnBoWYR53Gmh3Zy2eLNuPOARIuOVJ3ay3CUPC/VO864QvDV8rSM1koVPxEy79Gw2DeObdRlTdJ/y/8u3FENROWIULcpGkPBcspMOw3bfqHbQ49CW7a2DaT9cwM4ufIejujUSuYWdqx/wc=',            'checksum' => 'cc0dbdfad4be71739452379f5f3e139d04bb0538d0d843ae9dadbf46d4e14137',        ],        'f' => [            'count' => 438,            'raw_length' => 3066,            'words' => 'PVbLbuM4EPwlS06C6LgLhHYMzCGH0BZvehhRbEojjGyt5K/fripmToJskeyuVzMMh7nMpzAcxnr3X+jjUzi92+NeHu1tycLpGnq/8i0+qr29FWu1/YW3ko+u3dvDZSH/sl2eudxd8bCt6/4Dm9WDrYvXkH/a8rHGgrg2W/y3qfs3OyhyXbG2xw2X46A4ldxzPA+/7cexwS5Fx+VOmy1ZvbV1/lKdbDO3afM3nMcC3Sac7LGMdd/YYw74cbme9/jyT8U615o/jvpyxgmDX3nCklVbnDezP/vk+GH/TfjPStLbd4ldlrnOP7jZzkry301/xSftHlWvpdVpe7a7L1QWuNnc8tiuQg9u0+SvoR9jvbNdihtqGfxNgDwadORv9fETgAgeowPnvQQ+1nJLsPQ2BL5dqj22XqrjF+BJbNanf+xtoy/HekAR8bx7BVXnHuSsZ9ARVwLiIskppuqIpmf2YARAE0sH2dixNb/ccjODQJBDGsOha/Dw94D+3B8pq+fpxVpSWeLI3oD8ISONSywJwQPcEsgPLceesTxOQL5Bm+6O3u0EEg6qrhQtyDlIUk5yc32Aekwo2GzpiOeSNTngmSRhoypthi8j1/mOMnUZkTBloVwvlRvvEF98OVM2j5BYYZ1ju4OuM5bk5AB/A5B9TBxFCnqcG5jElIUF/p70QikexlK2CFIdITd9cjOTBu2EAkFO/mQ/GqkfhJwLYkOL9n9NSdWdie5QHV8pRfldxV/ph/j940YI2ixKN4pb9yT+Jv5olsECv2nFGLv1EVoa4kbLzQ9UVjCd2ZeQohVYCzPS6E1g2POpIiuRbS4jWYnpx46WKXS6+6bViljtntgDei/uWEAePgk5AZHj7HQ4wD20553B4l8kvimhK1K7854hAFKRIdRSV3H5LTmu6SHolW/+RgRhkld6mv2ZfT/kIwGJPQ8zkTCUdnIV3THQmy5vRU45yA8weswTY8qzkf5zF2xt3P4NTrHCx0VhZQdBSx15+PfRKM8ULCuNbg4YeHrNbi+K9El5FnkCfEsIkqtY2UINDpgIRF5i7+reGHOTkv3CViysdl+ClZ+c6RwaFmySlUncPksoMsLSNaQ/0pt4S03z9IbyHiQ3zgCoHJ/ElJ8r0sY6YhGmeXAU//Bhm6F3m0eMNbk4KpoX9YBoZrcsqXhS8ZodGHxXEXdV079U2bs4IljJFnJq1xBkBgSkr1aq4xvzjJVdKg4NQQdA8N8z63SrGFNc+DFQ0FMrNxK64iI7vUDz0ATHUhoMF0XQXEovhNyvPCGqlmLWqBulkFFNr/KRZqNTFrihRg7aCAFK1opiW4q8Ex4Lf6o8TZmcVwDs8s78pK6ZWQzHL1J1Qvwy64xwOtzPoS/hBw32TZWIY4FdK5BpGZ9EpKzzHcXgZdHlx8ycVY4zlXcb4tkSunsAPHHARMC0OCrnd/QtS8KV45cmnmxIM2/T9YAjxDFwMX1pGR3k0wyY9d9dMUNFQjY8PePWJtqeotV8T+l2UbAoTd2kOqefsEJHsZdoZ91tnktesO4S9KTeIzPEacpECQxzGlrKyjSLCUjK8kxYZxU5msVYHkwviC5OSquT0m8oFAnTggWMLQkJRWyRaRA9hHyfBkPQXbHeJ6dSbph4Jm8OWqvFVG4KSSEQjmniAdYtG/OZCLd1CLkrRWQ3nXRvzd8YOrpgBUbsRqPgRjF4RYlfNdXUO0T0qTsDRwjjHpNLOU8lX5LtNZ0yID+kW0Kh+xIuQ1eGKuCxFKZQFDPFHHTtle1jGHQ12qEkBYRhxpuALguYzFQWIDcj0A8G+YlF6MaSblaTXDXrqrL+EMCp1rU8Lxd0qVuM8v8B',            'checksum' => '837e8393ca1ceb30d91483f8a3acb47fd9b76a8a33964ba3b1c62a095333a02a',        ],        'g' => [            'count' => 431,            'raw_length' => 3017,            'words' => 'NVbLcqs6EPwlQHEqLLMITlLlhRcBox0CV+SL8KGKh8Fff6d7lBUlocdMd0+PbFY87OXLZnlo7yebFa8cFTd3/LHZlnafMrmtNf+l9rOXlYm9YDLlJ5clPZa0WBlutjpbE2ZbPWSU2epF9j1aLknxD/fhkw96bdynG4q9Ht4waS+yocg4WS4u+7CmnB0mD74zJ7nh0Rqc6RuGOznzbs33yMO20Q0vsiTjRWVozRkrO1lpvldu72TJj4w8IsPkRaIuR3vEZNpmv/IJ9eXMxO5c0sq+rPRAyZSLzQSecq8rrEztUOMwoCT7NM3VIRZJhdtHLilHwlpM2Md/JwICIIvRYRSerhIIioNDZHLR8UNGM5bIKQ6pyPbLL5bUAo9c6yqc+Vozv9F+IsCJt4ekqRIE6O5AQhEsUjKd9xb5FU8AaUrl6OCRu8RC3r0HdLjhztw1wMVe3hGSYr3arCWNpGN1Ge7zFvflB94uSX8S3Va4lX8dQC4n3perwKAsRP3sjrKkTHhYkV7v+AyWkB8097uqZ7kCs3J3F+5reNhyhXoEM04uDU+ZwW0W9RKIiwm74rm6StDNPcEqFlvVMpqpwWLvjr/MiCu9G8gDEJT7FLMd0gBmA7Qr+5Qq0m94u+ACoXjPNPNdUUotqfIt5ebd5Z0azMhmN6Dw5MwfZMQiKZfuwqidibFQmJrYDqFkYcANUAi5nTiZTwqdrzPJaAu1VKMgr4qU+16ILi4Kk2WAt7gEWkL5Qi9bQFmg8LRSSVxhCAHK4p8E+OxoFywSUypjcgOOFh4qkuOymgZB82AZkr+eGqSWKDChv4Pm85m5h4dDnOHewAty/Sc1zfpbOuFPkq4xCreOmlgsi1ly4JkqoiQWEL0gPNXWgk6Gq4bkKkq4JvK91p+G9L3SC8KkIHvKpkicgffMDUwuT1rQH1Q24ZVVvHl1lGBBALz1RLOK5CCIMjTEbGfh5eJLLX2QSIxIk7aGHA4qm7Glh9xqJAaOlPcj1cMz/co0gfwLJ1lxsuRMW4PzialSBYEOvR1aRJ3rmcUO06E+f9VKerpbph2Bh4kvcbJTd2s/ofm+gfl/q8/7tQNjomTDCtfPbFlACZsGcscn6egokwWbImgQLjJle1HV+QPzk2tZVTvtd6Nf80wUycrbYSwn+gSxTuE9UoYEWbIFR/kaSbUMSYVZKh0+RH2yoZRSjbLhsNJiQ3T9Z5u9UfrHKG/tR7QucfYfllpsL9qWVG4pExMp0iCmjq1Okk5oLJBU6Nlh5Uxagr9SijvFnu+1tkg3EPkreU8te8DIOoIXMDHlfWTU4j3Qbp4qZmvN+xTdjd5DZ0hoZPcvbIiyQdMwaJ8UGLHOJdsP7UAnraov2nZsu3B98UFsl0LAkhBPeXbaXmg6edoOZ555Z3vhfVJq2vtV1zODx/Og1yDYw9WljJrc3WYfbMJDhByjWcEyNV8eKRHc1tjKORLzZw9YSFWQl07PFgnI5QnA7do+y6XWB8ifGbNSlSr9kGLmruSYWMw8pVia4YNdJktUkV8QiqPz/deoJ6sYlBx5EMQ3A1WQEGQROzvejfuKGNms3XCklWwisH+kn1apVrLRfk2so3K1+qBTS2cxS5zKUabGkvKVJzKt8G8mD1K+pGP6M1UcHfSxAOn/0OcZ9aOuJmSkxaWniAYHfUEwFdlQsyj5HFECNu+iGOSfiQ9IvMje2TRAKoyak5ZONDbqRCxfIDhpWzoRAlVrR+s66GEHboBRqwmol6utrSqUqUZVBVFINIheeX9D6wHW7Js0JHJUPGMBscd5qdRemxtaVnyHTI2+BGJzo/ikB2Ay3DuC7FEI8tB16tddfIcYglXzKb3Xf4/gRGvlQXJYK/qMgem0/wM=',            'checksum' => '507f742f17ebce1bf526f305c5452da2178effbeb70e87db1021668de72aa86e',        ],        'h' => [            'count' => 345,            'raw_length' => 2415,            'words' => 'NVbBcqM6EPwlB7Kp8AER5JBXta/KYLgJ2IqzyKxjwF7563e6Wz5RAkkz093Tgy+L1Td7X7qtyz98Wdy6w7sv69hnz7a6dAe8PPenwVe17fxpO2PX7Oyx9DhQL32Fx3EsP30Ztq7SS567jNgZJt7pbuPBAhV33FnVi88n+7a0/LZLYXk83PrKvtXrgJW7tc2EeOPpzR6nscLxmQeK355JbP082cv7wDuVtYtD9mkvt9YeJZJHSquix2FGhMB4xcYD9bFDWBSNeLcBK5cJglvH2l8UdtVKgf7/O8zYsgiz43AiSi1qr89DjtXUNjfLTOm6pw6ZhWmwiqr65RcKC1sLeOzO5o14oszAsIZ8nwOliWEtUPlqj8g7i+vIGo4DIdi4Csq61k538WQsqpTfIx4h8jKADCSmDtCBnHcdf7fosT18Kt6bCNgjJY9VcRVKS8faZ6rHsgasxdw2QOIJuFSPJFaWWURyZLjgXB3H6g92ApDS3UW4VGBXk6pEnIAMO7JZ5N2pBSB8WVx8vocKSKrLCXLx1ZJiJV+sPVReH0Xq5E9Mnto16dvLKkjl4U4aXaL4OmBnkXOnVcTVlXlakzDBU4dAYfbckndkeiHIbiFHJhti/dzyzrUHdMXGDrADJMB0jVXG4+7aNwKZd8aeIP9o1Y1DtoeE1STP0sSGoqFrA8Q4Ym9C7FDron7IcQ68s9VyKSuOal+ItgpWNGq3lgFY323zDgIGtLa1E8GShMPjm5iOXbln8rx68Q0IP/eU8JWuYdDhzuLcZgvS1bmrsp56SuM+lmwECfouAs5ik4XBIKRk+ksIAy1Bd9ZHOdEy0CCiVqnf78Aa2iXIW4dABh3xvIqHRfHoYFYY+TPppwMNYRWQlueegFBudxIHk8O3s4xlBe9VnTQYW/K3khW3pC6WVeqW4kvfJO9AP6Ns2OF86aLMY21PrxDYQ7sZ2141rGxKAzK5MA98U+zAE9xe6Evu5A9/0PYUu4GVy21oxgvF53Snm72kKCSu6vcoLSmXOpNn0SDYCOjUb5JTB/GQZsCiRxweYn/m0MjUmzPNUYXlQmnHsDCrPXfSdK495Rbl+skSNl395Q8/tZo0ZVDYygbCYIA+GY99KzwJ8r1LnXqQf7JhOWxIqsZENsnEJwlzr+aalDyKvg3wunB7mCoKs+Gmtm+p1h9chUsP4sKs2iOF4jT4bAtp5C1VCOwOJ78OiRVBZ2CVO4hdWtrJgmxgLpoIHxLKpOGWGoEgQ8IGT6tZnDrH0+6lcgOLBIjboNFqgxYjK5iCULuQt8HwsG2KvdcAG+SYPaYh5gqToEJg6VDdma4fNJbQje9SMle/SAdnKiflKyczIVjG9AOC5P87AwnzkJEgP/XgwWnm1DKykObmTu105KjDLwfhUfLfXsMmObtcY8bOKo1It6rDsz77oH/SW4+a7y/JBzllXJZULiPbOLzNZrK3fw==',            'checksum' => 'cb16ec4dd964694308c276b150df35b461e5e03f8eed418a55f9ceb47afa9ba6',        ],        'i' => [            'count' => 121,            'raw_length' => 847,            'words' => 'LVLRbqMwEPwlSOIqeT2plzQSSEGKbPxmG6luiCkKAdJ+/e2M72kF3tmdmR2n1dSa3ml168yH0/VoUVQR0l7KPZwuztSTNRe0+E1wurm3epUy+u2FLYOUcrTHq8ALvr2kpcJPn67OxCWkd07Rl/wmLQfZWTlzjh1xD65t7h7DbLJ6h87OyBQ18w0b9iDok5BQZUg7Z5qbO/XOWGEtw+q5xQaVnPkUQLSbvWxY/CC7yrWlsD4kAcSZokFwjzd/wteTuG7ygtNPwZEghamHZ5G2K0Z3uhC6E9bqQ9GivEaKBuBdOrNntuDa10iAWjsa+eW3nxDm8AUnRG38adHy99mSYMF94jVHT/kqEX5qNdD584/TEwFDdonaHyx1AXeFbge66mbFcrjElpkamsWfKnRmkwu21L8EiMk0ZAXA1JkLvtYclIrn30DRb8BV5FQgX34BDsvJk0c141sLmfW33yJg2daa1hm7BBxHFFFtToiS0TuMhoOm+f6vHVGUoOQ7SGgD9pHgn5WAZ+ygSCXG7bw4nBFByaMZsN4d86Uh8zAzg2MMibHJLcofV6h1kFlGD55n2moknzSrtwiKeMZgSs6y6KH6Bw==',            'checksum' => 'afcf11c35e7a463e88a698fe0351510e70c0ad902cda1655d425a1a561324a90',        ],        'j' => [            'count' => 131,            'raw_length' => 917,            'words' => 'NVNBcqMwEPwSRpuUdcwhOHvwIQcLpJsErooN0nqNiYu8fqd72JNKaKa7p3uI2VbDxxiLG5M5xjzVof2M2a2Rx5z4Voa2irl5hu633FbfPuVYohmlJIdO+ppH6kaWSF9xj177UCkfffsrZntLRTDtdyTRRSvr2J6kZP1Pize3SVqGw3vML18py9FckkFDRT63pAK+O28CpsoC+GQGaJkuXvqo88hRDntp2FGEM6AtSpTtC9mb1zMw0Y6JCjBzMw847C4d0PB32N4MBD58BiadEAc9tWxvz1RjaAosbg7dm9BOfVGTKffhCT1TxLSEWsDcZuSV1tl1+ADflV5PS8p4m5PZ+gB983gTIjr4lcDQ1Gq5SWi3u95gvh/6Ym96u+NWnPbZnfItOvsckIoz6mcO8MVeNbjXcwtbV4poRm2/q1ksASYzurC9MZr04mW+4q66Z2uo3zXiPcfEgllKyk3FkkbcxWrMHtYh4iMtKGAYYbJAc0z3Q5cst5V7xqEDUaoe2+PWntnSM0HRnVAGW3lmtPoOOhUMq7+J2PMAJvYTKJoR4jhRS33Sv0PjwM398VwpXVPkoA4iYjudOQpL+K+A6KZ8o6D8Aw==',            'checksum' => 'cddb9ee4ef514128043b62c589420ff3526c6ee5063f0ce248be21f6d383e3e1',        ],        'k' => [            'count' => 223,            'raw_length' => 1561,            'words' => 'LVVBkuIwDPwS2JstcpzDGmaq9sCBBPtmJ1MbJiakyCSQef2qW5yo2JbU6m6JaHLX2FM05ezrKdqPrj0fo+m6z2sfTTW3e7nLJpzf5eeejBzmKdY3uTOhfkTzHL2ZonFrMjsJX9L1j9yt0SJ8CjXu+nj+K3FzkB+pEIZjtMjyS+6mZi8BefVDj7JRKuDu/E8O+3BAvU0ECKlgJUu3RFRwP6kG6gsPy5+ILM9tMPqyBogi1EfU88BZrWkAiK+IgGolePfQ6hvtb+VdMYYrUk9MnWfFOUcQ8lyS8dGGnPYSXmRmKRfG5VeyiYWKhUS6KRkJr3JzAM61RTJ5gq/cpWsjh11CXDG2fCIBAP/dHI5A1oKC8trySfY1D9EYKqCs097lC4XKgd3mHy+FrFJnc0eNRI7zmzIv/RUdINlqZWp3SeZdvvqk9HiStYmAVAlc9L59Kd2AiWLhk5JN24/cknnjobR7JL78rZ7oSEj1oAvcwAqu4E+xNPYNWSIoL8bG/ANZScnyNQop+PzTwFJu2wwn9eBGv+Czi6/fSStyPrft4QYvhT0CCvjadGNzgKgbrb56EcdW9xYVqo1HWTBIslryMgW2uW2uD94BkrP+fAI9LJutdjSyAhTjyDCZM581zRDOPc1nmZMvi65lt4s2VniOxdjQREuDu7y2Z49D+EwYjPCSyEhLLWqwzHEKHePKm1pq1nmYqEOhiskc1TtYMdYeccz5arrSWSmlTbhu0h7WRBAzs1S3lq3MAT3IhNNnKmqXAwdvoZMlNUzrvuhICYA1qv6Tis2vIUn2SNcBfJtpffcduScmD8rLB7eGhNN82hGQMZyQZNQEp+hHK4piNN+dckDiRuWgvRMklu0mIGw16NjPhFSObLMUnDvdDOw9DHRIIzjNR6ELcFL5t6xXfiOZuJwTXt7VUrI/T4q6142ianLwMsgSJlry2XNL5Yuuw0VBqBxuDjL9MqKJHW31cOJLuAerRDcYds9Rae2VVo6MqrkQZ3WNWGvVq787IYk/4QLsLE4xF1mnaroN/wrEL/vdfw==',            'checksum' => '3fcad2f6d44d7cafc7e9425f1965a92835d9a33ce53db057c2fdae85a69cd1c3',        ],        'l' => [            'count' => 409,            'raw_length' => 2863,            'words' => 'NVZLc7M4EPxLGPKlrOMeFrOHHHyIbLjx2AoYQVIOmMW/fqe75RMFSKOZfsyoOblHm342hX92xdic3LO6bM0prNX1wx5zM302p3wtUzwG/sv3qrB/bsSSwt/qzPblc3V5s8dSXc72uFfXf+yR8M1l7YwlSc19tn1sirDXF5wQOhzk+uZqH/3Ij77vZrzdWpxuKTGXscnwb+tOfzPB0xHHljz2u8R59pHn9c2MzHT6f31zsQ15304jQlczgm01/oWF2/3GdMMTSJzcpvOSEg8fkZi0ZGgnC+ZWvrlHEws7Yd9DSCRl+mX75vp6xkP7FsKDUrDvIEAMOgudH5gEgn3wH4L5vi1Qw1phiUu1b1N9th2ZvdVMMOPDzcpzQJmFn0XOrjJ70ZhyiVew/Kc7faHM7gLef5uCkGsDYbU3xVy0r28zVHQrVSaiFP63vCCz0LIUQ2Ik8tiQj0i3CM8a9YWthcD8dwc63A0rERNIhIjEDwsLq6SYdKDYlqTMs0SeppcJah14ApagsHubIuahg8B8YEzTGZPXQcHyxFusfaipiXfKxk6YUO1K4tyDUYAZdCb+nHjwQdymNIL7JnF2whVlanswzOCAd1IVEko4ZFq5UsII3cIW0q6pblTMTzKWKeviLK8Al0zw3GQu23CUDUfakOqJRoiMrd0VpWQi9U1gPUriEh2QVqR4o//CLrEvzQV47iUFtkpZqVQnyPOVKVm1sm/F5iF555K3pauUBPLChw+sAf4baQuIyGIitJ9IeHg2kn48oSKpe8mGtJSkY4Et4OnpSGVR5b16SCaqbgLZRAuZHiqwYlJkZgsLMzZhdJ/WL8zwb+8uCR92kLXDStLoJgEiaTQ877cTElBdEUzCZ0KXItjQZDIXkZcGjSM2lhtLySVaHz/OcoeldGQLYo981ODB9bQobDFS8+TBjPClBqFeoATZe1xaQop+U8yJSs53bg/RD2Iz3JXZCx4i79Qgcmq+6EIt95fAGvPhg/vYMXuxOVSvJSD1yZUhQRMHLtOZkF/VyCRM8h4Ce13+JuQPInxRxxx4QuAkMawbAnLj7IA+oYI4iP6IIynS95EjeWWsoiZYbUqUvA0GmrKG3PKM3duCUTb7a0iRFQXLudJolLVXOi5P6ZVcTkUUvklScrgxNrHzqS9JyZiGgG7SvN3jYChnwcPtcXZoLLlBSv4l8m4oqYInkw+L/s3sE2F8zT9O0YWdFmyClaUjyKsmwlTRR/ea7tc4C+puIc6HVX036a5/cZxBbpHNQBVYYVr50Fx5F7f36D+58dlyTNxFXA99YlpcS0qYS4boI2m3jzTyehDnJtwPMYzsIXZVia5i15BsMIhIThwhFDRuCUd+JJAaL65Xx9QgyjdOexMDVropzhxq3q4xxHNTngeutFsQJlCuFmT0c+WmUZDp6pCAFSRPpz7Ur3dZOw5MtVgfvTk3aQLka4p9YmvGxMN5B901XgfV8YIVGzyaFdx45uQiWIrpNh0UJSzb+1h0vEg81GYSEuCf/7JD89rE8fkhXD7Z0llDvPf86I4y85pmKUVrY4CFeCf6wyZnaqXqOJ2gl9e1kEaP7m+o5KB5pOtPvLjYrQS3PEf3g/As6lqNBQayUYDmaORkKoxGX+Pw1g1p1L5I/0zL4Obxqbsi3Dgr3b4hyGpyLnawH87p/C4RHaza/wE=',            'checksum' => 'b098f2d1be5e7eb3bcc4604962aa9268bdd6bd33d93c657f0dd96e54119bf029',        ],        'm' => [            'count' => 502,            'raw_length' => 3514,            'words' => 'PVfJcqNKEPwlBLJDfMC05ImYgw5ulhvLhDWihTxC4IGvf5WZ7XdSAN21ZGVlldrC7brb0BZu69IfbeGTuvzVFnnSH9/bImz9yb75rcFP/qcuznZy7XHEbXX5Zi/X7oZ7r79vdiFPeT1MTQYrQ10k9pT0JzwtVfphJyc8lX6DsdLvdeHZFLD5UsFKGGnTPVr8wKY5cnN/xMtdNSKWhCG5a4s486mmzbUqvuxp1x/hKOClee9g0937AtefFU2P8Ff6qS7NSnitiz0DHHFh67IB31pc90vPVKYKQfhXwTPW2cDICMhLm70xafNQ+msDYy7t+TNXuOAZfBmWFkHku/aEe38bXn/q5drCe34hWH5lYijHm9A92Ld7bfmVfqxZqrVFZC5tSuauWK7N0U66z5Y1GlWqARAY5MzBJahD6Z8tcs+XDm7dTYAMjR2xbx2CcGJBPgNP88CihqlDHXIlZo6I2cRYgsJ1//qCNSIuZpO1tQtn3KvTg2hzYDloZSae7pOlyp8y9qSxMHTZGUiotqOSXkna/Ev1ezD3fKfCXRsam+sC15ltkT9qoUQP/qkyyp8zLtFmnb6TE0A3v/f4CatO3nviMgu6yJBHfxyYO6+TGmWIuPBI4S8qarzwBDVKb3WfgIRSmbsUSWfkfL6w/D8/W/DFzwipCHPDJhn4BLr9Es9IlPr4rpMId2xOalGG9KhiHVJQURR2U8+mtF65o0UJq7tWZUcPETr6S+jWxyMPvRS6YVSau57MutVsyoXZguwHAFllZ7KVSGQ1EZSUWCwIwn02KU4mUUp6cneuAI8bWp60hsXLVWVcCJa76sKuvZ0ZLupgnBhZfnIe0gXkM1EjIVE8j7CZgaCoESaRdmUZg/rIykjkN2G9stJOFcsNOlUFT35rSaKRXewTkX1tSKK04cl9FNXfLPFOOhh1yRpWelZUAERCJt11A1HKp54KrWxz9a0P0olJJ0UU91SaFzFyio1XR2VnYhsTyyWH+UKNdPtvglHnE9ikOJK74tKkl1tDQLYoFySt5UctvwqQhPCYnrH7rQPU2ujin59S9q+qRLjRmPXYh1hA0Yn6SU22pE+SmeMXdUkdTtO5/FnUJINk1EaIdJfsCddKOXTpQSVGLPeWYD3YD/kkouzErJkzxwQCYFlXSQf1ZEImfeHTVIsFVfFBWSN3154cXCVBFtKBcXJypUpsrRj13LADEiq7FYBPO9LG3LLj1o6cjzwzR2eGi+YKJmT49vdbC+j9VWTfItnFs00siGlaSIj60mOShKWTwEtGtQLkqrtd4NMfUhg05aAlgn6K2lNpUkoVk+8JFAcmcgiz3G6aJIuIMqmdHmqnL9XvQe9ujQtBp4lQUwe1azhFZpMZehYeUcTVAau4O/YcE3/ab1U8IAidnBmSiQB1fpOQafTk/7fhKZ7UrIKVcAH5wAIpGDMKCgkgD9x0wJ6fL1qbZnC+FDUMlyZqedyJmMoX5ztE9Y0lJp6TNpYp6hLEEWrKpK8NlcGUFlZeNSLFT/Q71zTNHJN7Il8JQclaEtVb/ZdwMFic2ZsmJQidtZHsBEuTy0m6MNzeiDzdrlqwZlYM6NIK8bS257BR0mHTirM27M24Ul1YMfDsrLELeLQkur/apTa2k78ov7Upz2KBpjakxKqSvYs91FatRktcRxR1nAGEwMSqllQylhBHVqYCDOw420qQmFM5nIZGWNW3tnmctdqKNkwsaTnqNgJis/EUh81ZQypCro2MHcAV1dqXKOU7HdnH+adUFg4pF++xRqVtgCN3DWWUaFKucQJpnOmCrU0QHZd0GbgbCb0wdzCSGwQRzCMngjBbNZ3mSGFtHqKbj1N01x7PojB1PpqmwGOcca8jkP4S4/wemKW2NVpZsNtAADmI7O/HniCTu1r9vJDwn5odsYsTcfdVVZlJovDQy7jMxta+xXHdlIp6FM/iuAbyL0E6KJ3H/4dB2+EP6TwDjKs791YX21DbGn4+GCdR2vextmSdBp+LW4JWTYxBrhV9XKK+1VRAspp37Vnxz9Zeunvheg7M2Mz8l+WQw38=',            'checksum' => 'cc58eb2b069823e97d990859e4de57177a32e5d2fb3a47150de943a81fdc83a6',        ],        'n' => [            'count' => 212,            'raw_length' => 1484,            'words' => 'NVRBkqMwDPwSY7Jb4weEZA57mEMM9g3D1iTBeKiEhCGvX3WLPbkwltTqbimOdvb1Zxytaev3OKYimp18vUIzxOyKrhziWK2h+SOXt794UpW+/og53fVl0deFXD68Ocnx8vWCuP4ocXZua8Rd4kH+pWtb4muOONyuP8pRDW3zIV8r4kb3wmV2s894cu5wpGvAEwGBADsppGt7AJbVG6CeOybTsu4t1sBiQtMBEi+rqR8BYhfQbcotA4xn9SHgSRp6tOm0UEoMsA/2nr5bALQDcaaCkNwUzBfKeh43pM5uaFE9zX4EBfyX0zke9nL524Msq/WEM7QiWdBm9cYs/Zk6uKQgBuUze8mZnTS9R06V4y0izpJ54SzUOwWPnGUg3Es8qoxgqdK4KgcyOMUjSe5BZBpVsV++OVEcVij1svQ0w8VnsDQGHEIdKlRLd1BaGfBsm09Wp2IzD/ESKHeLXhYaNyuWpSNc1cjeCSld6ch0IxaR8X+hPQSniaprRzUfyJlF/sMXrBGZTA3WP2O9V1/vlU+gXrSsZEG9LbXp2dgQYGH7HctOuv3pIaMttMI5jB4BvoE/B5V/jQamXdW0Gi4eFD6FLJa1G2fbPEwdn/ym56vB025PypjUZzAtwIsqiPvhqLmVcVb9KZ4vGdCj6bSj3TCw+PdqGae0ihxsc40UZyWk6kIrWnVISpxbWQJbYwwQLJ/sncLp3KaXVs+xFPC9hJ+09285tv4GnZWHboYtTkYNyRbqLgxyOnIwmIeiG2F2Qz7Tox1xuTnrrtVLzDspp8FIlkvsyGVCmp+dge53yi9tEufU5c2YXB68TItSXqpRzmRQXo4bFu2I9r5EA+ZvgbzcNgvT3tWkG7PQ2dRhBtfcbhxD+6RiwgTll7k90fPMYnS4VlaXJcdN9Oghjrw8YofoIFRbeNEybuVCkjUDuK7U/XmjPyXg8P4P',            'checksum' => '3bbf9d49e08e21a2f18ee73b2102ca749a8baf2aed5d5779a47a863dbfed59a9',        ],        'o' => [            'count' => 189,            'raw_length' => 1323,            'words' => 'PVTbbqMwEP0lsJto81ikkBZpkYpUEvsN46okmBSFXAhfv3OOq32ybDyecxucLk7N/sWp9NgOn04XnRtap21w579Ol6M9vDtddY3+dGpzbXffTtePZic7P9n9h1Pz1Oylrn5ykXKpk0PUqWL0b/JKnVj1Rw5Hp2VX3JoDrgS01fXNqM+4k29d+JJXVJm6Xe/U9Wlw06btIOWrBFfU3KOR8sEe8NhoBrlpB2DRtnPST1X3FiB8BFH+cOnuTvipVXBvvdQ9SHq+W80dqZQXss3YSI9rNqpPHiDSKEg32h1oTk6/Sj/BSdI+LkYeUxsphy4BbNX8MNDFj5BVhVuDw83aUoLeAkS1wiuqlEboHtphK9Ld+XSVGICfH2RbngyvRJr5BeW6OzotjmULGeUL1NVBuIsgpRxu5UpCYuIDJV/b/UOwRP/sZPZSXlx5xd4JvroDi0pHA7j5kzfzxaBu80Oti2M8vMRdF5VY02LbtWdRokwMvtXsjn5Y/OiRs4yC6HoBFnmsEbhqtRB18SSHLGEHCR9CVJwNwFd0E1qrb8S0PcO4BHUSN74C36XARwlsNCcb/T5Bv99E+t0WC5MFrQVuHlUCMlAZv3ClGCmW/zFSrlaTObwiUuRnB0PwgTTHGDAxFTTzqLW//cJ15JA0O+lX9cigSEdI2YMpDydEQ3dTgw55QtJlQv/qhFGcKZ3AZXpWo1MvUWRZVie2TY9xYKPk3ZUjgyvg8GRdKW5KwKqA7qqKughOaH3tWlFCMsiwWyohh18HasbJsSIWNAvQTBf9/2R9YDoccAILJ5wd8iVO6sR5qKI8MgEcWCqv63PzBvsvGDWaCpyBhuOPAm9Di/9EEYglYyZU6CGPdICpCj5IJvzCqUr571E2ibuuVXDzZCIVCw7zxF3xxADBVPheRs3gdPyxUNZg1fYf',            'checksum' => '74b9cb6a77c05aa423398846830bc85bed6a56a4b04ec432129d93e748440a91',        ],        'p' => [            'count' => 616,            'raw_length' => 4312,            'words' => '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',            'checksum' => 'a34bde7449c959b39d0eaaf0c76e72ec16048fc6428836e86c2d655996a1661d',        ],        'q' => [            'count' => 63,            'raw_length' => 441,            'words' => 'PVG7DsIwDPwllIIEH1Bahg4M4KRbYxBGJCgSAtS/Jz4D06nO+R4u+2PhfmB/fJ26g0FbQSa/Y33LOizxvlcYc6iQRlJ4TV6HwvmhELsF9pqbUmL3xgKkZaI3mO6ib3wHhd2aaXub/ABN84s9jL7r3Kv79WeEEOlEiDR+hw5iZ6jM6kCbOVILFYSvcZf6Zf0KN1DhvETO3KJKpdD2GaompVXwltrBPYBSgntAxRrZJcq/uzJFKZSu0S5op0vmJ9GO/CtmmtaonrymTrOdR8bGHLCQAsKL9RP7D8LN8AE=',            'checksum' => '58e56f99b53d050cc64da9bde220688f8251ad5f040e3f4972d04a762eabd7ec',        ],        'r' => [            'count' => 434,            'raw_length' => 3038,            'words' => 'PVZNd6M4EPxLGNbzouMcIk8OPswhwnADPC8YCcaJjb3xr9+uKnlPeqCv7qrqag2zn/ryn2EOS1vfhyVc29q+fNke9vbzdDz8tuE8VDakqePclhv81FW2xK9N+T7M7oG5JRRcksbj7tW+zv082Pairz5sydj+sg2u0NHcYEf3C07ZtjUuunYHWzmmBkv81B7eGAvm0qlhLPe2tjOdfoaZG8Kp49d3wyCu/SFiGHYvSKyvXznsLE5/RmRzKhvLdvaxq6PNpR6R+R9C4pEvYoC4CNnyzNmfuC9cuhqpnHrg4tcWF/miw9HuRlzc5sgz/x5xgyt0dBKQl3wf8wtTU+Hox0AghXyaNXduS2Q0t/M7ohZ0sf+FqC3HCKxx2BJOzC+M/a4AVdi+hLVFLEbcL2aEcA2XZkacY1N+IGoNkUD6RbBuGAuufSEu1RvTRJxB/LkLB78hyD4TkFqwmS48xTJinJeGHMUjBreIVMP6hcEv2Fdxg7vn/HTDScM4UCHfioxRg1sgmB7SoIkois0Xm2NkS3jqsy1flRgysjlEFltifSNHllFdkNsZ4T64JEwUiq+I9ZhaCro44sviZH6FhtP/ehGpTGXTz2C6+MPIVu7z26amWpv6DcG3Uuuwa4QSllwRJ3OwJW7bsCinjtqV3MKdKwEWw2UOaW15Q5TOpB6I/UNVDCArLoE0qHlWY8jVv0qtnyq8h8R36yD2dOugF/+lnyXgWUxnMwDR7V76BCDYcFfwUrk5CumfGhJujFHsgm4Rxd+Ah4dFih2Ej+kIVtxZp8hYzDXI31UZ3XjYuOmBJzSIlRUzchuKz2TDqMeG0E00qxS5crxxX5gGVIevuDJFqtzd5CESGG5ncUl1PxoVl9RzbRhZpMlZDjSdsd3hvsiysLql29xJY/giAW7TlsLl8JNykxfIcKX5MfW89sTt41ZfsyC4UJiwizcJbE/eKb7lWJMOqg7S2DMVfj26HX+yws3WCNbjWXHcLj9D0q+UYg3Coy66dtTnStcIObGzDltZVV7VkWSq5mCL5EazKp4ORl+a6VlJVpIWeUhBW4PPS0t04X+ZUYjCejxSbpP2UZGQdy0z5sqJPCRpCdoljXSiNMkgliaTSk9+WgI2YI5BGCB7OiZdn0Aa8nK+St0we9baHgZ2PNwXShGgokyziuQysBqvHQsou5vpDENszbqMYppOODfZnnZqDATy+0gkCkLgVGPGilxRXe2qWNgRkBEZK+CK8Hnk4KRyM1yKSM0t2MSLVPCbbipvVRUXNH8TOy2ooIStuSEVSPhdlsefBBKwQhMZM7UXt0GlLiAVGx5SXSVuq3yYeo6Z3E8ITJYu6NxJz4olxwL1oP5QOTDxKKz3guCNHY9NWGIPshnoM6qvMDF5nRTpRRykGFWwiCy3kE/Z9trl1wVd6qqmqEZklk5L+FbuZwll7Xi0nlRuJNN4E134k1hnq7SKA4I6zMeGOVxyR5ezr3Iie5wMlBu6mlPTd6vMUQ8sv+RnhdSzaKUM1+Cpc63c9Xb7UCuIrHA6StU8c49ysFcZCxrRqh6nsg+VAIm69ktSTDL4Uq+nQi+du0r7rmZqEKBPZ9O5DXyVnFhxhtKidlZlct6I7pxV984HAXSGxgCqbrn/CZ6/bK0h/mFpJ/pE0tFJVpnyy1F0OOP2Qu9hD1BxeUVmZU9rHoe50Gttr3rAfVvJ21orol7Z3Mw86LSrbjg/XYpfqzZ8dvXAJbwhSaZFJ3tiGeKZRqF0pdo1iVNIKWYlE0931XtXrwsDktX4pRpDtv8B',            'checksum' => 'ed730847ba9e6636331717b53cdd8f9af450514101c327b3b0614f46cb655504',        ],        's' => [            'count' => 1091,            'raw_length' => 7637,            'words' => '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',            'checksum' => 'bd8a6e07e749ba4ddd402c97e18d25cd6c17c985eab9dcd65dde7a8a41922869',        ],        't' => [            'count' => 557,            'raw_length' => 3899,            'words' => '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',            'checksum' => '890f788a94f0e0e6cce00ed876ed66e6e7982721d0a1c8a0fabae55c62b7be19',        ],        'u' => [            'count' => 119,            'raw_length' => 833,            'words' => 'NVPbiuMwDP2leLJd5nUCQzqFBloolv1mx8s490BSkvbrV0dun0RsnYuOnKAPczh2QR8mn1+4tIHOgapoP278NViNw8zpjcvD6TrQta8HBqjZ6CXQaUQLnXo/fPNhY7mTiszST9Ah+hLUT0tgaXz+y2W2Y8cssy9v3Pm6yx0Xqu5Wf6PFf/yBF593SR1eNqdxuBjC4d1SzWV1xJwqes2c1SSycTHojKoeGaceRkM21kMWyCpfQuHpMfSe1YPoheM5+URnZqQsafbNYuhTI5wHBsFLLneKJwJuEBNst8Td5BBIEf/xKJyL02d0QoiK7RWWQZ7XTuxyZijMiSTUmuw+HH2ldVzEGWTVlpL4m+6eksTee8lsctI5G1ncInle0x4OrRHABBxVsx8wUW/LT8llRJ4sC7hYIpsMIhB0Pt07CY5gb4Vzvxs6C/wouNTSGMCLLuXSOolgFM6CX8hFIhBLq3lv85ct9fXIr+4UAxJcY40ZWEGmbUFGFW/zKwllcBb0Dw7F574lshzvE9sEyx69qL+EmmRwtfLOFIYWZ5Cd07Qj/gD+8sMNXt4mxC5nXSc4Spcy471f/gM=',            'checksum' => '500a738522fa67eeaf5a499767863fca95822c0dc93a9f440443dfef6d801ebe',        ],        'v' => [            'count' => 170,            'raw_length' => 1190,            'words' => 'NVTBspswDPwlApk39QfEoZ3JIYeYwM3Gb5oS4ckrOBS+vtKKd9LYeKXVrkQczdTdL3G0S9dc40hbGE8cpnB+xtEVbfmbwxFP3BrHm4S+vOnlzziaAoGeXfODL18hCS4BYJJvbnrJJ1rbZuFCfz2H9Osd7z1ffniGJwZUwAFAWzwzCfcINV9S0eIyK3ztGiRDPRpaVP+DejQppUoprUri0AldeSLJnp+NpM6xvoCZhH/vrhL4Ayc7hUrgbz0dIIE9hBrytKoEcrrsmyPqiXR27gVApZeTGVTWKTYqllyKdKIS9SKImZREjtpfqEAX9czTlydREN/4pQhij3ubQU5maiFdEUUlO8EVyp+iklQQPaeu1kLnG7iIfzZ/c4HTK+g6ldyynsB5iMysjyI5cIZPnNq8WhT6UJUKZOEKEtzWg9nQNuLD7O9X9W9REsJzxYBZbYzmvYIXV+ymc8aaFeKtKviFCnaGPOxDUrowJysgtZKFMnAuwxxboAcupDkxKOYVRAkzf88uZn7QwKaeYqJXGGUwV+CoVMMJrEXPK0YDYq3+LqOhC0QLcjodU55W8Y8ogvW+KxSkTVIDSMlTocrn7gw7Yn1T3FOF5F1xu7prX12xAcAlD6cztsMufl9fuJL8Xkib7nSu5QkvXigLyYLGZHYXEFQ4HGMFMclJk80w1S442SFqaqjr1lYm2W7w1ukC0ab7kFSJcl+ETlLzS5lWt7f5CONV/yEXzNld4fsPSfVkuv8B',            'checksum' => '0bb0b28b23728fb397fb3197b28a89056479fca43ec3d87a11a2007610b1463b',        ],        'w' => [            'count' => 304,            'raw_length' => 2128,            'words' => 'NVVNU6NAFPxLCGrJ0YOTuFV7yMFJ4BYg5SgDUhJwya/f193j6dUkM++ju1/T5b6v87cuj323e+9yt3X7viv+rDyFqdnNOtmVcjkXfy1cqxFhrfcIW1sc7MqUQjO0uNkML5ZsbnDFbS1vrpcRqaeOp+/uZCGE7vRs1T+Veq6R2soi+KkdDjqxJaW+1sd7e7DVeO6Wxtq1oJPexdjs7J2znHgXq+PMPi1L7j/q0yvKMlkcKyQLa5NX9uB2RrJ4Y7vxhzddrvBdscJWHw+sxzCxXUtNBLd0k/9Fa4mdoYk8DjzFuc5f+F+hCkdg9sB3pXhwX03+ZGFUnyt7sQaJUt8U1rUPhDXOBNJPdf7O1GypJxIxq/CjPR/x49jkGDO2wxtn5ygjH5Qbszi1WwZCZw2ilzC1+cwwYrBFxC2aITtDEz6K99DuD4IOWWayYv+JftazQpIUHhhYLRRSFr9gASVjGjd9wloiKleRmpEc9y9BTvEZOZxBD3xo8Z/rz3x+Lzp6BZUNJo0M9Si3EKklb/y9U5hU+ZWa8EI39rxiTfC0VDmHxgbYA1b3mtZ4RyG/EHnbDvZCsRf+/nx8kZagSInPyAHT5UbIg9YCGwfkbwyYgYUq8BCVOkrs5dAdf/CgHipxxB1ryXuQbKKqm66RbBB/1wsnkjBdan5Q8xGrZosAJGxziJk1gQdoPgmFN0mAz/g85urzgSfAys4u4xdO1elAfYojTRsvJ6ErE2gxgw22/yJ03AfKzZog/S7JdG52NBbZhVkQ8SQ8fpFPTKlBUTxRmBaGH7wjY7ZOxTP9hcoSBPFK7YY7rpqxAqr8Jgjmevck3qHrWbMLT/fwK2FKcU1bRSVHGSDUmrxALYEj+ARg3Zgz3rS339Su/+CPkBROs/QZuEB+lsCC7Hel90DXs2bQxhGzTB5invxGKSKY3YP3UsaCleklRUr/srsX4Zgok7wjcTFHoWw+KzJ9Rwn7RU0oZxwVHjlYmH4taJA5KllCgh5SJiDlNubXtNHlwnZv5x312UETToWitGsOxu0w+32jkdGQBlXoKT6XVXRMGQS+Mq9o8AwxuEyrFps9mLZRDtIgICArRZrd9Ml2k9s80ppj1lEoE0M0Op5kEKIxiYEVJEwnV4ya1vYBDeLzIhdmuOpruGow+5JgEXJ5z10yCO20qeBFm6PvA3TtA7mNtzQfkXdqHsp6VU59Ign5TV6wUZG2lCN9ouUHU+YBOjDt0ki0NEcM1msi7qbm69Onx/z6Pw==',            'checksum' => '98ac0ae4ea2fd8f5c6afe652466d9814a02bffc475603b7c7ee561e24bc7270e',        ],        'x' => [            'count' => 12,            'raw_length' => 84,            'words' => 'S3UPq0yJ8E31yCmOCjdIdQ8rTTIyAfFSw8tT3S0zknJdgYKZUeG+ILnEcBCvMjEcpKEqxd0VpDIyHKwhyagcIpgNAA==',            'checksum' => '971bf398f0f97f4e9bd1d1f44ab9f4120c9742ff5638195388a3a130c9410079',        ],        'y' => [            'count' => 85,            'raw_length' => 595,            'words' => 'PVHLbsIwEPwlElMJPqAJHKjEoX7dbBM1kIRWSVAUvr4za9rTar2z81g3Rj8u9Xtj9vdgT42pilif0a2e3X4KqsOjincUPcUDIatn0bdw4GyTBqxXVyeQmyu/0C1JZmNUCSyjN+CsMCNyieVEFlfuMFOZ8+EVSt9T3f5RK9nTUwLE6swJn4adkFk9ObOVBfrUm5wBdgkZ5XFfXGpY6kdJpNs0bPmYyk8g58zZebOgXN2ww94cLdW7YDY0GAyQenWMySgL7QYlJgIzgFPxZkUckqiL3TmaHUOHwzmHpuxPHCS7t8ecAc50kY+80jXWmZYG79muPK7OTDk7WKrvSNlqDLynfv5/lax7MT97QV6z6y7WyNAvgoQlMb9e5Bvb8NKTu0gwCDlBvrFY3YozzMxJTmBf5diYD3wA8z2TqLdY+AU=',            'checksum' => '89782208ab86f512c0e8efe6e9ee9402160514f935293ed8d72599a9a1d831a5',        ],        'z' => [            'count' => 53,            'raw_length' => 371,            'words' => 'NY9BcsIwDEWvlIbCkAPUgUUWLGxj7RzHQzKxGAZIUvf0leR2pdHXk/5XRJXh3kU0C7THiN/rcJojNouzW0T1dNcLdSPYL+oeATXP/K6Ld3PwtqJu9ZaQROJM4hZaIs0EtmPRkShFOrBnWsheTr+93NyC+BVbM/anQvKCmYYrlebtkK8U0vyUgDtvtbgz2SwgZPpPbW8iSrJqaP/2CFEz8Hp6Bn66yaHWErA+FlueTcBPp+zkP7qpJTU7qL23nyKK39oXEVrNcQPy77nnSOoATJpKyPRyNUUaPyLefgE=',            'checksum' => 'eef42c4656e353ffbaa62cf320e4fec299d5ce55f455c57ab60fb1f8b8b791d6',        ],    ],    'total_words' => 9074,    'checksum' => '5cc1bcbebbd28f9278e1e887e031e0db982cfd2e0092b5f5ce5cacdcb1875ab5',];$wordlistSignatureBase64 = 'iQIzBAABCgAdFiEEeRWwgx3yC6/0IY80fYjFs3TmXZAFAmpb5gcACgkQfYjFs3TmXZCUVg//by7oszsa+28N913FadvzUtCSSq83MWM0yi6EnH64wNh4z5z4G+5M3LfKCcrCi7At9P6bXtbIKTdQ1hWA+h3+4Bn8RbCcTtlH4YEvIUWo2I6fnR/UI1sbimI54UvjSDwk9LyXKIrkopLoeU024ifQqjfDLHIzKLVtt7x3QWT7+OWAb4XiIztby10i4F5v8EQ2xyDg89I3lrTzJSK4ktZI5gmwfx89KY1ualfA13S4rP8GuTaiKk8dz6oTQUzCSjSCK2D1T2w7N5MD3hvHnSuomSDFMsvXyl3qrBF2RarKzaUC318P3ujsC5AkRL31YkWPyryWAzdByIT0KJ2Js6JCYAQo/827qcorK5MtppJw8oCvBgnMUdycJBSdAndwZ+fJtR421Nb2LTSRiPEyU5DR47hKVFSMHYetfd6XiQpbCQvYJgDcPW7J9UXxRU+9/ifgV3+QTQh4Q5WWaPtEKYD9KAoLmg+CPK4VwAYA7i/zzcAsDIQJuYi/VkzB/v7dpGqgDdgJyIYC6oCOBxdJX357WOE+yf7otlMpkQaHlKWcBa5jwjoJV2jc0vHlXrS8hRbnl/l0Fm05B/ViBSSonWKVGsMRc+aOfYRnKFL3QSWeFJa9HZbgwjQ/tGI368vFnSYGWqQe8oG3Q0jvE8LXdznR3nA7DtnXFyFjazsccPMekzo=';const AIP56_CANONICAL_JSON_SHA256 = 'ea0be8d452c422f154358b386c0c5bfc1f4e8e0670f9cd4ddf1a662cb3c96ec8';/* END GENERATED AIP56 PAYLOAD */function aip56_canonical_json(array $wordlist): string{    $codec = $wordlist['codec'] ?? null;    if ($codec !== 'deflate-base64') {        throw new RuntimeException('Invalid AIP-56 wordlist codec');    }    $canonical = $wordlist;    unset($canonical['codec']);    foreach (range('a', 'z') as $letter) {        $entry = $wordlist['chunks'][$letter] ?? null;        if (!is_array($entry)) {            throw new RuntimeException("Missing AIP-56 chunk for {$letter}");        }        $canonical['chunks'][$letter] = [            'count' => $entry['count'] ?? null,            'codec' => $codec,            'raw_length' => $entry['raw_length'] ?? null,            'words' => $entry['words'] ?? null,            'checksum' => $entry['checksum'] ?? null,        ];    }    return json_encode(        $canonical,        JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES | JSON_THROW_ON_ERROR    ) . "\n";}function aip56_assert_embedded_canonical_json(array $wordlist): string{    $canonicalJson = aip56_canonical_json($wordlist);    $actualHash = hash('sha256', $canonicalJson);    if (!hash_equals(AIP56_CANONICAL_JSON_SHA256, $actualHash)) {        throw new RuntimeException('AIP-56 canonical JSON reconstruction mismatch');    }    return $canonicalJson;}function aip56_verify_pgp_signature_with_gpg(string $payload, string $signatureBase64): array{    $lookupOutput = [];    $lookupExitCode = 0;    exec('command -v gpg 2>&1', $lookupOutput, $lookupExitCode);    $gpg = $lookupExitCode === 0 ? trim(implode("\n", $lookupOutput)) : '';    if ($gpg === '') {        return [            'status' => 'unavailable',            'output' => 'gpg was not found',        ];    }    $signature = base64_decode($signatureBase64, true);    if ($signature === false) {        return [            'status' => 'unverified',            'output' => 'Invalid embedded AIP-56 PGP signature base64',        ];    }    $tmpBase = tempnam(sys_get_temp_dir(), 'aip56_');    if ($tmpBase === false) {        throw new RuntimeException('Unable to create temporary file for PGP verification');    }    $payloadFile = $tmpBase . '.json';    $sigFile = $tmpBase . '.sig';    try {        if (file_put_contents($payloadFile, $payload, LOCK_EX) === false            || file_put_contents($sigFile, $signature, LOCK_EX) === false) {            throw new RuntimeException('Unable to write temporary files for PGP verification');        }        $cmd = escapeshellcmd($gpg)            . ' --batch --status-fd 1 --verify '            . escapeshellarg($sigFile) . ' '            . escapeshellarg($payloadFile)            . ' 2>&1';        $output = [];        $exitCode = 0;        exec($cmd, $output, $exitCode);        $capturedOutput = implode("\n", $output);        $expectedFingerprint = '7915B0831DF20BAFF4218F347D88C5B374E65D90';        $validFingerprint = preg_match(            '/^\[GNUPG:\] VALIDSIG ' . $expectedFingerprint . '\b/m',            $capturedOutput        ) === 1;        return [            'status' => $exitCode === 0 && $validFingerprint ? 'verified' : 'unverified',            'output' => $capturedOutput,        ];    } finally {        @unlink($payloadFile);        @unlink($sigFile);        @unlink($tmpBase);    }}function aip56_decompress_chunk(string $encoded, int $expectedRawLength): string{    $compressed = base64_decode($encoded, true);    if ($compressed === false) {        throw new RuntimeException('Invalid compressed AIP-56 chunk base64');    }    $plain = gzinflate($compressed);    if ($plain === false) {        throw new RuntimeException('Failed to decompress AIP-56 chunk');    }    if (strlen($plain) !== $expectedRawLength) {        throw new RuntimeException('AIP-56 decompressed chunk length mismatch');    }    return $plain;}function aip56_validate_wordlist(array $wordlist): void{    if (($wordlist['version'] ?? '') !== 'AIP-56-WORDLIST-CHUNKS-1') {        throw new RuntimeException('Invalid AIP-56 wordlist version');    }    if (($wordlist['word_length'] ?? null) !== 5) {        throw new RuntimeException('Invalid AIP-56 word length');    }    if (($wordlist['token_width'] ?? null) !== 7) {        throw new RuntimeException('Invalid AIP-56 token width');    }    if (($wordlist['encoding'] ?? '') !== 'base64-standard-trim-final-equals') {        throw new RuntimeException('Invalid AIP-56 token encoding');    }    if (($wordlist['codec'] ?? '') !== 'deflate-base64') {        throw new RuntimeException('Invalid AIP-56 wordlist codec');    }    $expectedSelection = [        'pick_per_letter' => 2,        'candidate_count' => 52,        'final_count' => 15,        'case_sensitive' => true,        'case_entropy_bits' => 75,    ];    if (($wordlist['selection'] ?? null) !== $expectedSelection) {        throw new RuntimeException('Invalid AIP-56 selection parameters');    }    $chunks = $wordlist['chunks'] ?? null;    if (!is_array($chunks) || count($chunks) !== 26) {        throw new RuntimeException('Invalid AIP-56 chunks structure');    }    $globalMaterial = '';    $totalWords = 0;    foreach (range('a', 'z') as $letter) {        $entry = $chunks[$letter] ?? null;        if (!is_array($entry)) {            throw new RuntimeException("Missing AIP-56 chunk for {$letter}");        }        $count = $entry['count'] ?? null;        $encodedWords = $entry['words'] ?? null;        $rawLength = $entry['raw_length'] ?? null;        if (!is_string($encodedWords) || !is_int($rawLength)) {            throw new RuntimeException("Invalid compressed AIP-56 chunk for {$letter}");        }        $words = aip56_decompress_chunk($encodedWords, $rawLength);        $checksum = $entry['checksum'] ?? null;        if (!is_int($count) || $count < 2) {            throw new RuntimeException("Invalid AIP-56 count for {$letter}");        }        if (!is_string($words) || $words === '') {            throw new RuntimeException("Invalid AIP-56 words chunk for {$letter}");        }        if (!is_string($checksum) || !preg_match('/^[a-f0-9]{64}$/', $checksum)) {            throw new RuntimeException("Invalid AIP-56 checksum value for {$letter}");        }        if (strlen($words) % 7 !== 0) {            throw new RuntimeException("Invalid AIP-56 chunk length for {$letter}");        }        if (!preg_match('/^[A-Za-z0-9+\/]+$/', $words)) {            throw new RuntimeException("Invalid AIP-56 chunk characters for {$letter}");        }        $actualCount = intdiv(strlen($words), 7);        if ($actualCount !== $count) {            throw new RuntimeException("AIP-56 count mismatch for {$letter}");        }        $actualChecksum = hash('sha256', $words);        if (!hash_equals($checksum, $actualChecksum)) {            throw new RuntimeException("AIP-56 checksum mismatch for {$letter}");        }        for ($offset = 0; $offset < strlen($words); $offset += 7) {            $token = substr($words, $offset, 7);            $word = base64_decode($token . '=', true);            if ($word === false || !preg_match('/^[a-z]{5}$/', $word)) {                throw new RuntimeException("Invalid decoded word in chunk {$letter}");            }        }        $globalMaterial .= $letter . ':' . $count . ':' . $checksum . "\n";        $totalWords += $actualCount;    }    if (($wordlist['total_words'] ?? null) !== $totalWords) {        throw new RuntimeException('AIP-56 total word count mismatch');    }    $actualGlobalChecksum = hash('sha256', $globalMaterial);    $expectedGlobalChecksum = $wordlist['checksum'] ?? '';    if (!is_string($expectedGlobalChecksum) || !hash_equals($expectedGlobalChecksum, $actualGlobalChecksum)) {        throw new RuntimeException('AIP-56 global checksum mismatch');    }}function aip56_decode_token(string $token): string{    $word = base64_decode($token . '=', true);    if ($word === false || !preg_match('/^[a-z]{5}$/', $word)) {        throw new RuntimeException('Invalid decoded AIP-56 token');    }    return $word;}function aip56_pick_unique_words_from_chunk(string $words, int $needed): array{    $available = intdiv(strlen($words), 7);    if ($available < $needed) {        throw new RuntimeException('Not enough words in chunk');    }    $indexes = [];    while (count($indexes) < $needed) {        $index = random_int(0, $available - 1);        $indexes[$index] = true;    }    $picked = [];    foreach (array_keys($indexes) as $index) {        $token = substr($words, $index * 7, 7);        $picked[] = aip56_decode_token($token);    }    return $picked;}function aip56_random_case_word(string $word): string{    if (!preg_match('/^[a-z]{5}$/', $word)) {        throw new RuntimeException('Invalid AIP-56 word for casing');    }    $out = '';    for ($i = 0; $i < 5; $i++) {        $out .= random_int(0, 1) === 1 ? strtoupper($word[$i]) : $word[$i];    }    return $out;}function aip56_secure_shuffle(array $items): array{    for ($i = count($items) - 1; $i > 0; $i--) {        $j = random_int(0, $i);        [$items[$i], $items[$j]] = [$items[$j], $items[$i]];    }    return $items;}function aip56_generate_phrase(array $wordlist): array{    $pickPerLetter = (int) ($wordlist['selection']['pick_per_letter'] ?? 2);    $finalCount = (int) ($wordlist['selection']['final_count'] ?? 15);    $pool = [];    foreach (range('a', 'z') as $letter) {        $entry = $wordlist['chunks'][$letter] ?? null;        if (!is_array($entry)) {            throw new RuntimeException("Missing AIP-56 chunk for {$letter}");        }        $encodedWords = $entry['words'] ?? null;        $rawLength = $entry['raw_length'] ?? null;        if (!is_string($encodedWords) || !is_int($rawLength)) {            throw new RuntimeException("Invalid compressed AIP-56 chunk for {$letter}");        }        $words = aip56_decompress_chunk($encodedWords, $rawLength);        foreach (aip56_pick_unique_words_from_chunk($words, $pickPerLetter) as $word) {            $pool[] = $word;        }    }    $pool = aip56_secure_shuffle($pool);    $selected = array_slice($pool, 0, $finalCount);    return array_map(static fn(string $word): string => aip56_random_case_word($word), $selected);}function aip56_check_pgp_mode(    string $canonicalJson,    ?string $wordlistSignatureBase64,    string $pgpMode): array{    if (!in_array($pgpMode, ['auto', 'required', 'skip'], true)) {        throw new InvalidArgumentException('Invalid AIP-56 PGP mode');    }    if ($pgpMode === 'skip') {        return ['status' => 'skipped', 'output' => ''];    }    if ($wordlistSignatureBase64 === null) {        $result = ['status' => 'unavailable', 'output' => 'No PGP signature was supplied'];    } else {        $result = aip56_verify_pgp_signature_with_gpg($canonicalJson, $wordlistSignatureBase64);    }    if ($pgpMode === 'required' && $result['status'] !== 'verified') {        $message = 'AIP-56 embedded wordlist PGP signature could not be verified';        if ($result['output'] !== '') {            $message .= ":\n" . $result['output'];        }        throw new RuntimeException($message);    }    return $result;}function generate_aip_56(    array $wordlist,    ?string $wordlistSignatureBase64 = null,    string $pgpMode = 'auto'): string{    aip56_validate_wordlist($wordlist);    $canonicalJson = aip56_canonical_json($wordlist);    aip56_check_pgp_mode($canonicalJson, $wordlistSignatureBase64, $pgpMode);    $phrase = aip56_generate_phrase($wordlist);    return implode(' ', $phrase);}function aip56_parse_cli_options(array $arguments): array{    $check = false;    $pgpMode = 'auto';    foreach ($arguments as $argument) {        if ($argument === '--check') {            $check = true;        } elseif ($argument === '--verify-pgp') {            if ($pgpMode === 'skip') {                throw new InvalidArgumentException('--verify-pgp and --no-pgp cannot be used together');            }            $pgpMode = 'required';        } elseif ($argument === '--no-pgp') {            if ($pgpMode === 'required') {                throw new InvalidArgumentException('--verify-pgp and --no-pgp cannot be used together');            }            $pgpMode = 'skip';        } else {            throw new InvalidArgumentException("Unknown option: {$argument}");        }    }    return ['check' => $check, 'pgp_mode' => $pgpMode];}if (PHP_SAPI === 'cli' && realpath($_SERVER['SCRIPT_FILENAME'] ?? '') === __FILE__) {    try {        $options = aip56_parse_cli_options(array_slice($argv, 1));        aip56_validate_wordlist($wordlist);        $canonicalJson = aip56_assert_embedded_canonical_json($wordlist);        $pgpResult = aip56_check_pgp_mode(            $canonicalJson,            $wordlistSignatureBase64,            $options['pgp_mode']        );        if ($options['check']) {            echo "AIP-56 internal validation: OK\n";            echo 'Chunks: ' . count($wordlist['chunks']) . "\n";            echo 'Words: ' . $wordlist['total_words'] . "\n";            echo 'Canonical JSON SHA-256: ' . hash('sha256', $canonicalJson) . "\n";            echo 'PGP: ' . $pgpResult['status'] . "\n";        } else {            $phrase = aip56_generate_phrase($wordlist);            echo implode(' ', $phrase) . PHP_EOL;        }    } catch (Throwable $exception) {        fwrite(STDERR, 'AIP-56 error: ' . $exception->getMessage() . PHP_EOL);        exit(1);    }}