Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions automatic/firefox/tools/LanguageChecksums.csv
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,109 @@ vi|32|93741b8b282b81e7ca2c7553e2fa67552590725507eb64035ab0b579cf9d944bafe115aa7e
xh|32|005cd9874dd36856912502f87c4737bd9dc9af48a23aac6f878ce28756bd419af6e242b88f33610a01f7f9f3e7c3ca2aa8d41cf87a5007ffce3fd51f2a79de85
zh-CN|32|3b726a344165561290b55b5fd7d9310298228b9b28e5966afd5b0a86b54a4f5157da49f8cf7891d43f014602c645210e78ce6cc501d71a20ee2972479ba1fc67
zh-TW|32|aabe73a66015855a2c6c6b378924c4e604de7a266abc3acf6a70bb7f9739b6b19eef583527ded2b916a1d0aaf11f3b43bb5febec073595d2547eb96dbb9f1ce6
ach|64-aarch64|1a87d35d2bb3c9c88344b12496f1e9f90389304ea72f89c5a69dc37e0b9c29d5c8141d48cd9f598518ce613b44cad2ecc1cddb0aceaef63225da4bedfd492b03
af|64-aarch64|17d371b1c5d0e873c4626f89c55b53554d7f6425880d8dec4d1bc2f97a28e0ff728b1e79cf50f592d68abdcc84bdec6825cd55594b1894183863626716f8bda5
an|64-aarch64|f3cccb58e754c8d913f734c6d063374737a3169b85b6f4d2b7f0fef9eff0794ad59965472a4c2b68f8262d246dc85f3a6af1184cf297a4054b1af5b9627f386a
ar|64-aarch64|d306035220d90cddf2f338cf410458428046fe4c72689b919fa3f0c5e889799d3c86562d8b653fbce4423cad826d538f50f10c087da33360a6d3ecc37c9a6187
ast|64-aarch64|0a0b4923c7931b674c2548b9ad7e88159dc73572c205643e19b8fbd68f6fe6a93708d06fe72d117b24edc59fc46ad5e7251985744377879b6b888ebb4f4248bf
az|64-aarch64|af70215efce022fc28e3bdfaff299e5f82df9c6b3bc32941d95504aa93106f27946f89c001c379a3b9f0dd8a473017c7f2b371d2bf0fda0555b2a41e2083721d
be|64-aarch64|5a83cfdc65db309ec8ef05099b07d5eab482838cc85b567144566e5dd717b9f4f065d1c738f095591201edec171083eea94e1e4348eeae62a6437f1d7b1efa9a
bg|64-aarch64|8d4a2b86eafa3c4701940f564fde8feee0ca2a8c2f95321630bc13acbd12bb588f6579f291e7c658677389bc070a1e20d378fa018263bcd2d664d5c1fc24e16c
bn|64-aarch64|088a66e9b2cd83b7ef6ac14f52a11603f11f2ec63b311de7ee791b7a3155183a19c74254cabcfd184612950d6c5899c4c1a8c3167a31d38ad56731d5836e8335
br|64-aarch64|eeac0c9ed0e4d3f434c0d353933713cfb1b215a8ea255f3ff3e518ef2c188c710091ef263085842a046e0f5e901e16d8a1cfb7f48589893c061846ab5f6fa63b
bs|64-aarch64|64adeea4a3941559aca18353839de3296119cdddbf4d0dd6ad0b80442c92318fb91f82a53d87a69d1f3329da4249fb5e6a5c506d035215bf3f4083c783ebd3c6
ca-valencia|64-aarch64|ae02d34b03d83cd120c4139ec73e9a7eeb661796812068493a3cc1810c0f8e77ee00bcc764c12906e2cefc5db3636ec8bf8a33b43baa18f936fe1fd8b39a5cf7
ca|64-aarch64|c7fd530e51b5bb37341074f0b4cba4283650eafb062368bca6accf04085fd523d106c50a32a484595fbc8386c40e505ab13b299579d5438ac36a0e85b4da7326
cak|64-aarch64|5604306ab6586f3489fe48b906448506a49dd4558e48ba1068c142747bcaddb607aae450dda132fd40a1de214a16e265e790e51cadcb240d21ad37dfc3e79045
cs|64-aarch64|ca7541b6b18015abf804b37abc23295c6d5dc4fd975cfb3622d54ef6bab5d9e228615f6843fca48881a15ef7ea58d0eed08a8c5f8e0e3892e0de553afcc07e47
cy|64-aarch64|257a34e5f79164c8fe4a70c2acf8fefaa4713ef6c1eac52733583513f079c035d4e6c94b464226209de2c86ffaf6506b0efad861f774aa001e33a97b055ebdd1
da|64-aarch64|c6bb3b61c0423f1df017cd08dc28c94aa36f9d149885533889821c50c56729bb11912a56d970469caf03cc8aba3d091c48ffa87cc544b27e173161e61b2b527a
de|64-aarch64|42a89167f427daa00788a0bc1f807bc78236303c6e5b8e544cd06e9e6efbb7eed83947e394f0bf63ab061521b948a7434fe82ec4ad2930fb7bbe716447f89384
dsb|64-aarch64|fa078f443925b2bb680a0b78d6d7be9eacac6d8d2b15b50e16387dae36667dabd7288c73967734b79095adc06fffb6276ea1b29d7da0c6262206f4fd9aeab9dc
el|64-aarch64|80f70aacba50815fd87f07672efc5273fd34422f5e96278c28e9e14a60e8b294005583eb41415f4d3e0191fa8666381fc0b68093a993d2eba7f4d86c920de2de
en-CA|64-aarch64|2a081577a963631ba32c6ca1bab9c65541512962225af34f7c2fd99a81b4ba9cc9a60da23995c46d99b01776420d61215f398943bedb9954a76ddd5139b9c3c4
en-GB|64-aarch64|6ef1060734ad7260b40e0152ddd81391535e351e3edcd06bacf5825cef2d47305a31184d1d9d1173ba716a4f4f9afb06f52ea9a2a35c58c9ece10fe0799f2443
en-US|64-aarch64|6e5a95a5c035b6a897c63e67f013a1b69ca69af64296ccefc67afc7daf0461df60af3a5c6356587638de2defd78884ccd716ce0144d9984018edb1cc253b9c82
eo|64-aarch64|2f22f0bc16187ebb822f8607d374d949b031238c8329ab5859f6f4ec0303ee1820c3c78383bac9751d505532aa251f1e96c0dc1363ccbfcfd16532057d4bdc11
es-AR|64-aarch64|c3ead6b5dd9c5aacadaccc14ff27f0ce0200ee90068cf279387a9f6d12bbd9d598ffabe8924fd94026a4cc3d72ffdb51f9f1b02fa9d40e74412d0d77b3c7a92d
es-CL|64-aarch64|09d5419fc01ea066a029a989852169f37d7d4a652d4d786ef73896ce1065209ce6f76393b005dc61a7827383e89209b0da569f0761c09151124a9f01c26d71e2
es-ES|64-aarch64|6f7c3d4e244d63d21de0164d9d83423d44d68e7843b470225e96e9e7f3c1b98cc324cfcfeecf32a80e7d360b2777eed65f3f875199cdb6968b60975bcdac730f
es-MX|64-aarch64|12e43d55eab88b3344e02f556dc3dc71a386232874d9d5732946245bfc62413d03365ebdfaa8e05695cb7db0130c4eb225e614becffb48e9654f3193128d293a
et|64-aarch64|4448f2d0e028d37bb379603113bc99ed8a22d14dc1e9194c6204bff0737c0fad94f9bd490982add38cce6076775264076fabc8e2a03537beacdfe1dbef94e9b1
eu|64-aarch64|835d374678f3d50d089d1ec752615811de6193db9c8e39ac8751e2f14933eb0e6bc8e3277c17d6d8fbf41ecada30d6c9d75646fca06b53f7188b7fa45cc1fb84
fa|64-aarch64|c09c6d55d09f0d3c4df03226473290f7a44c71b47128bcd878865e40aae4ca42676f0ddc6cad7a2c4becd24ac4da0f210c199a9b562279e925503fa430d78c68
ff|64-aarch64|e2d41aeb2ff2d702fdd363f59a39609fe9d14d05be3865e1e140cf7b9e61039353b29945e80040dabc853f4467c74994c8bb424720fe3a6f27705177eab6feeb
fi|64-aarch64|f9d9a6a9b74b721314443010ae5052df6d8c6804893f1d2f3f1991ea328aa27481d8fb7ad56f49b5316462eda305f6f5d3513cbf1f8005b73889022943b37874
fr|64-aarch64|1993a142f75e1d232df0dc7d20c4a9bcd89ecfd37449301d5efcfcba053eabe7db64c113f8ead13262c2ee0b42653c94b47ef1b720d80ff73aa8f7e903517141
fur|64-aarch64|80bf8d8ba24af4bafa09e22003ae602e76387a1ae38e38dd79942d18c45d575e0540941998c67651116cbc7b229e0b1ff547e809d2ba24f874ab693499d37da8
fy-NL|64-aarch64|f7d228fedf794c2b3cec36bc29ded82f9e81fbd2816caf350f36a8f4140f44772cfe4ec08f0a1a64747951435da5d168a95aecba5d85d71d5961357a5a02112f
ga-IE|64-aarch64|37b5d3d98a778f647b6254f6fe94427923690671526d7ba44297819cfd4c050bb67c134704cc9cb9f4c7f253808bebb649b588d4d7dcca592ad9ff55d98a6264
gd|64-aarch64|c71c8e09330c4409269ecee5385cc975045f47f0accc61eb2e1011875e8ae3e839a746aa8784c761904fd1422480732c281c0576e79fa41c5759c991b4c2e8d8
gl|64-aarch64|2af20b4632e0df8127763198c7468486cd66f67b9c3f14d6eb527e922573b53f682fd4931fe9279292b2aab6b539802bedfc0d55bd36b4ddf137b27d8662d8d1
gn|64-aarch64|24d9928856e9261bbcb85c9a608429526e0278047d7aea2682091b44b76aef62857285b3a70d86b270427ac3d70840b4e427c986fbab5edebf59006d7edba06a
gu-IN|64-aarch64|62ccc2dd33063d509e01e1bb81b4364749001701603ec23c04195251ffb8a1f5f13b94270de6eeaf729abd9f8c1b5d7377752ca9007d532ea5624fc3e6897cbb
he|64-aarch64|1e254e05cc559ec05b9c0733dd6929a4ee2045a12162a7d7ac05a2dd3a75b01fe5ae250b31df8c282fab0d6995e5a3952d0f8935665d313fd4f49e0d412eb408
hi-IN|64-aarch64|4eafa1f5fc64d263270a00686efcf5b134fa3e66912410751226a3585cfe6940e4f132f6445fa76cd2cf082e956ced40d007baea48e03515d30a5c6e3f68ddfc
hr|64-aarch64|dd91ab658b25909bc2527f47176a0b67f1df557f3e75eaac7efdab10df22bc7014d935a0ceb1b29dd5bb41f4c1158f42dcf50c64055c53cca5eee2366ada331c
hsb|64-aarch64|b0d88e68c7ed56a799d4f9868a30d9bf4086243d50b6dbacc2ce78ae14dd955f52ab0b6fca73cbcdfc58dd380c7add52538c7cf5a84370c3a5ee2d08fa0fd58e
hu|64-aarch64|d0c5dec7955cf8e724a098dbe64a6f768420fda61acb2599eccfc3c30bac633b33959b664a9d4206b861aae247cb01bf2c943eab2d42cf95a1ea418e76d1c8f5
hy-AM|64-aarch64|066f753c18c7ef769dfa2b2929462a81d5b18a83678265c2b601f34216a2eb8013c747428e6ecf3394cbda88b4dc755763c0a59accf9e30753fc798f5296927f
ia|64-aarch64|78d5f0acf6446205767b7f8981191e7142b3dc4077b0852ca15f0aae4d6bf20821359eaaca492ee3d821016c126c8906c908cfd4e28e2bd70c4fa2b103f02781
id|64-aarch64|3101ceda33091c7c5c8021f06e3f6232ed40de7bec1facd39490af2e795d0f608028694e4e4e3a0992f4abc690d89e44af24eb8f24eb6b2efaebcef42c18e093
is|64-aarch64|ebd9b0a6206359cc8fe583c4f2a39e97f9ad56fa48866270c60a1407610f1abfaa901560d95c6586880ef7a1f03bcd0d9de5652acee03b44930c926edec57fb5
it|64-aarch64|3c8f6ae656b639f8c0511bffe51444a9bb49dbefbe8ca1ffda018d63af1616cbf8ca306361023ca16c7b3360d4e42ff51109fe9f567306a3b8f08e8dd3ccfbbe
ja|64-aarch64|d6f8ad9304cf5f9159eaa3954bc907b8da0370f5f6127feec80fdfcf825d6b61c475f9fbfaffe75895f6ffed6a5f12b4483e127ac0deeba5d004c432110fd604
ka|64-aarch64|08cd9ba7ec4df017a4273ef013e8fe1b56ce6e4cf62365e1b5d9a3e2e07f34d86e35069ecfa438776f9b96184603bd1d2021a70747e2a35b837529612a1c49de
kab|64-aarch64|6110e08a96e13c5523e1de4cbec485c5c31f2f8248d60c480add2c37a070049a364c57d87c5140f3e2027b9be04a9e937b69d80559de5a0b576a37a8d717fcec
kk|64-aarch64|d57559da81bc0021b584abc9b33d546e787a0d75b59dfdcf2a262593622635bfe81d882af11714f5bbffee6062ed680123a195d1259c7735ee2cfedfa1ecda0a
km|64-aarch64|a8e9f0151204f0a661c9f04212d7f88a1faad1db4c877ba1ab44d16766de776d0975146849d6984a3f24f1f8227b7d9c520fb2a2acad51c0555ee2aab58e0b07
kn|64-aarch64|8651b6279d3022571fc6dce2b5546b41a0835f7aa57e1d03d1e55451761d65f4328ae0703c7f8bf684f5359d129f85a300dc164e0507297cad3c6812ed11ce6e
ko|64-aarch64|03dea55c9ca853e0ce60d546442af8c5c72c90d12f04cbb24f4c7117d2cf882952cb8acb13c3d9ba71787bc11c2d314cd4a3b1ff35bf224297f4c056ae93e480
lij|64-aarch64|506fe9c9e3ce0056ef3e657cf23b4a534e258e319c35061ace29f902daa657cb7c0ba7a97303d03b9fa5ef92625a3e22a6b2de5c4d697cb17c020baaafbaf401
lt|64-aarch64|b4e1bbe99ffeb9d8d4d8e5b64ac341fbd378b6e4146c3d2ea955869b10ca7e749bfd91a77ef6fbc94420c12629267a2d87b24353da80a56dfefb2079ac33064f
lv|64-aarch64|26a80b8fa7b331e412dd9f1f3b95eb4518a43911ebe63847d4ca4fece502843ac15971a4dc29d612453db4443943ce3f5ad63da3c186c589e4902bac7c9b563f
mk|64-aarch64|e2bef16754596946f1556d731bfee6b857b7f7e092b5fb81fa7cafd6c174a0a608794954ad6c006171b19d6e018268f97a3b63340fedb6e0682365ff1e257ecf
mr|64-aarch64|5b420f2ec4a69a775ce07d9f2bbaf6689a7e590c1e93f6f8dc308d350f838aef149e2aa731f70bd472502733b2585aefd360ebd80a41c0e60f5f42cd5a004c7d
ms|64-aarch64|90c0aa2ae4697aa2a3c35b11a05e2f1d89b9d18b59334a0dd3483e34197a31b94bb2cbddc4f1f7b5aa31868be5d27c6d85513d914e4dd56a43ca73a09f2e4b01
my|64-aarch64|f2e73ba9819a3efa49dac5d09616129907bf0a004bfe27fe361157b71553ea317d76d7fb59995e7d45d0532cdb87d5340205175b59b814c98682d5621c79b826
nb-NO|64-aarch64|30bea52acd80ee8da35ffb468c5aa9869ef222709a8ab29f30d652334bc14aba2706f24f736a8687034aa7cc9c8ccf3f22f47e23198f5dcf0d163dfa4cebe69f
ne-NP|64-aarch64|62a5a77b044c8122f86c139c4ea9d037dc402569caf37d4612bd80ccc65a380d364108aa39013aac5678c1e2064830c08d693bc5e648966e02305ecf7bf06684
nl|64-aarch64|c3476caf7a278f54c83a4bb45ee921977a5fc0876c822c7d23be80223c32a6594528f757bc2ef8bcbe264f4661d4b491657d8f294cc9b1f78e20f1611c63a7bc
nn-NO|64-aarch64|2543179a80df2e5485c60eee17d13898da9aacaa07ee89e6b90e86dbe239bb645fce2269bd665614997a057ffd0704a7876b9485588660aebd30a3002ec2fcdc
oc|64-aarch64|0034c1ca1280473a5a421da91ea2d7e79dea6299b1c662eca6774018ddbdee47bb9f0ebbf562e63689189e31506c18853bddd34c940fa19ca7ac3d2f652b009b
pa-IN|64-aarch64|e792e03b6939b12d4314bb1ca5ab8cc5b7b357c41fae66fb207bcf599d5937417f9e436af8fa5c90a11c5bf3c421b6facfa258d9038d7e7d7ac85219462afeab
pl|64-aarch64|9ba536034cf7e1086a19412674c6ebebfef95e2214fde7d6ad7f648dacd40ccc97e5ccec9e12e1bed7cbf25e11ff96110d33f04e435784839c8729d69c9a0483
pt-BR|64-aarch64|a2a888f9134229626e1c873aef9e6b9771716440d2f3cba09496d310d8ddb21316e01940a1d82bd5782bd6b81c40d6143a13a3a7808ddf65759d08e286162572
pt-PT|64-aarch64|a17af72ef9469be6d44ad8f471aec8dc1b8466bbbce9225435672fa2c56da7107968b5e354367cdd0c6d6004105e68c2518688a1f5dfdf0890d06f1190b58b90
rm|64-aarch64|54823c578f1900571c683c7a7025a0c2d87633380999cccad73e586a89bb026140ab649692484d51735184b337c1f803b7c1f801cd8cfac4268e070dbb885b19
ro|64-aarch64|cf93484a5497010527f7cf75f5de312ef453b5614720116e3350b5d93c83df3df48306c92190d4793c0ddddc23d055f58cf0da35701b74486b200136e9c22892
ru|64-aarch64|7bf3992b6bb404f0e85601259de0278cf81920d938714ea919f83a5e5998ec82b0049c4cd49fcbad04c7c26498a378b573ded6e447717428640ed52998258818
sat|64-aarch64|d0691c091c415dd85f09529259d41c206727038fc3797817e786eb06cd1ba2411dcd5a5e7781d8e5c16e8288a179cac9139d43f633b657348e75264db65755f5
sc|64-aarch64|3d3f133811aed9a49988c7d05758ffd3f12d1c92fec3fc750bb800af324807b821662b9ea28c971ec798bbff8f8ed9187ff80b94946bb6ba44383b4d5375c073
sco|64-aarch64|0c174ff311818a18aba3acc17bce290d451e8a84e790c60af6824bb001bbc2624faedf8a929dff28d205b58e9d9c28713f8314a5d1969755ed0efd455eece494
si|64-aarch64|3a7f4275fcdb61bc98acad1b960b35773e3b77d1f9d859ac4b6b5474dbcf266c912727b77e8e8de7b48b244e19db539ff8151fd81be5165de3e613e134503622
sk|64-aarch64|c9a69a88d0ca479bb1a4411865e671169f369e56cae2e6343f407d5d44af804cfde4c19e5bc8522e7fdff333163d40ccad4ffad0f43bd54317fc5d463bcb3fda
skr|64-aarch64|b669209138394e76c8c026f4b9584ae595aa389316a0e5875796b6040cc2677f4ba3506a5b0a75a458d048d87b91a92795ff613cfafe34fd33fbb43a23f421ab
sl|64-aarch64|d83386af6aa5134516804c1e3bbee4fd4d8c14640a9d119df1ad78bb93591f8e3557cf9013ce87b0462a14bc8230def499615085c717acc72190e3b9041eb5bd
son|64-aarch64|b6405039938b5059c9ea9a27c1eca013a6c58ef71432d22a3cf51397dd05b2a6a8933ac0651012c252b5a7e4b3180d6052c66e13a7e67c93521562f603d38122
sq|64-aarch64|3d68fcac3189d04b73eb04ec2ec28bde404017e23294f894e4fdcde656b9f7f7792de35aa755869c636386f8e297caefc80ef31597a7c709a32234b727558692
sr|64-aarch64|c10de116fb33e312fc865edf9962b9fc4f38fb38af2e55899b0a9cba67de545c84138b8fecb39d2474f8178b91e944f5333c3946aa99a0fbf958c7471521c4b0
sv-SE|64-aarch64|0c10e9db2af8a5611ecd7cf43014911e183b4e7aabb8ff19cce00869239b257005d8274344f7e9512283240fdfa44a31a6eecf20d42c85560a417806c10abcc8
szl|64-aarch64|6ac60abaa43ae95498db6b39031c883e9b686b942a0274903e6d372435226624e233b0cfb9f36be4fbc6811503a62e098b5bfbd759a41c599a8c38ac83b717c7
ta|64-aarch64|439dbc1e4abbeb20d27ede250d554e550466554e034ea56b15a3364dccdbcb392dcf6aa36ae431c44fedb35d5733430d0ea3867b5168971b2b04099ea832caae
te|64-aarch64|f59a8f37e46467bec47cb81c37f2d561a966eb7ce1fe8c8fffcffae6984d3dc6f51f29466477d64abb966d02532008ca46dd4fe3fb5a5c66c6cd264c73400c56
tg|64-aarch64|52fe6c1ada1fc73c6f6e9d4cd0aa767645bb783952187ef54a89f14c8c6e10833ecc5eaf6924822b4a4b7a0f588c45da884a748417d25483495836fcf72b1d23
th|64-aarch64|b69a4dc384e8a0aeb33c1396468a29b301e9d53a0ea3e8f33452b5af3059d0e85c40c4ade72241bb8b363a1cadbbf8ce51c552cefb63ab9da444752baa7e604d
tl|64-aarch64|168ea521005b853c53352c4b2ebb92a8e977c45fcc8275f6269465cf9f2898166655f74d3ad63a81b125a1fbdb59355d2c6bb1d63911a13b075251451a99368e
tr|64-aarch64|230d5076ffd21a189d53d564a5f3b7b65b9dc4cc59af5d23bc4c13272cc8e376480884dc062a521fa9a978486c0ad2ddceb4995b8d6fee88d576af04b7e20b8c
trs|64-aarch64|01a629729d562658d3dd07ada0c13ebb77e8e8430b50859398240928a553820fa09eefbfa44a56a3163519397339b2727270f63058d7420d7caf77ce35dedcb8
uk|64-aarch64|cd55c2dd45df805c9ec3cad5ce5c108daf3468ee0572b2ab968ff628d98a4b6e5a42a1922ec36ec21d07a1aaffab4eefca69691f5facf9f6f43dc2af9e7ac552
ur|64-aarch64|5cf62c64bc401eefed70636e9cbfa486ce2b66d00203e552b34fe977f2c68af4944d4880b18b26223b1d2247f261ad1be98f7336d64e5e31bc94c0ece8ebd95d
uz|64-aarch64|b246fb4131cf5b351452a12837819518807c3f70e689b12f8961a3784253fbf7555f4d6dd3f149190dfca34f5abd5d24e3fde6ada9f7e7f07a27ce2e63b67937
vi|64-aarch64|b57e5d82ce14d81348aa72820955b9b76cc3fcf8a26320f1cad0a1e3dfd472a78b05d670f8ebb7c7eb275907627affe268f02698a15d5f001b698a83ed43b6bc
xh|64-aarch64|1a7222a25772b7bb9d5f0e3150fcfb7e62c52407630895e6738c3f02e43d68f14b9b1919e470c464c69b26082f5ce597181e7aab24e9f91a16ed5cfb239cad57
zh-CN|64-aarch64|8b48565086897336a2b2f165db14616e8704d1a3bb97e76c36c4afd17fa0dad18a4882a93b3c8140e6c7af080768b0340d975ddd23dad66c1c31fde77204b295
zh-TW|64-aarch64|bede3945fb7fc8dee96fd69e31b5878ce6b71824b8b74d8667d84fbf258dd2b795630e8e53330369f271780a173df88c997a87475ce5c27bb85bf8cf4440e272
ach|64|b36504bf665c324484d7bceae1865f85e0d2af2f67d7ddd8da2147facf7052e838cc78cd0843e4983575ccb11948629fb5d83c21bbd3b143d0cba836a8d8e878
af|64|8e72639eb73db613361a4dd8505cab6c63a7d5672c6d9221709cf7fc895756076f7cd59634540afbbf88924a4fda3958d4465a195cc52030a7523b57d734224c
an|64|41a91af7de7ee369aaf663f9c944426387be970e53e24074fae9a9d7571ef28ee099c4b5b38bf62e2d84486179ab6183ac5b554cab943be5ff5425c0706e632c
Expand Down
23 changes: 15 additions & 8 deletions automatic/firefox/tools/chocolateyInstall.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -56,23 +56,30 @@ else {
$locale = GetLocale -localeFile "$toolsPath\LanguageChecksums.csv" -product $softwareName
$checksums = GetChecksums -language $locale -checksumFile "$toolsPath\LanguageChecksums.csv"

# Map each architecture that Chocolatey can report to its matching Mozilla
# build (download "os" token + checksum). Adding a new architecture later
# (e.g. a future win64-riscv64 build) only needs another entry here plus a
# matching checksum column produced by the package's update script. The URLs
# are kept as literals so the automatic updater can bump their version.
$builds = @{
'x86' = @{ Url = "https://download.mozilla.org/?product=firefox-152.0.4-ssl&os=win&lang=${locale}"; Checksum = $checksums.Win32 }
'x64' = @{ Url = "https://download.mozilla.org/?product=firefox-152.0.4-ssl&os=win64&lang=${locale}"; Checksum = $checksums.Win64 }
'arm64' = @{ Url = "https://download.mozilla.org/?product=firefox-152.0.4-ssl&os=win64-aarch64&lang=${locale}"; Checksum = $checksums.Win64Arm64 }
}

$build = Get-MozillaBuild -builds $builds -product $softwareName

$packageArgs = @{
packageName = $packageName
fileType = 'exe'
softwareName = "$softwareName*"
Checksum = $checksums.Win32
Checksum = $build.Checksum
ChecksumType = 'sha512'
Url = "https://download.mozilla.org/?product=firefox-152.0.4-ssl&os=win&lang=${locale}"
Url = $build.Url
silentArgs = "$sa /S"
validExitCodes = @(0)
}

if (!(Get-32bitOnlyInstalled($softwareName)) -and (Get-OSArchitectureWidth 64)) {
$packageArgs.Checksum64 = $checksums.Win64
$packageArgs.ChecksumType64 = 'sha512'
$packageArgs.Url64 = "https://download.mozilla.org/?product=firefox-152.0.4-ssl&os=win64&lang=${locale}"
}

Install-ChocolateyPackage @packageArgs
}

