From a17f15b8bb01112c2a302b0c180445579a375af8 Mon Sep 17 00:00:00 2001 From: Rizzen Yazston Date: Tue, 4 Jul 2023 19:36:54 +0200 Subject: [PATCH] Updated Crago.toml and README.asciidoc files due to bumping versions of ICU4X to 1.2.0, rusqlite to 1.29.0, and rust to 1.70.0. Also added the Italian translations to the i18n sqlite files. Updated 'lexer.rs' to re-enable the grapheme segmenter now that it is no longer experimental. --- CHANGELOG.asciidoc | 12 +++++- crates/i18n/Cargo.toml | 2 +- crates/icu/Cargo.toml | 18 ++++----- crates/icu/README.asciidoc | 16 ++++---- crates/lexer/Cargo.toml | 32 ++++++++-------- crates/lexer/README.asciidoc | 16 +++++++- crates/lexer/src/lexer.rs | 10 +---- crates/message/Cargo.toml | 32 ++++++++-------- crates/message/README.asciidoc | 20 +++++----- crates/message/i18n/i18n_message.sqlite3 | Bin 94208 -> 94208 bytes crates/pattern/Cargo.toml | 36 +++++++++--------- crates/pattern/README.asciidoc | 20 +++++----- crates/pattern/i18n/i18n_pattern.sqlite3 | Bin 94208 -> 94208 bytes crates/pattern/src/error.rs | 2 +- crates/provider/core/Cargo.toml | 2 +- crates/provider/sqlite3/Cargo.toml | 6 +-- .../i18n/i18n_provider_sqlite3.sqlite3 | Bin 94208 -> 94208 bytes crates/utility/Cargo.toml | 4 +- crates/utility/README.asciidoc | 2 +- 19 files changed, 123 insertions(+), 107 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index c664c1c..2e4f405 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -1,12 +1,20 @@ = Changelog Rizzen Yazston -== i18n 0.6.0 (2023-06-??) +== i18n 0.6.0 (2023-07-0?) WARNING: This update has API breaking changes for some `i18n` crates. Breaking change is the result of changing how ICU data providers are used and passed to various components, thus many examples are affected even if the module is not affected by the ICU data provider change. +* Updated various `Cargo.toml` files: + +** Bumped rust-version to "1.70.0". + +** Bumped all ICU4X crates version to "1.2.0". + +** Bumped rusqlite crate version to "1.29.0". + * Added the `icu` crate: ** Added `IcuDataProvider`, `DataProviderWrapper`, and `IcuError`. @@ -31,6 +39,8 @@ Breaking change is the result of changing how ICU data providers are used and pa ** Made `Lexer` struct private, made both `tokenise()` and `add_previous_characters()` methods as normal functions, removed `try_new` method and added `&Rc` to `tokenise()` function parameters. +** Re-enabled the string segmenter function, as the issue in icu_segmenter 0.8.0 was fixed in icu_segmenter 1.2.0, allowing proper counting of graphemes in a string slice. + ** Removed the `error.rs` as neither of the functions returns errors. ** Updated the `lib.rs` to remove `error` module. diff --git a/crates/i18n/Cargo.toml b/crates/i18n/Cargo.toml index 75abfae..402d649 100644 --- a/crates/i18n/Cargo.toml +++ b/crates/i18n/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" diff --git a/crates/icu/Cargo.toml b/crates/icu/Cargo.toml index 0c705cc..2aa278f 100644 --- a/crates/icu/Cargo.toml +++ b/crates/icu/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n_icu-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n_icu` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" @@ -18,16 +18,16 @@ keywords = ["internationalization", "localization", "icu4x"] categories = ["internationalization", "localization", "rust-pattern"] [dependencies] -icu_provider = "1.1.0" -icu_properties = "1.1.0" -icu_segmenter = "0.8.0" -icu_plurals = "1.1.0" -icu_decimal = "1.1.0" -icu_calendar = "1.1.0" -icu_datetime = "1.1.0" +icu_provider = "1.2.0" +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" [dependencies.fixed_decimal] -version = "0.5.2" +version = "0.5.3" # Needed for floating point support. features = [ "ryu" ] diff --git a/crates/icu/README.asciidoc b/crates/icu/README.asciidoc index 4150a77..3a24900 100644 --- a/crates/icu/README.asciidoc +++ b/crates/icu/README.asciidoc @@ -20,19 +20,19 @@ Stefano Angeleri for advice on various design aspects of implementing the compon ``` [dependencies] -icu_provider = "1.1.0" +icu_provider = "1.2.0" # These are required for the DataProvider. -icu_properties = "1.1.0" -icu_segmenter = "0.8.0" -icu_plurals = "1.1.0" -icu_decimal = "1.1.0" -icu_calendar = "1.1.0" -icu_datetime = "1.1.0" +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" # This is required for the DataProvider. [dependencies.fixed_decimal] -version = "0.5.2" +version = "0.5.3" # Needed for floating point support. features = [ "ryu" ] ``` diff --git a/crates/lexer/Cargo.toml b/crates/lexer/Cargo.toml index b1a2ed0..c8a4bec 100644 --- a/crates/lexer/Cargo.toml +++ b/crates/lexer/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n_lexer-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n_lexer` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" @@ -19,53 +19,53 @@ categories = ["internationalization", "localization", "rust-pattern"] [dependencies] i18n_icu-rizzen-yazston = { version = "0.5.0", path = "../icu" } -icu_provider = "1.1.0" -icu_properties = "1.1.0" -icu_segmenter = "0.8.0" -icu_plurals = "1.1.0" -icu_decimal = "1.1.0" -icu_calendar = "1.1.0" -icu_datetime = "1.1.0" +icu_provider = "1.2.0" +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" [dependencies.fixed_decimal] -version = "0.5.2" +version = "0.5.3" # Required for floating point support features = [ "ryu" ] [dev-dependencies] [dev-dependencies.icu_provider] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde", "deserialize_bincode_1" ] [dev-dependencies.icu_properties] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_segmenter] -version = "0.8.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_plurals] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_calendar] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_datetime] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_testdata] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider and icu_segmenter features = [ "buffer", "icu_segmenter" ] diff --git a/crates/lexer/README.asciidoc b/crates/lexer/README.asciidoc index 60f3adf..ce350e5 100644 --- a/crates/lexer/README.asciidoc +++ b/crates/lexer/README.asciidoc @@ -22,7 +22,21 @@ Stefano Angeleri for advice on various design aspects of implementing the compon ``` [dependencies] i18n_icu-rizzen-yazston = "0.5.0" -icu_provider = "1.1.0" +icu_provider = "1.2.0" + +# These are required for the DataProvider. +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" + +# This is required for the DataProvider. +[dependencies.fixed_decimal] +version = "0.5.3" +# Needed for floating point support. +features = [ "ryu" ] ``` == Examples diff --git a/crates/lexer/src/lexer.rs b/crates/lexer/src/lexer.rs index 6e0550d..823f99c 100644 --- a/crates/lexer/src/lexer.rs +++ b/crates/lexer/src/lexer.rs @@ -142,12 +142,6 @@ pub fn tokenise<'a, let mut iterator = string.as_ref().char_indices(); while let Some( ( position, character ) ) = iterator.next() { lexer.position_byte = position; - -// These are left here until the GraphemeClusterSegmenter works correctly, currently buggy. -//println!( "Byte position: {}", lexer.position_byte ); -//println!( "Character position: {}", lexer.position_character ); -//println!( "Grapheme position: {}", lexer.position_grapheme ); - if lexer.data_provider.pattern_white_space().as_borrowed().contains( character ) { if state == LexerStates::Identifier { add_previous_characters( &mut lexer, &mut tokens, TokenType::Identifier, string.as_ref() ); @@ -279,9 +273,7 @@ P: ?Sized + DataProvider + DataProviderzFwhbOoCo85E04ih!oa=jE5gr{$OCrJ%Sc5$c{qh1 zl$e}7`D(49Ojv4Ber+{Ss5n)@4M^tKB78VGwthJe3x5~`|2_WY{9*jZHVZT)^D~(< nPL8jUojj>ulvR$!S`f&q6PL~`VG(E16=cNpKJ(^#{Yno2bzh}Z delta 267 zcmZp8z}oPDb%Hdb`9v9KM)QpcOY(V`cltzo*Y*b#u%{KzE+%( zgOQWLTD(y-aq_+ziOKc#+S7yO8RaIQsW%Z}U|{5JVq@fB&=qe=FH|fpDay>7KGB|0 zcydy$C`g&Cph99^ib76eUV3R_da6Q6V*2FR`sF-K{9z3I_xQtruwb)5Loz>89^>Tr z8rjK{`b8&aR&(nxF)%Q2FlOeJX|Q;TGnVFM=jE5@#iys{r4}XT#3v_~q^9Q=RmP_m N<(C$0zSpnx002uARzm;) diff --git a/crates/pattern/Cargo.toml b/crates/pattern/Cargo.toml index a1ad298..2702bd5 100644 --- a/crates/pattern/Cargo.toml +++ b/crates/pattern/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n_pattern-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n_pattern` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" @@ -18,21 +18,21 @@ keywords = ["internationalization", "localization", "icu4x"] categories = ["internationalization", "localization", "rust-pattern"] [dependencies] -icu_locid = "1.1.0" i18n_icu-rizzen-yazston = { version = "0.5.0", path = "../icu" } i18n_utility-rizzen-yazston = { version = "0.5.0", path = "../utility" } i18n_lexer-rizzen-yazston = { version = "0.5.0", path = "../lexer" } # Needed for Token, TokenType tree-rizzen-yazston = "0.4.0" -icu_provider = "1.1.0" -icu_properties = "1.1.0" -icu_segmenter = "0.8.0" -icu_plurals = "1.1.0" -icu_decimal = "1.1.0" -icu_calendar = "1.1.0" -icu_datetime = "1.1.0" +icu_locid = "1.2.0" +icu_provider = "1.2.0" +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" [dependencies.fixed_decimal] -version = "0.5.2" +version = "0.5.3" # Required for floating point support features = [ "ryu" ] @@ -40,42 +40,42 @@ features = [ "ryu" ] os_info = "3" [dev-dependencies.icu_provider] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde", "deserialize_bincode_1" ] [dev-dependencies.icu_properties] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_segmenter] -version = "0.8.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_plurals] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_calendar] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_datetime] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_decimal] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider features = [ "serde" ] [dev-dependencies.icu_testdata] -version = "1.1.0" +version = "1.2.0" # Needed for BufferProvider and icu_segmenter used in i18n_lexer. features = [ "buffer", "icu_segmenter" ] diff --git a/crates/pattern/README.asciidoc b/crates/pattern/README.asciidoc index 1647e2e..7dab6f6 100644 --- a/crates/pattern/README.asciidoc +++ b/crates/pattern/README.asciidoc @@ -22,20 +22,20 @@ i18n_icu-rizzen-yazston = "0.5.0" i18n_utility-rizzen-yazston = "0.5.0" i18n_lexer-rizzen-yazston = "0.5.0" # Needed for Token, TokenType tree-rizzen-yazston = "0.4.0" -icu_provider = "1.1.0" +icu_provider = "1.2.0" # These are required for the DataProvider. -icu_properties = "1.1.0" -icu_segmenter = "0.8.0" -icu_plurals = "1.1.0" -icu_decimal = "1.1.0" -icu_calendar = "1.1.0" -icu_datetime = "1.1.0" +icu_properties = "1.2.0" +icu_segmenter = "1.2.0" +icu_plurals = "1.2.0" +icu_decimal = "1.2.0" +icu_calendar = "1.2.0" +icu_datetime = "1.2.0" -# These are required for the DataProvider. +# This is required for the DataProvider. [dependencies.fixed_decimal] -version = "0.5.2" -# Required for floating point support +version = "0.5.3" +# Needed for floating point support. features = [ "ryu" ] ``` diff --git a/crates/pattern/i18n/i18n_pattern.sqlite3 b/crates/pattern/i18n/i18n_pattern.sqlite3 index d49d4842ad38357a9837596b93d31abbd52a397d..f71237a3f8ff2020c349e877a01955b34f24bf00 100644 GIT binary patch delta 5018 zcmb_gTWlOx89w9edha`)T$(0r$!r~G<2q|QzQjrGHYsU^5{0%js8o$$cD#FRA2K_$ znLX>qb~t<ilLVsAs~RaQbfJm~J#>3yND`{5sa7z>rcxob8qsG7J;=W( z8I_8vmlfTh%8XIh%Y@#)CDJbms%B!fyrAIIq(*Cm-uJ1|+J8)ZMVAYp|?%x*KD>YWm zZn6lS*cvJL*1U5F-N*g(qBW|N7&@Wj8za4vpc_hQj%Z~Q!>uv?p!cF;&^c@pI@*5M z^=E|p;~jbuXBM6^Oz?B>9g%TKXuSI5X7Fg3=eepJL!8I=SRQVU$5!eZ{WMYZdSx2wTO+gJbZ;9N z+(_qSoS} zIO>z^!zkxf&}o7rnhZW;(~!$Vc6$LX7F%txB+sdGU6(1T8nSNaGH)S6u3}Rrnhae6 zO=8IJEWf-+%2=mlhG28)o#j^sM}|j63&RtI;jvQ(tvDKz>^_uho$I&TXH~tVva>u# zu(pOLAIE0(er~cCmpX!Hiv)ila&CS+K()sDL93On&+aJ(l;b zO5nSREmmIVIaP)-85N?lpjMYn4mdL?e?}v6+erl8o;P#@9;;y!12V|GQ6e(tNn^(q zm13y;^~tz}@{&F7gU=l-3{Bl zmqVZcsIyj+FF?RGQNy#kS~Y5{$N=zFm1nT~ICkyr2jXZ#vJI5;sMQLQ`;iLRtC4A< zVcEo`I+#!)Sg_(1$u;U-wrZw!su?6h%fs{_C6*YdG>jAqbtm#7pD9aL0H($LaWo*= zG2c7aISw1=5cjpt`Ow=em};qHXp{sjJT(zVdnJ1a0P6Cg1%&A0l+g8q2RKxKbAjMF z&$MD&EI!N+JPyYdm%QKtmhId2#Zf`BPx(;eC9qgB=y5kKxKj>8+~ySAfIl!O)OqKX zlb8=ZhBJ=<1K?TROfAo>;W0Zq&glXBu6dLBk?PYhp&b*>J#L}pk(&h${ZHnR)rpqX zu{i4GeAOlj9){Ki!iSM+$TMVCBSzLQ z&dII%xnyGbbHp8D?V)=n`FjDs*LC~UUf#_8KB!!b68flWwvzLBfJhw%`NU9$RP_wU z(YR!P5j8G6xdl|8Po*ryoZEv5fExsG!Wk`ZbjG?%cfjH;pI5b9tDC@u*bvtq6+iL8lPs@?Y;|9k=tmDQVqtHg~}9gMT-Ho(Mq~p$ zC@0w&lnct)V|ftGq|#y;R*cRrb(}*1IN*Ue8kOt>%C+RZ!${8dV69yVuF5?w?`%9^ zr+5z^Y(m(Mvx=-?rL0;Mw6&v`*ER8Ie+&roB#chB{scA}XtK^Pua_KUH>hvmdB}d- zJ_H9=&HqdKr}JEBfud-o-`}nvD^@41L!9Aq%ZYhnR}3~7%O^T#Q9Gu}rs@hG5J9R2 z`xh)Tut53})$%h}d<@pRut2qAeS9>30p-FQUnc>~79~e`cGSXya(G}^9Y#-^&h}R& zTiVHc8?eihiy}Z6# zP>!v+p)L3Gd_N-2_Qs?qY|Q%81XxK{*_Z^OYY|7^EW&5!;}TIaUj`r#%>V!Z delta 1512 zcmb7DZA?>F7(S=%?Y+0XAAHpdROzjy^aFaaC_|$TtIUCbY#?(E85X#M&h{2sU=qjZ zmCS63AHy@aECz`S&P>gm>*C@*VobJViE*%HS#(Q`nhiAb1E))t80St|T=rvsmYehA zecp55=Q+=LPT~rYxI(;TWxD|Y0$zH&(udt;u=~`uqc$Q9mu!*||EOai{{R<&=O3^) zl4)Ht{9wtFlBGTj8PiO>4~WbN!Tij8&3ADH+&=azZVkVRJ;p!BjIcKD2tUC*WG{2S zvwN8nTp!oMmhl(3i`=Ii%id?>Yy;2nH~8Iz|9^a$|FJpwMq&l6_406qR%d~W;DGiF z3ClGr2}_AGgDmJYk%T$g{XCd$1POkt;aQ~Y@)PD!P!F~8M(7|myA4$W8l1GDtwW-g zNP{NWiteZd1OU1Lh=P+A)O?RKHZu%xLhaltXoFkO#4fi1_epehBopQ3@+MjFy%4Ad z0KST$65NC9=X;5h1|*F#$&o!{IvxKRD&D^*13Q=jdzI}<^cAJ0LssNi^1}XQOR9CX zzy>Zs{s8%>@gg^@8)erp=b1LfVxBS&nOB?cnU0&bnR4kb>3-@qwVAyG-y>_mCH)%X za$=IO8%7OY{aJmD?i*e0@bF%Ra^n=JLMy+2idJ1T1sVjk16|E>QuC+W)G4QSBS|Vl z@Fy2Fu$Thng6cwdPg_x^vrPJ%DA?K>llwx!o={X75No1s!LTgh1o?fKp`KpWkH4a!{Z}P+`EXeak}$&E&u6BfkSQ*60Lrg2J?FIAQKGR(FdXg|-AYuPAMN?~ z>?|t!mBRNKhp7d=VE%_MkQ*b+eJ4ril>hsE%6Sz?P{l=H>LvCjD7E( zuwmazX#DPut`HhA@|#peH{g3IpRYcd$isardaXE<4(mx!jWcLR2aDy8reT_kh=DZy z7$D!|n%F(eka5a<)|_V=rKjmK>KO5e59`Ma=MA1y!(Dpx;mm<#=P#9zrd(hzc2BjS zGcz^(x@aU4RNCw1j!?WO){nAhz37M8X*78A3~IeIL6KkxxNu_82iILF+0c+Ya{Wg= zn(i5*`Q_mC)En+bXK&S__j`+zr*EBrsgo?jp;CkB@@yWvF&L5CMLapAbciT0`}VtY GiN656j;vJx diff --git a/crates/pattern/src/error.rs b/crates/pattern/src/error.rs index 5a490bf..03e094d 100644 --- a/crates/pattern/src/error.rs +++ b/crates/pattern/src/error.rs @@ -156,7 +156,7 @@ impl Display for FormatterError { keyword, placeholder ), FormatterError::NoChildren( node_type) => - write!( formatter, "No children nodes was not found for ‘{}’ node.", node_type ), + write!( formatter, "No children nodes was found for ‘{}’ node.", node_type ), FormatterError::InvalidOption( option, keyword, placeholder ) => write!( formatter, diff --git a/crates/provider/core/Cargo.toml b/crates/provider/core/Cargo.toml index 5ca0126..046ea9f 100644 --- a/crates/provider/core/Cargo.toml +++ b/crates/provider/core/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n_provider-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n_provider` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" diff --git a/crates/provider/sqlite3/Cargo.toml b/crates/provider/sqlite3/Cargo.toml index 772984b..ff2f500 100644 --- a/crates/provider/sqlite3/Cargo.toml +++ b/crates/provider/sqlite3/Cargo.toml @@ -7,7 +7,7 @@ name = "i18n_provider_sqlite3-rizzen-yazston" version = "0.5.0" authors = ["Rizzen Yazston"] edition = "2021" -rust-version = "1.67.0" +rust-version = "1.70.0" description = "The `i18n_provider_sqlite3` crate of the Internationalisation project." license = "BSD-3-Clause" readme = "README.asciidoc" @@ -18,10 +18,10 @@ keywords = ["internationalization", "localization", "icu4x"] categories = ["internationalization", "localization", "rust-pattern"] [dependencies] -icu_locid = "1.1.0" i18n_utility-rizzen-yazston = { version = "0.5.0", path = "../../utility" } i18n_provider-rizzen-yazston = { version = "0.5.0", path = "../core" } -rusqlite = "0.28.0" +icu_locid = "1.2.0" +rusqlite = "0.29.0" [dev-dependencies] diff --git a/crates/provider/sqlite3/i18n/i18n_provider_sqlite3.sqlite3 b/crates/provider/sqlite3/i18n/i18n_provider_sqlite3.sqlite3 index 7f61fc420ee4e3edb40e24c81619d7a19a775aea..17abdf33027e19bd97f5db7a981d4f192ca6108d 100644 GIT binary patch delta 580 zcmZvZ%}X0W7>8#t>#l9gFj&yiQf86h2dIfF+C+-+=$N2FEIzQjOht75V zQogeCBcKrGZ^w@c{|fWyEbrz=5)#ZNrNC-`4F0@~)-4m1@gA@PsyAIBwcFr|d0MJ3 zT-SUOFy%=VO45`{a4ktU{&kS`9(CgjBBUTUze!6_;!&lU@6*NQ(z3Hqsw|XNwoD7y z_@oGIA>DAt=bAZOud*;~3DV>~Bi&j`t1tH7>OE%43pGtAX(e~FQ)Jjj{u6_nBroC5=nwAJZYq&GrYls=1uOU>WXFjp7G$CsX@qXDm*GQ8yfcl z0AQgCKzHaX`inetj@Hl>s+iv%%GmE$doC`Z^6Oj~!{`3Z!Z{nm;ia4Ja#aiy8cj}e SJvxyqV)%47M*IBxR_7ii+{Ft3 delta 300 zcmZp8z}oPDb%Hdb(L@<%Mx%`hOY%incuq6$74w|tt>wGKw+#X(D->u`}0r zd-?`xMky8s2BziH&q*`dfmo^21!Nfgq<}1827mEJLk7iyi~_xa#G=I9)RNR9y|T@x zYpfX=3nsJIDNmkPXClhLz)+$nUdf=CmmgnTn3GwOYMh!kxw!5bdB{P@(OqWq%NJl!Zq z4*rP@@{GtP0|nWEf?SL#nMJ9|K%)#%b+7@2