Expand Down
42 changes: 37 additions & 5 deletions automatic/firefox/tools/helpers.ps1
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
function GetUninstallPath() {
function GetUninstallPath() {
param(
[Parameter(Mandatory = $true)]
[string]$product
Expand Down Expand Up @@ -142,11 +142,43 @@ function GetChecksums() {
)
Write-Debug "Loading checksums from: $checksumFile"
$checksumContent = Get-Content $checksumFile
$checksum32 = ($checksumContent -match "$language\|32") -split '\|' | Select-Object -Last 1
$checksum64 = ($checksumContent -match "$language\|64") -split '\|' | Select-Object -Last 1
# The trailing '\|' is required so the '64' pattern does not also match the
# '64-aarch64' rows (and vice versa).
$checksum32 = ($checksumContent -match "$language\|32\|") -split '\|' | Select-Object -Last 1
$checksum64 = ($checksumContent -match "$language\|64\|") -split '\|' | Select-Object -Last 1
$checksum64Arm = ($checksumContent -match "$language\|64-aarch64\|") -split '\|' | Select-Object -Last 1

return @{
'Win32' = $checksum32
'Win64' = $checksum64
'Win32' = $checksum32
'Win64' = $checksum64
'Win64Arm64' = $checksum64Arm
}
}

function Get-MozillaBuild() {
# Selects the architecture-specific build to install from a map of
# architecture -> @{ Url; Checksum }. Honors the -x86 / --forcex86 flag first,
# then falls back to the native OS architecture reported by Chocolatey's
# Get-OSArchitecture (which is correct even when Chocolatey runs under x64
# emulation on Windows on ARM). On older Chocolatey that function is absent, so
# we stay on x86/x64. A non-x64 build is only chosen when a checksum for it is
# available; otherwise we fall back to x64 (which also runs emulated on ARM64).
param(
[Parameter(Mandatory = $true)]
[hashtable]$builds,
[Parameter(Mandatory = $true)]
[string]$product
)

$architecture = 'x86'
if (!(Get-32bitOnlyInstalled $product) -and (Get-OSArchitectureWidth 64) -and ($env:chocolateyForceX86 -ne $true)) {
$architecture = 'x64'
$nativeArchitecture = if (Get-Command Get-OSArchitecture -ErrorAction SilentlyContinue) { Get-OSArchitecture }
if ($nativeArchitecture -and $builds.ContainsKey($nativeArchitecture) -and $builds[$nativeArchitecture].Checksum) {
$architecture = $nativeArchitecture
}
}

Write-Verbose "Installing the $architecture build of $product"
return $builds[$architecture]
}
Loading